Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 346753 - PartFocusTest tear down sometimes throws NPE
Summary: PartFocusTest tear down sometimes throws NPE
Status: RESOLVED FIXED
Alias: None
Product: e4
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 1.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 4.1 RC2   Edit
Assignee: Remy Suen CLA
QA Contact: Remy Suen CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-05-20 14:16 EDT by Remy Suen CLA
Modified: 2011-05-20 14:18 EDT (History)
0 users

See Also:


Attachments
PartRenderingEngine patch v1 (987 bytes, patch)
2011-05-20 14:17 EDT, Remy Suen 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 2011-05-20 14:16:54 EDT
It seems like the disposal of a widget is causing SWT.Activate to be sent to a stack that's been unhooked from its model element.

java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.activateStack(StackRenderer.java:164)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.access$5(StackRenderer.java:163)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$7.handleEvent(StackRenderer.java:616)
	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.Shell.setActiveControl(Shell.java:1446)
	at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2823)
	at org.eclipse.swt.widgets.Widget.wmSetFocus(Widget.java:2403)
	at org.eclipse.swt.widgets.Control.WM_SETFOCUS(Control.java:5135)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4581)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4983)
	at org.eclipse.swt.internal.win32.OS.DestroyWindow(Native Method)
	at org.eclipse.swt.widgets.Control.destroyWidget(Control.java:771)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:818)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:446)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$3.widgetDisposed(StackRenderer.java:364)
	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.e4.ui.widgets.CTabFolder.onDispose(CTabFolder.java:1512)
	at org.eclipse.e4.ui.widgets.CTabFolder$1.handleEvent(CTabFolder.java:264)
	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:873)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:811)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:873)
	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:1289)
	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:715)
	at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:309)
	at org.eclipse.swt.widgets.Shell.close(Shell.java:538)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.stop(PartRenderingEngine.java:1014)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.close(E4Workbench.java:124)
	at org.eclipse.e4.ui.tests.workbench.PartFocusTest.tearDown(PartFocusTest.java:131)
Comment 1 Remy Suen CLA 2011-05-20 14:17:56 EDT
Created attachment 196243 [details]
PartRenderingEngine patch v1
Comment 2 Remy Suen CLA 2011-05-20 14:18:34 EDT
(In reply to comment #1)
> Created attachment 196243 [details]
> PartRenderingEngine patch v1

Patch released to CVS HEAD. Deconstructing the window in sequence will prevent this problem from occurring.
Comment 3 Remy Suen CLA 2011-05-20 14:18:46 EDT
Whoops.