Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 319847 - Widget disposal error on shutdown with maximized editor area
Summary: Widget disposal error on shutdown with maximized editor area
Status: VERIFIED FIXED
Alias: None
Product: e4
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 1.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 1.0 RC3   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 320320 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-07-14 09:04 EDT by Remy Suen CLA
Modified: 2010-07-27 15:28 EDT (History)
4 users (show)

See Also:
emoffatt: review+
susan: review+


Attachments
fix (1.55 KB, patch)
2010-07-21 00:12 EDT, Boris Bokowski CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Remy Suen CLA 2010-07-14 09:04:43 EDT
1. Wipe your deltas.
2. Launch your inner.
3. Ctrl+M
4. Alt+F4 > Confirm
5. Exception is logged.

org.eclipse.e4.core.di.InjectionException: org.eclipse.swt.SWTException: Widget is disposed
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:795)
	at org.eclipse.e4.core.internal.di.InjectorImpl.uninject(InjectorImpl.java:163)
	at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:326)
	at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:112)
	at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:59)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:90)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.doHandleInvalid(TrackableComputationExt.java:53)
	at org.eclipse.e4.core.internal.contexts.Computation.handleInvalid(Computation.java:59)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:196)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:589)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:539)
	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1425)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1126)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1105)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1152)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1150)
	at org.eclipse.ui.internal.Workbench$13.run(Workbench.java:1017)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1011)
	at org.eclipse.ui.internal.Workbench.access$11(Workbench.java:945)
	at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1087)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1085)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1058)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1123)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1105)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1152)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1150)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1166)
	at org.eclipse.ui.internal.WorkbenchWindow$4.close(WorkbenchWindow.java:424)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$8.shellClosed(WBWRenderer.java:421)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:308)
	at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1665)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4162)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2454)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:497)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4251)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1598)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2038)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:693)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:618)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:106)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:535)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:519)
	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:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	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)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: 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:468)
	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340)
	at org.eclipse.swt.widgets.Control.getShell(Control.java:1432)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.getShellClientComposite(TrimStack.java:384)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.showStack(TrimStack.java:365)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.cleanUp(TrimStack.java:217)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:618)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:47)
	... 78 more
Comment 1 Boris Bokowski CLA 2010-07-21 00:12:00 EDT
Created attachment 174814 [details]
fix
Comment 2 Boris Bokowski CLA 2010-07-21 00:13:53 EDT
Eric, +1?  This is a surgical fix for the steps as given by Remy.  Do you think we can run into similar cases, but with other controls being disposed earlier than we expect?
Comment 3 Boris Bokowski CLA 2010-07-21 00:14:16 EDT
Susan, +1 for RC3?
Comment 4 Remy Suen CLA 2010-07-21 06:08:48 EDT
(In reply to comment #2)
> Do you think
> we can run into similar cases, but with other controls being disposed earlier
> than we expect?

I have seen this exception logged in other cases in the past but didn't investigate deep enough for reproducible steps.
Comment 5 Susan McCourt CLA 2010-07-21 17:06:20 EDT
(In reply to comment #3)
> Susan, +1 for RC3?

+1 for RC3. 
The fix is low risk and definitely an improvement, although I agree with Remy that there are likely more bugs like these.

I wonder if we should also check whether
tpl.clientArea.isDisposed()

If the toolbar and tpl client area are siblings (and I think they are?), then depending on platform and disposal order, it is theoretically possible that at some moment in time the TB had not been disposed yet but the composite already had.
Comment 6 Eric Moffatt CLA 2010-07-21 17:49:58 EDT
looks good, this is gone with my current patch but i won't make the build with the real one tonight...I'll merge it in tomorrow.
Comment 7 Boris Bokowski CLA 2010-07-21 17:51:12 EDT
committed to HEAD.
Comment 8 Boris Bokowski CLA 2010-07-21 17:52:16 EDT
Eric is working on a better fix. The reason for doing this point fix is to hopeefully get less duplicate bugs being filed tomorrow when we test drive the new DND code.
Comment 9 Boris Bokowski CLA 2010-07-21 18:31:04 EDT
*** Bug 320320 has been marked as a duplicate of this bug. ***
Comment 10 Susan McCourt CLA 2010-07-22 12:46:43 EDT
Build id: I20100721-2056.
Win7.

I installed the e4 tools and was prompted for restart.  While it was trying to restart I saw the familiar stack.  Prior to installing the tools, I had been using the build for awhile, and had done some D&D or perspective stuff (in the course of working, not trying to break anything).  So I can't say for sure what got me in this state...

-------------------

!ENTRY org.eclipse.ui.workbench 4 2 2010-07-22 09:41:37.371
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
!STACK 0
org.eclipse.e4.core.di.InjectionException: org.eclipse.swt.SWTException: Widget is disposed
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:795)
	at org.eclipse.e4.core.internal.di.InjectorImpl.uninject(InjectorImpl.java:163)
	at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:326)
	at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:112)
	at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:59)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:90)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.doHandleInvalid(TrackableComputationExt.java:53)
	at org.eclipse.e4.core.internal.contexts.Computation.handleInvalid(Computation.java:59)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:196)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:604)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:545)
	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1437)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1138)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1117)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1164)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1162)
	at org.eclipse.ui.internal.Workbench$13.run(Workbench.java:1023)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1017)
	at org.eclipse.ui.internal.Workbench.access$11(Workbench.java:951)
	at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1093)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1091)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1064)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1135)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1117)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1164)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1162)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1178)
	at org.eclipse.ui.internal.WorkbenchWindow$4.close(WorkbenchWindow.java:425)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$8.shellClosed(WBWRenderer.java:421)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:308)
	at org.eclipse.swt.widgets.Shell.close(Shell.java:537)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.stop(PartRenderingEngine.java:765)
	at org.eclipse.ui.internal.Workbench.restart(Workbench.java:2222)
	at org.eclipse.equinox.internal.p2.ui.ProvisioningOperationRunner$1.run(ProvisioningOperationRunner.java:92)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:713)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:633)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:106)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:541)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:525)
	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(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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)
Caused by: 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:468)
	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340)
	at org.eclipse.swt.widgets.Control.isVisible(Control.java:1777)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.showStack(TrimStack.java:369)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.cleanUp(TrimStack.java:217)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:47)
	... 68 more
Comment 11 Susan McCourt CLA 2010-07-22 12:48:38 EDT
I wasn't sure whether to open a new bug or use this bug to track the problem.  We all realize/suspect that there are other cases besides the surgical fix where this can happen....
Comment 12 Eric Moffatt CLA 2010-07-27 14:19:27 EDT
I can't repro this on I20100726-2152. Susan, after starting fresh have you been able to see this again?
Comment 13 Susan McCourt CLA 2010-07-27 15:20:02 EDT
I started with today's build, cleaned my deltas, worked for awhile.  During this time I synched CVS, stuck the problems view in the editor area, maximized it, put it back.  Dragged outline view to its own window, then back, etc.

Everything fine.
Then I went to install the model tooling, and sure enough, get the error as the platform tries to shutdown/restart.

!ENTRY org.eclipse.ui.workbench 4 2 2010-07-27 12:15:55.577
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:795)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:775)
	at org.eclipse.e4.core.internal.di.InjectorImpl.uninject(InjectorImpl.java:163)
	at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:326)
	at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:112)
	at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:59)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:90)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.doHandleInvalid(TrackableComputationExt.java:53)
	at org.eclipse.e4.core.internal.contexts.Computation.handleInvalid(Computation.java:59)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:196)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:186)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:604)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:545)
	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1357)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1058)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1037)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1084)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1082)
	at org.eclipse.ui.internal.Workbench$13.run(Workbench.java:1023)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1017)
	at org.eclipse.ui.internal.Workbench.access$11(Workbench.java:951)
	at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1093)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1091)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1064)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1055)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1037)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1084)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1082)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1098)
	at org.eclipse.ui.internal.WorkbenchWindow$4.close(WorkbenchWindow.java:424)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$8.shellClosed(WBWRenderer.java:421)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:308)
	at org.eclipse.swt.widgets.Shell.close(Shell.java:537)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.stop(PartRenderingEngine.java:765)
	at org.eclipse.ui.internal.Workbench.restart(Workbench.java:2222)
	at org.eclipse.equinox.internal.p2.ui.ProvisioningOperationRunner$1.run(ProvisioningOperationRunner.java:92)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:713)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:633)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:106)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:541)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:525)
	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(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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)
Caused by: java.lang.NullPointerException
	at org.eclipse.ui.internal.WorkbenchWindow.getExtensionTracker(WorkbenchWindow.java:2067)
	at org.eclipse.ui.actions.BaseNewWizardMenu.unregisterListeners(BaseNewWizardMenu.java:271)
	at org.eclipse.ui.actions.BaseNewWizardMenu.dispose(BaseNewWizardMenu.java:164)
	at org.eclipse.jface.action.MenuManager.dispose(MenuManager.java:234)
	at org.eclipse.jface.action.MenuManager.dispose(MenuManager.java:234)
	at org.eclipse.ui.internal.PartSite.dispose(PartSite.java:274)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.disposeSite(CompatibilityPart.java:223)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.invalidate(CompatibilityPart.java:135)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.destroy(CompatibilityPart.java:208)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:47)
	... 70 more
Comment 14 Susan McCourt CLA 2010-07-27 15:28:09 EDT
Since this isn't really the same bug as originally reported, I've opened a new bug, bug 321061, for the NPE I'm still getting, and closing this one.
Comment 15 Susan McCourt CLA 2010-07-27 15:28:58 EDT
verified on Win 7, I20100726-2152
I can shutdown successfully with a maximized editor.