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

Bug 340023

Summary: [ModelTooling] Infinite SWT error dialog after closing a part with the live editor dialog up
Product: [Eclipse Project] e4 Reporter: Remy Suen <remy.suen>
Component: UIAssignee: Project Inbox <e4.ui-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: P3 CC: pelouas, tom.schindl
Version: unspecified   
Target Milestone: 4.1 M7   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Remy Suen CLA 2011-03-15 09:44:03 EDT
I20110312-1300

1. Install the e4 tools so you get the live editor.
2. Start Eclipse.
3. Point at a new workspace.
4. Alt+Shift+F9 to bring up the live editor.
5. Expand down to find the _placeholder_ of the 'Package Explorer' part.
6. Close the 'Package Explorer'.
7. You will now be in an infinite error dialog loop. You must kill Eclipse to exit.

org.eclipse.swt.SWTException: Graphic is disposed
	at org.eclipse.swt.SWT.error(SWT.java:4277)
	at org.eclipse.swt.SWT.error(SWT.java:4192)
	at org.eclipse.swt.SWT.error(SWT.java:4163)
	at org.eclipse.swt.graphics.Image.getImageData(Image.java:1209)
	at org.eclipse.swt.internal.ImageList.set(ImageList.java:407)
	at org.eclipse.swt.internal.ImageList.add(ImageList.java:72)
	at org.eclipse.swt.widgets.Tree.imageIndex(Tree.java:3643)
	at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7296)
	at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5517)
	at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896)
	at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5069)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4567)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4957)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2419)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1537)
	at org.eclipse.swt.widgets.Tree.WM_PAINT(Tree.java:6888)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4568)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5886)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4970)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2525)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3737)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:852)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:768)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:87)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:542)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:524)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
Comment 1 Thomas Schindl CLA 2011-03-15 10:07:08 EDT
release fix
Comment 2 Guillaume P. CLA 2011-10-26 12:24:16 EDT
I have a similar problem, but with Indigo (Build id: 20110916-0149), while it was working correctly on Helios.

I have a tree containing items with images.
When I remove some elements of this tree and then I call refresh on this tree (while the tree is visible), I have a crash with the following error:

!ENTRY org.eclipse.ui 4 0 2011-10-26 18:13:55.340
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Graphic is disposed
	at org.eclipse.swt.SWT.error(SWT.java:4282)
	at org.eclipse.swt.SWT.error(SWT.java:4197)
	at org.eclipse.swt.SWT.error(SWT.java:4168)
	at org.eclipse.swt.graphics.Image.getImageData(Image.java:1209)
	at org.eclipse.swt.internal.ImageList.set(ImageList.java:405)
	at org.eclipse.swt.internal.ImageList.add(ImageList.java:70)
	at org.eclipse.swt.widgets.Tree.imageIndex(Tree.java:3639)
	at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7347)
	at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534)
	at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896)
	at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4584)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4985)
	at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2425)
	at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1533)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4623)
	at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5937)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972)
	at org.eclipse.swt.internal.win32.OS.UpdateWindow(Native Method)
	at org.eclipse.swt.widgets.TreeItem.setExpanded(TreeItem.java:1262)
	at org.eclipse.jface.viewers.TreeViewer.setExpanded(TreeViewer.java:332)
	at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2767)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1908)
	at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:721)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1883)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1840)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1826)
	at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1508)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
	at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1506)
	at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:537)
	at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1465)
	at myApp.StructureMergeViewer.refresh(StructureMergeViewer.java:226)