His, We have a weird case of using GWT that causes many head aches. A couple of GWT components are being attached to divs of a website segment that is periodically rerendered per richfaces ajax call. When that happens the widget is not visible anymore since the original parent html element gets replaced. The workaround (mainly because of IE problems) is to create a new copy of widget and attach it to the new element. It works well so far, but when you exist the website (in our case it's an automatic logout after so many minutes) an com.google.gwt.user.client.ui.AttachDetachException comes in IE 7 and 8.
My understanding is that GWT framework tries to deattach all the widgets at that point and fails to deattach orphan widgets (that are being caused by rerendering). Is there a workaround to hide this message (try catch it somewhere) or maybe there is a better way of dealing with orphan widgets (it's actually a hierarchy of widgets attached to each other and then to RootPanel). Thank you. (full stacktrace below) [ERROR] Uncaught exception escaped com.google.gwt.user.client.ui.AttachDetachException: One or more exceptions caught, see full set in AttachDetachException#getCauses at com.google.gwt.user.client.ui.AttachDetachException.tryCommand(AttachDetachException.java: 85) at com.google.gwt.user.client.ui.RootPanel.detachWidgets(RootPanel.java: 240) at com.google.gwt.user.client.ui.RootPanel $2.onClose(RootPanel.java:265) at com.google.gwt.event.logical.shared.CloseEvent.dispatch(CloseEvent.java: 112) at com.google.gwt.event.logical.shared.CloseEvent.dispatch(CloseEvent.java: 1) at com.google.gwt.event.shared.HandlerManager $HandlerRegistry.fireEvent(HandlerManager.java:65) at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access $1(HandlerManager.java:53) at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java: 178) at com.google.gwt.event.logical.shared.CloseEvent.fire(CloseEvent.java: 56) at com.google.gwt.event.logical.shared.CloseEvent.fire(CloseEvent.java: 41) at com.google.gwt.user.client.Window.onClosed(Window.java: 780) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java: 597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java: 71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java: 157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java: 1713) at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java: 165) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java: 120) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java: 507) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java: 264) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java: 91) at com.google.gwt.core.client.impl.Impl.apply(Impl.java) at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188) at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java: 597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java: 71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java: 157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java: 1668) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java: 401) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java: 222) at java.lang.Thread.run(Thread.java:662) Caused by: com.google.gwt.user.client.ui.AttachDetachException: One or more exceptions caught, see full set in AttachDetachException#getCauses at com.google.gwt.user.client.ui.AttachDetachException.tryCommand(AttachDetachException.java: 85) at com.google.gwt.user.client.ui.Panel.doDetachChildren(Panel.java: 167) at com.google.gwt.user.client.ui.Widget.onDetach(Widget.java:333) at com.google.gwt.user.client.ui.RootPanel$1.execute(RootPanel.java: 72) at com.google.gwt.user.client.ui.AttachDetachException.tryCommand(AttachDetachException.java: 72) at com.google.gwt.user.client.ui.RootPanel.detachWidgets(RootPanel.java: 240) at com.google.gwt.user.client.ui.RootPanel $2.onClose(RootPanel.java:265) at com.google.gwt.event.logical.shared.CloseEvent.dispatch(CloseEvent.java: 112) at com.google.gwt.event.logical.shared.CloseEvent.dispatch(CloseEvent.java: 1) at com.google.gwt.event.shared.HandlerManager $HandlerRegistry.fireEvent(HandlerManager.java:65) at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access $1(HandlerManager.java:53) at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java: 178) at com.google.gwt.event.logical.shared.CloseEvent.fire(CloseEvent.java: 56) at com.google.gwt.event.logical.shared.CloseEvent.fire(CloseEvent.java: 41) at com.google.gwt.user.client.Window.onClosed(Window.java: 780) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java: 597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java: 71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java: 157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java: 1713) at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java: 165) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java: 120) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java: 507) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java: 264) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java: 91) at com.google.gwt.core.client.impl.Impl.apply(Impl.java) at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188) at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java: 597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java: 71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java: 157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java: 1668) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java: 401) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java: 222) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.IllegalStateException: Should only call onDetach when the widget is attached to the browser's document at com.google.gwt.user.client.ui.Widget.onDetach(Widget.java:322) at com.google.gwt.user.client.ui.Composite.onDetach(Composite.java: 122) at com.google.gwt.user.client.ui.AttachDetachException $2.execute(AttachDetachException.java:41) at com.google.gwt.user.client.ui.AttachDetachException.tryCommand(AttachDetachException.java: 72) at com.google.gwt.user.client.ui.Panel.doDetachChildren(Panel.java: 167) at com.google.gwt.user.client.ui.Widget.onDetach(Widget.java:333) at com.google.gwt.user.client.ui.RootPanel$1.execute(RootPanel.java: 72) at com.google.gwt.user.client.ui.AttachDetachException.tryCommand(AttachDetachException.java: 72) at com.google.gwt.user.client.ui.RootPanel.detachWidgets(RootPanel.java: 240) at com.google.gwt.user.client.ui.RootPanel $2.onClose(RootPanel.java:265) at com.google.gwt.event.logical.shared.CloseEvent.dispatch(CloseEvent.java: 112) at com.google.gwt.event.logical.shared.CloseEvent.dispatch(CloseEvent.java: 1) at com.google.gwt.event.shared.HandlerManager $HandlerRegistry.fireEvent(HandlerManager.java:65) at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access $1(HandlerManager.java:53) at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java: 178) at com.google.gwt.event.logical.shared.CloseEvent.fire(CloseEvent.java: 56) at com.google.gwt.event.logical.shared.CloseEvent.fire(CloseEvent.java: 41) at com.google.gwt.user.client.Window.onClosed(Window.java: 780) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java: 597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java: 71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java: 157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java: 1713) at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java: 165) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java: 120) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java: 507) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java: 264) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java: 91) at com.google.gwt.core.client.impl.Impl.apply(Impl.java) at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188) at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java: 597) at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java: 103) at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java: 71) at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java: 157) at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java: 1668) at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java: 401) at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java: 222) at java.lang.Thread.run(Thread.java:662) -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
