2009-07-29 3 views
0

GWT-RPC를 사용하여 서버의 데이터로 Ext-GWT TreeGrid를 채 웁니다. 4 개의 콜백을 사용하여 6 개의 TreeGrid를 채 웁니다. 콜백 onSuccess 함수는 행을 삽입하여 TreeGrid를 수정하므로 TreeGridView는 행을 렌더링해야합니다. 콜백 클래스는 MainPnlSummaryTablesAsyncCallback이라고합니다.Ext-GWT TreeGrid는 간접적으로 GWT-RPC 콜백을 호출합니까? 왜?

JSNI를 통해 TreeGridView의 scroller의 offsetHeight를 결정해야 할 경우 스택 추적에서 onSuccess 또는 onFailure가 콜백의 다른 인스턴스에서 호출됩니다. 발생한 스택 추적 복사본은 다음과 같습니다.

이 정말 이상한 아닌가요? 왜 이런 일이 일어나는 걸까요?

는 참고로 나는 내선-GWT 2.0.1 GWT 1.7.0을 사용하고 있는데이 웹 모드에 문제가 있음을 확신하지만, 나는이 문제를 디버깅하는 호스트 모드 브라우저를 사용하고 있습니다.

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

좋아, 그것은 RPC 호출이 만들어지는 때 서버가 클라이언트 측 스택 추적이 닮은 이유를 아직도 이해가 안 ... 일부 NullPointerExceptions를 던지는 것을 보인다 (오해의 종류를 보인다 마치 두 개의 스택 트레이스가 서로 블레 이드 된 것처럼).

관련 문제