Community
Participate
Working Groups
I20100424-2000 Happens from time to time when closing the browser view immidiatly after it's creation. Can reproduce it most of the time using Mylyn Task editor, open the bug in webbrowser, closing the view while it's still loading. -- Error Details -- Date: Fri Apr 30 16:52:22 CEST 2010 Message: Widget is disposed Severity: Error Product: Eclipse SDK 3.6.0.v201004242000 (org.eclipse.sdk.ide) Plugin: org.eclipse.ui Exception Stack Trace: org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Widget.error(Widget.java:465) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:403) at org.eclipse.swt.widgets.ToolItem.setEnabled(ToolItem.java:842) at org.eclipse.ui.internal.browser.BrowserViewer.updateBackNextBusy(BrowserViewer.java:292) at org.eclipse.ui.internal.browser.BrowserViewer$6.completed(BrowserViewer.java:427) at org.eclipse.swt.browser.Mozilla$21.run(Mozilla.java:3078) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4280) at org.eclipse.swt.browser.Mozilla.OnStateChange(Mozilla.java:3085) at org.eclipse.swt.browser.Mozilla$10.method3(Mozilla.java:855) at org.eclipse.swt.internal.mozilla.XPCOMObject.callback3(XPCOMObject.java:266) at org.eclipse.swt.internal.mozilla.XPCOM._JS_EvaluateUCScriptForPrincipals(Native Method) at org.eclipse.swt.internal.mozilla.XPCOM.JS_EvaluateUCScriptForPrincipals(XPCOM.java:164) at org.eclipse.swt.browser.Mozilla.execute(Mozilla.java:1135) at org.eclipse.swt.browser.Mozilla.onDispose(Mozilla.java:2172) at org.eclipse.swt.browser.Mozilla$5.handleEvent(Mozilla.java:760) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1234) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1239) at org.eclipse.swt.widgets.Widget.release(Widget.java:1079) at org.eclipse.swt.widgets.Control.release(Control.java:3292) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1208) at org.eclipse.swt.widgets.Widget.release(Widget.java:1082) at org.eclipse.swt.widgets.Control.release(Control.java:3292) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1208) at org.eclipse.swt.widgets.Widget.release(Widget.java:1082) at org.eclipse.swt.widgets.Control.release(Control.java:3292) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:1208) at org.eclipse.swt.widgets.Widget.release(Widget.java:1082) at org.eclipse.swt.widgets.Control.release(Control.java:3292) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:461) at org.eclipse.ui.internal.PartPane.dispose(PartPane.java:180) at org.eclipse.ui.internal.WorkbenchPartReference.dispose(WorkbenchPartReference.java:681) at org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchPage.java:1721) at org.eclipse.ui.internal.WorkbenchPage.handleDeferredEvents(WorkbenchPage.java:1426) at org.eclipse.ui.internal.WorkbenchPage.deferUpdates(WorkbenchPage.java:1410) at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1384) at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1439) at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:61) at org.eclipse.ui.internal.PartStack.close(PartStack.java:541) at org.eclipse.ui.internal.EditorStack.close(EditorStack.java:206) at org.eclipse.ui.internal.PartStack$1.close(PartStack.java:120) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:83) at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269) at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278) at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1) at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$1.closeButtonPressed(DefaultTabFolder.java:71) at org.eclipse.ui.internal.presentations.PaneFolder.notifyCloseListeners(PaneFolder.java:631) at org.eclipse.ui.internal.presentations.PaneFolder$4.mouseUp(PaneFolder.java:230) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:213) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1234) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3159) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2601) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2565) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2399) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:669) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:662) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
So far I have been unable to reproduce this using I20110427-1300 but it may be that either my laptop or internet connection is not slow enough to give me time to close the window before the widgets have all been created.
*** Bug 360054 has been marked as a duplicate of this bug. ***
Bug 360054 comment 0 gives steps that make this reliably happen for me. Also note that in the other report's scenario that it causes embedded IE to hang.
I tested on Windows and am now seeing a hang where embedded IE opens a warning dialog which cannot be closed. I do not think that what I saw is the same as this bug, I set a breakpoint in BrowserViewer which did not get hit. I will try this on Linux, if I cannot reproduce I will still go ahead and add code which should fix this Widget Disposed error by adding a check for isDisposed() for all the widgets in org.eclipse.ui.internal.browser.BrowserViewer.updateBackNextBusy().
Fixed in R3_development with commit message: Bug 311192 - [Browser] Widget disposed when closing internal browser The fix has been cherry picked into R4_development
I forgot to mention that I was able to reproduce the problem on RHEL5 and was able to verify that the fix eliminated the exception.
confirmed that the fix for this bug also resolves bug 360054 (tested with eclipse-SDK-N20111017-2000-win32 + patch)