Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 339583

Summary: SWTException thrown when dragging a minimized view back to a regular stack
Product: [Eclipse Project] e4 Reporter: Remy Suen <remy.suen>
Component: UIAssignee: Project Inbox <e4.ui-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: emoffatt, pinnamur
Version: 1.0   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Remy Suen CLA 2011-03-10 14:45:11 EST
1. Minimize a stack.
2. Click on one of the part's icons so that stack pops up.
3. Drag and drop that part into another stack that's not minimized.
4. An SWTException is thrown.

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.setMinimizeVisible(CTabFolder.java:2639)
at org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon.restoreStack(MinMaxAddon.java:353)
at org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon$3.handleRestore(MinMaxAddon.java:199)
at org.eclipse.e4.ui.workbench.addons.minmax.MinMaxAddon$3.handleEvent(MinMaxAddon.java:188)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4668)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:172)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:380)
at org.eclipse.emf.ecore.util.EcoreEList.dispatchNotification(EcoreEList.java:255)
at org.eclipse.emf.common.notify.impl.NotifyingListImpl.remove(NotifyingListImpl.java:731)
at org.eclipse.emf.common.util.AbstractEList.remove(AbstractEList.java:466)
at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.restoreStack(TrimStack.java:372)
at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.updateTrimStackItems(TrimStack.java:318)
at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack.access$5(TrimStack.java:308)
at org.eclipse.e4.ui.workbench.addons.minmax.TrimStack$6$1.run(TrimStack.java:188)
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:4125)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3742)
at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager.update(DnDManager.java:243)
at org.eclipse.e4.ui.workbench.addons.dndaddon.DnDManager$3.handleEvent(DnDManager.java:111)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4150)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3739)
Comment 1 Praveen CLA 2011-03-10 21:26:15 EST
Remy, Do you want me to look into this ?
Comment 2 Remy Suen CLA 2011-03-11 07:41:38 EST
(In reply to comment #1)
> Remy, Do you want me to look into this ?

Thank you very much for your offer of assistance, Praveen!

Please let Eric know about any findings you find.
Comment 3 Remy Suen CLA 2011-03-14 09:23:58 EDT
(In reply to comment #1)
> Remy, Do you want me to look into this ?

Actually, I think Eric has code that will fix this. Eric, is this correct? Please coordinate with Praveen so that we don't duplicate any work, thanks.
Comment 4 Remy Suen CLA 2011-04-07 12:48:04 EDT
Cannot reproduce with I20110331-2200.