Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 361297

Summary: Backport to 3.7.2 and 4.1.2 [Browser] Widget disposed when closing internal browser
Product: [Eclipse Project] Platform Reporter: Chris Goldthorpe <cgold>
Component: User AssistanceAssignee: platform-ua-inbox <platform-ua-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: b.muskalla, cgold, grant_gayed, swanj
Version: 3.7Flags: grant_gayed: review+
Target Milestone: 3.7.2   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on: 311192    
Bug Blocks:    

Description Chris Goldthorpe CLA 2011-10-18 15:27:48 EDT
+++ This bug was initially created as a clone of Bug #311192 +++

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-10-18 16:13:51 EDT
Grant, I would like to cherry pick the commit below into the maintenance branches for 3.7 and 4.1. Can you review for inclusion in 3.7.2 and 4.1.2?

branch = R3_development
id = ca1553e377556e9ff489e0c07e6c823d7937fc31
message = Bug 311192 - [Browser] Widget disposed when closing internal browser
Comment 2 Grant Gayed CLA 2011-10-19 10:29:01 EDT
+1, the changes seem safe.
Comment 3 Chris Goldthorpe CLA 2011-10-19 13:38:47 EDT
Cherry picked "Bug 311192 - [Browser] Widget disposed when closing internal browser " to R3_7_maintenance and to R4_1_maintenance.

Created commit in R3_7_maintenance with message:
Update bundle version of org.eclipse.ui.browser for 3.7.2 and 4.1.2
Cherry picked that commit to R4_1_maintenance.