Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 311192 - [Browser] Widget disposed when closing internal browser
Summary: [Browser] Widget disposed when closing internal browser
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: User Assistance (show other bugs)
Version: 3.6   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.8 M3   Edit
Assignee: platform-ua-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 360054 (view as bug list)
Depends on:
Blocks: 361297
  Show dependency tree
 
Reported: 2010-04-30 10:56 EDT by Benjamin Muskalla CLA
Modified: 2011-11-03 12:11 EDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Muskalla CLA 2010-04-30 10:56:09 EDT
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)
Comment 1 Chris Goldthorpe CLA 2011-04-29 18:06:05 EDT
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.
Comment 2 Grant Gayed CLA 2011-10-13 16:17:35 EDT
*** Bug 360054 has been marked as a duplicate of this bug. ***
Comment 3 Grant Gayed CLA 2011-10-13 16:19:51 EDT
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.
Comment 4 Chris Goldthorpe CLA 2011-10-17 20:03:17 EDT
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().
Comment 5 Chris Goldthorpe CLA 2011-10-18 13:55:17 EDT
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
Comment 6 Chris Goldthorpe CLA 2011-10-18 14:53:20 EDT
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.
Comment 7 Jeremiah Swan CLA 2011-10-18 15:26:17 EDT
confirmed that the fix for this bug also resolves bug 360054 (tested with eclipse-SDK-N20111017-2000-win32 + patch)