Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 320719 - [Compatibility] NPE when shutting down with an editor that's been minimized to the trim
Summary: [Compatibility] NPE when shutting down with an editor that's been minimized t...
Status: RESOLVED WORKSFORME
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: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-23 09:38 EDT by Remy Suen CLA
Modified: 2010-09-13 13:09 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Remy Suen CLA 2010-07-23 09:38:19 EDT
1. Open a Java file.
2. Drag it to a view stack.
3. Minimize that stack.
4. Shutdown Eclipse.

java.lang.NullPointerException
	at org.eclipse.ui.internal.WorkbenchWindow.getShell(WorkbenchWindow.java:1077)
	at org.eclipse.jdt.internal.ui.text.JavaReconciler.uninstall(JavaReconciler.java:345)
	at org.eclipse.jface.text.source.SourceViewer.unconfigure(SourceViewer.java:692)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.unconfigure(JavaSourceViewer.java:357)
	at org.eclipse.jface.text.source.SourceViewer.handleDispose(SourceViewer.java:745)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.handleDispose(ProjectionViewer.java:1363)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaSourceViewer.handleDispose(JavaSourceViewer.java:462)
	at org.eclipse.jface.text.TextViewer$2.widgetDisposed(TextViewer.java:1798)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:123)
	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.Widget.notifyListeners(Widget.java:774)
	at org.eclipse.swt.custom.StyledText.handleDispose(StyledText.java:5825)
	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5651)
	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:1058)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:808)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872)
	at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167)
	at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:773)
	at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1267)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446)
	at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:447)
	at org.eclipse.swt.widgets.Shell.dispose(Shell.java:714)
	at org.eclipse.swt.widgets.Display.release(Display.java:3707)
	at org.eclipse.swt.graphics.Device.dispose(Device.java:295)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:131)
	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)
Comment 1 Remy Suen CLA 2010-07-23 17:07:26 EDT
1. Open a Java file.
2. Drag it to a view stack.
3. Window > Open Perspective > Debug
4. Shutdown Eclipse.

You'll get the same thing. I also got another stack trace before I got the one in comment 0.

java.lang.NullPointerException
	at org.eclipse.ui.SubActionBars.setGlobalActionHandler(SubActionBars.java:581)
	at org.eclipse.jdt.ui.actions.ReferencesSearchGroup.updateGlobalActionHandlers(ReferencesSearchGroup.java:228)
	at org.eclipse.jdt.ui.actions.ReferencesSearchGroup.dispose(ReferencesSearchGroup.java:222)
	at org.eclipse.jdt.ui.actions.JavaSearchActionGroup.dispose(JavaSearchActionGroup.java:201)
	at org.eclipse.jdt.internal.ui.actions.CompositeActionGroup.dispose(CompositeActionGroup.java:54)
	at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.dispose(JavaOutlinePage.java:877)
	at org.eclipse.ui.views.contentoutline.ContentOutline.doDestroyPage(ContentOutline.java:149)
	at org.eclipse.ui.part.PageBookView.removePage(PageBookView.java:860)
	at org.eclipse.ui.part.PageBookView.dispose(PageBookView.java:518)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.invalidate(CompatibilityPart.java:128)
	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)
	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:426)
	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:4886)
	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)
Comment 2 Remy Suen CLA 2010-09-13 13:09:36 EDT
Cannot reproduce on I20100911-2002. Probably resolved due to the recursive removeGui(MUIElement) implementation.