2009-07-29 54 views
0

我正在使用GWT-RPC用服務器中的數據填充Ext-GWT TreeGrids。我使用4個回調來填充6個TreeGrid。由於onSuccess函數的回調通過插入行來修改TreeGrid,因此TreeGridView需要呈現行。回調類被稱爲MainPnlSummaryTablesAsyncCallback。Ext-GWT TreeGrid間接調用GWT-RPC回調?爲什麼?

由於某些原因,當需要通過JSNI確定TreeGridView的滾動條offsetHeight時,onSuccess或onFailure會在堆棧跟蹤中的另一個回調實例上調用。下面是我遇到的堆棧跟蹤的副本。

這難道不是很奇怪嗎?這是爲什麼發生?

僅供參考我使用EXT-GWT 2.0.1和1.7.0 GWT和我使用主機模式瀏覽器來調試這一點,但我敢肯定,這是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) 

回答

0

好吧,似乎服務器被扔一些NullPointerException異常正在作出的RPC調用時......還是,我不明白爲什麼客戶端堆棧跟蹤看起來像這樣(看起來有點誤導,就好像兩個堆棧軌跡相互流血一樣)。

相關問題