Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 339249 - SWTException thrown after resetting a perspective with a detached window
Summary: SWTException thrown after resetting a perspective with a detached window
Status: CLOSED DUPLICATE of bug 339286
Alias: None
Product: e4
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 1.0   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-08 11:55 EST by Remy Suen CLA
Modified: 2011-03-11 09:21 EST (History)
0 users

See Also:


Attachments
Patch to route TB disposal through removeGui (1.30 KB, patch)
2011-03-08 16:44 EST, Eric Moffatt 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-03-08 11:55:39 EST
1. Detach the 'Outline' view.
2. Window > Reset Perspective... > OK
3. An SWTException is thrown.

Switching perspectives seems to fix the problem but an error will now be thrown every time you reset the persepctive.

org.eclipse.swt.SWTException: Widget is disposed
	at org.eclipse.swt.SWT.error(SWT.java:4270)
	at org.eclipse.swt.SWT.error(SWT.java:4185)
	at org.eclipse.swt.SWT.error(SWT.java:4156)
	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.Composite.computeSize(Composite.java:226)
	at org.eclipse.e4.ui.widgets.CTabFolder.setButtonBounds(CTabFolder.java:2219)
	at org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3449)
	at org.eclipse.e4.ui.widgets.CTabFolder.updateItems(CTabFolder.java:3382)
	at org.eclipse.e4.ui.widgets.CTabFolder.onResize(CTabFolder.java:1783)
	at org.eclipse.e4.ui.widgets.CTabFolder$2.handleEvent(CTabFolder.java:272)
	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.Control.WM_SIZE(Control.java:5156)
	at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:291)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1662)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4586)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4957)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2520)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5391)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4599)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4970)
	at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:949)
	at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:915)
	at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:1126)
	at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1677)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4586)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4957)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2520)
	at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80)
	at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:5391)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4599)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4957)
	at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
	at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1457)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:3111)
	at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:1019)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:3072)
	at org.eclipse.swt.widgets.Control.setBounds(Control.java:3068)
	at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:201)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1263)
	at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1249)
	at org.eclipse.swt.widgets.Composite.setLayoutDeferred(Composite.java:1086)
	at org.eclipse.swt.widgets.Display.runDeferredLayouts(Display.java:4174)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3732)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:842)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:758)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:87)
Comment 1 Eric Moffatt CLA 2011-03-08 16:44:20 EST
Created attachment 190705 [details]
Patch to route TB disposal through removeGui


This appears to be related to removing MRenderedToolbars in favor of using 'regular' MToolbars.

BTW, this has nothing to do with Detached windows, you can induce it simply by resetting the perspective.
Comment 2 Remy Suen CLA 2011-03-09 07:44:17 EST
I opened bug 339344 to SWT to consider not choking when the top right control has been disposed.
Comment 3 Remy Suen CLA 2011-03-11 09:21:39 EST
Fixed by the changes for bug 339286.

Verified that resetting works on Windows XP with I20110310-2200.

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