Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 320320 - NPE after resetting a perspective and then detaching a view
Summary: NPE after resetting a perspective and then detaching a view
Status: CLOSED DUPLICATE of bug 319847
Alias: None
Product: e4
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 1.0   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 1.0 RC3   Edit
Assignee: Eric Moffatt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-19 16:23 EDT by Susan McCourt CLA
Modified: 2010-07-21 18:31 EDT (History)
1 user (show)

See Also:


Attachments
log (19.80 KB, text/plain)
2010-07-19 16:23 EDT, Susan McCourt CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Susan McCourt CLA 2010-07-19 16:23:05 EDT
Win7, Build id: I20100718-2237
I was trying the steps in bug 317466 to see where we are at on that bug.
So I had done something like:

1. Open a file.
2. Drag the 'Problems' view to the 'Outline' view's stack.
3. Detach the 'Problems' view.
4. Detach the 'Outline' view to the 'Problems' view's stack.
5. Minimize that stack.
6. Restore it.

The current behavior is different than what the bug says, so I decided to reset the (Java) perspective and try some simpler steps in order to annotate that bug.

After resetting the perspective, I tried to detach the outline view (I think) and got an NPE.  At that point, nothing seemed to work (show view, etc.) and I got an NPE when closing the workbench.

Note that things seemed better when I opened the workbench again (I don't think I was permanently hosed by the problem).

I'm not sure these are the precise steps but it was something close to this.  I'll attach the log.
Comment 1 Susan McCourt CLA 2010-07-19 16:23:35 EDT
Created attachment 174671 [details]
log
Comment 2 Susan McCourt CLA 2010-07-19 17:06:40 EDT
after playing around with some different drag/drop scenarios, detach, etc...
I'm pretty sure that resetting the perspective is what starts to cause the trouble.  I was resetting from the perspective switcher.
Comment 3 Susan McCourt CLA 2010-07-20 17:21:10 EDT
From HEAD (with the fix for bug 320306.)

I can still get into problems after resetting a perspective.
Again, my steps are sketchy, because I had reset the java perspective while in the middle of a bunch of drag and drop experiments.

I can confirm that I had only one perspective open (Java).
I had run into some trouble with empty detached windows and decided to reset the perspective.

When I tried to exit the workbench, I got this error:

!ENTRY org.eclipse.ui.workbench 4 2 2010-07-20 14:16:26.612
!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:1431)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1132)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1111)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1158)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1156)
	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:1129)
	at org.eclipse.ui.internal.WorkbenchWindow.access$9(WorkbenchWindow.java:1111)
	at org.eclipse.ui.internal.WorkbenchWindow$6.run(WorkbenchWindow.java:1158)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1156)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1172)
	at org.eclipse.ui.internal.WorkbenchWindow$4.close(WorkbenchWindow.java:427)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$8.shellClosed(WBWRenderer.java:420)
	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.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: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)
	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:385)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.showStack(TrimStack.java:366)
	at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.cleanUp(TrimStack.java:218)
	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)
	... 86 more
Comment 4 Boris Bokowski CLA 2010-07-21 18:31:04 EDT

*** This bug has been marked as a duplicate of bug 319847 ***