Domanda

Sto usando GWT-RPC per popolare TreeGrids Ext-GWT con i dati da un server. Sto usando 4 callback per popolare 6 TreeGrids. Poiché la funzione di callback onSuccess modifica TreeGrid inserendo le righe, TreeGridView deve eseguire il rendering delle righe. La classe di callback si chiama MainPnlSummaryTablesAsyncCallback.

Per qualche motivo, quando è necessario determinare offsetHeight dello scroller di TreeGridView tramite JSNI, onSuccess o onFailure viene chiamato su un'altra istanza del callback nella traccia dello stack. Di seguito è riportata una copia della traccia dello stack che ho riscontrato.

Non è davvero strano? Perché sta succedendo questo?

Cordiali saluti, sto usando Ext-GWT 2.0.1 e GWT 1.7.0 e sto usando il browser in modalità host per eseguire il debug, anche se sono abbastanza sicuro che si tratti di un problema per la modalità 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)   
È stato utile?

Soluzione

Ok, sembra che il server stia emettendo alcune NullPointerExceptions quando venivano fatte le chiamate RPC ... tuttavia, non capisco perché la traccia dello stack sul lato client fosse così (sembra un po 'fuorviante, come se due le tracce dello stack si confondono l'una con l'altra).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top