Ext-GWT TreeGrid llama indirectamente a una devolución de llamada GWT-RPC? ¿Por qué?

StackOverflow https://stackoverflow.com/questions/1202434

  •  05-07-2019
  •  | 
  •  

Pregunta

Estoy utilizando GWT-RPC para rellenar las TreeGrids Ext-GWT con datos de un servidor. Estoy utilizando 4 devoluciones de llamada para rellenar 6 TreeGrids. A medida que la función de devolución de llamada onSuccess modifica el TreeGrid insertando filas, el TreeGridView debe representar las filas. La clase de devolución de llamada se llama MainPnlSummaryTablesAsyncCallback.

Por alguna razón, cuando necesita determinar el desplazamiento de altura del desplazador del TreeGridView a través de JSNI, se llama a onSuccess o onFailure en otra instancia de la devolución de llamada en el seguimiento de la pila. A continuación se muestra una copia del seguimiento de la pila que encontré.

¿No es esto realmente extraño? ¿Por qué sucede esto?

FYI Estoy usando Ext-GWT 2.0.1 y GWT 1.7.0 y estoy usando el navegador de modo alojado para depurar esto, aunque estoy bastante seguro de que esto es un problema para el modo web.

PnlSummaryClientDebug_as10node6 [Java Application]  
com.google.gwt.dev.HostedMode at localhost:3595 
    Thread [main] (Suspended (breakpoint at line 403 in MainPage$MainPnlSummaryTablesAsyncCallback))    
        MainPage$8(MainPage$MainPnlSummaryTablesAsyncCallback).onSuccess(GWTPair<AggregateStringGWTTable,AggregateStringGWTTable>) line: 403    
        MainPage$8(MainPage$MainPnlSummaryTablesAsyncCallback).onSuccess(Object) line: 1    
        RequestCallbackAdapter<T>.onResponseReceived(Request, Response) line: 215   
        Request.fireOnResponseReceivedImpl(RequestCallback) line: 264   
        Request.fireOnResponseReceivedAndCatch(GWT$UncaughtExceptionHandler, RequestCallback) line: 236 
        Request.fireOnResponseReceived(RequestCallback) line: 227   
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] [local variables unavailable]    
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39  
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
        Method.invoke(Object, Object...) line: 597  
        MethodAdaptor.invoke(Object, Object...) line: 103   
        IDispatchImpl.callMethod(CompilingClassLoader, Object, Variant[], MethodAdaptor) line: 126  
        IDispatchProxy.invoke(int, int, Variant[]) line: 155    
        IDispatchProxy(IDispatchImpl).Invoke(int, int, int, int, int, int, int, int) line: 294  
        IDispatchProxy(IDispatchImpl).method6(int[]) line: 194  
        COMObject.callback6(int[]) line: 117    
        COM.VtblCall(int, int, int, GUID, int, int, DISPPARAMS, int, EXCEPINFO, int[]) line: not available [native method]  
        IDispatch.Invoke(int, GUID, int, int, DISPPARAMS, int, EXCEPINFO, int[]) line: 64   
        OleAutomation.invoke(int, int, Variant[], int[], Variant) line: 493 
        OleAutomation.invoke(int, Variant[]) line: 417  
        ModuleSpaceIE6.doInvokeOnWindow(OleAutomation, String, Variant[]) line: 68  
        ModuleSpaceIE6.doInvoke(String, Object, Class<?>[], Object[]) line: 153 
        ModuleSpaceIE6(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 453    
        ModuleSpaceIE6(ModuleSpace).invokeNativeInt(String, Object, Class<?>[], Object[]) line: 207 
        JavaScriptHost.invokeNativeInt(String, Object, Class<?>[], Object[]) line: 75   
        Element$.getOffsetHeight$(Element) line: not available  
        El.getHeight(boolean) line: 984 
        TreeGridView(BufferView).getVisibleRowCount() line: 313 
        TreeGridView(BufferView).doRender(List<ColumnData>, List<ModelData>, int, int, boolean, boolean) line: 189  
        TreeGridView(BufferView).doRender(List<ColumnData>, List<ModelData>, int, int, boolean) line: 181   
        TreeGridView(GridView).renderRows(int, int) line: 1559  
        TreeGridView(GridView).insertRows(ListStore<ModelData>, int, int, boolean) line: 1242   
        TreeGridView(GridView).onAdd(ListStore<ModelData>, List<ModelData>, int) line: 1293 
        GridView$5.storeAdd(StoreEvent<ModelData>) line: 1179   
        GridView$5(StoreListener<M>).handleEvent(StoreEvent<M>) line: 22    
        GridView$5(StoreListener<M>).handleEvent(BaseEvent) line: 1 
        TreeGrid$2(BaseObservable).callListener(Listener<BaseEvent>, BaseEvent) line: 176   
        TreeGrid$2(BaseObservable).fireEvent(EventType, BaseEvent) line: 96 
        TreeGrid$2(ListStore<M>).insert(List<? extends M>, int, boolean) line: 467  
        TreeGrid$2(ListStore<M>).insert(List<? extends M>, int) line: 266   
        TreeGrid<M>.onAdd(TreeStoreEvent<M>) line: 430  
        TreeGrid$1.storeAdd(StoreEvent<M>) line: 123    
        TreeGrid$1(StoreListener<M>).handleEvent(StoreEvent<M>) line: 22    
        TreeGrid$1(StoreListener<M>).handleEvent(BaseEvent) line: 1 
        TreeStore<M>(BaseObservable).callListener(Listener<BaseEvent>, BaseEvent) line: 176 
        TreeStore<M>(BaseObservable).fireEvent(EventType, BaseEvent) line: 96   
        TreeStore<M>.doInsert(TreeModel, List<TreeModel>, int, boolean, boolean) line: 799  
        TreeStore<M>.insert(List<M>, int, boolean) line: 493    
        TreeStore<M>.add(List<M>, boolean) line: 163    
        TreeStore<M>.add(M, boolean) line: 174  
        PnlClientFactory.populatePnlDataTreeStore(AggregateStringGWTTable, TreeStore<BaseModel>) line: 42   
        MainPage$9(MainPage$MainPnlSummaryTablesAsyncCallback).onSuccess(GWTPair<AggregateStringGWTTable,AggregateStringGWTTable>) line: 403    
        MainPage$9(MainPage$MainPnlSummaryTablesAsyncCallback).onSuccess(Object) line: 1    
        RequestCallbackAdapter<T>.onResponseReceived(Request, Response) line: 215   
        Request.fireOnResponseReceivedImpl(RequestCallback) line: 264   
        Request.fireOnResponseReceivedAndCatch(GWT$UncaughtExceptionHandler, RequestCallback) line: 236 
        Request.fireOnResponseReceived(RequestCallback) line: 227   
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]  
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39  
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
        Method.invoke(Object, Object...) line: 597  
        MethodAdaptor.invoke(Object, Object...) line: 103   
        IDispatchImpl.callMethod(CompilingClassLoader, Object, Variant[], MethodAdaptor) line: 126  
        IDispatchProxy.invoke(int, int, Variant[]) line: 155    
        IDispatchProxy(IDispatchImpl).Invoke(int, int, int, int, int, int, int, int) line: 294  
        IDispatchProxy(IDispatchImpl).method6(int[]) line: 194  
        COMObject.callback6(int[]) line: 117    
        OS.DispatchMessageW(MSG) line: not available [native method]    
        OS.DispatchMessage(MSG) line: 1925  
        Display.readAndDispatch() line: 2966    
        HostedMode(SwtHostedModeBase).processEvents() line: 235 
        HostedMode(HostedModeBase).pumpEventLoop() line: 558    
        HostedMode(HostedModeBase).run() line: 405  
        HostedMode.main(String[]) line: 232 
C:\Program Files\Java\jdk1.6.0_06\bin\javaw.exe (Jul 29, 2009 2:11:16 PM)   
¿Fue útil?

Solución

Ok, parece que el servidor estaba lanzando algunas NullPointerExceptions cuando se hacían las llamadas RPC ... aún así, no entiendo por qué la traza de la pila del lado del cliente se veía así (parece un poco engañoso, como si dos las huellas de la pila se mezclaron entre sí).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top