Project: Eclipse_Platform_UI
Bug 190256 [FastView] Help view opened as fast view cannot be closed and prevents exiting from eclipse
Reported: 2007-05-31 12:00:36 | Status: verified fixed

3.3RC3 build I20070531-0800 - start a brand new eclipse workspace - go to Preferences page General > Perspectives - click the Open a New View > As Fast View radio button, OK - create a Hello World PDE project, stay in the Java Perspective - close the auto-opened PDE editor - open any of the generated .java files in the java editor - press Ctrl+F1 to show the Help view - after it has appeared close it by pressing the 'X' on its tab -> it does not close, and writes the stack below to the log - the view is left in a strange state visually, and eclipse can only be exited through the Task Manager (at least on win32) It appears that someone above swt is disposing the image in the Help view's tab, after which a paint event is coming in and swt is failing because it tries to use the disposed image. org.eclipse.swt.SWTException: Graphic is disposed at org.eclipse.swt.SWT.error(SWT.java:3563) at org.eclipse.swt.SWT.error(SWT.java:3481) at org.eclipse.swt.SWT.error(SWT.java:3452) at org.eclipse.swt.graphics.Image.getBounds(Image.java:1142) at org.eclipse.swt.custom.CTabItem.drawSelected(CTabItem.java:378) at org.eclipse.swt.custom.CTabItem.onPaint(CTabItem.java:790) at org.eclipse.swt.custom.CTabFolder.drawTabArea(CTabFolder.java:1112) at org.eclipse.swt.custom.CTabFolder.onPaint(CTabFolder.java:2258) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:321) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947) at org.eclipse.swt.widgets.Composite.WM_PAINT(Composite.java:1270) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3725) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2264) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3291) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) 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.equinox.launcher.Main.invokeFramework(Main.java:504) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443) at org.eclipse.equinox.launcher.Main.run(Main.java:1169)

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/Perspective.java