Bug 5392 Eclipse dies without warning
build 205 on Win98. This happened 3 times. 1). I was looking at Java code and selected something in the Outline view and Eclipse died without any warning. No log messages or dialogs. 2). I restarted, opened up the Java class again, clicked around in the Outline and it was ok. Then I clicked on a method in the outline, did a search, then double-clicked on the single search result and Eclipse died without warning again. Again without a log or dialog. 3). Restarted again. Pressed the Open to Type button, typed in the class name and hit ok. Eclipse died, got 3 dialogs saying that an error has occurred, and got the following in my log file. Log: Wed Oct 31 13:50:35 EST 2001 2 org.eclipse.ui 2 Problems occurred when invoking code from plug-in: org.eclipse.ui. org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:1805) at org.eclipse.swt.SWT.error(SWT.java:1737) at org.eclipse.swt.custom.CTabItem.getDisplay(CTabItem.java:78) at org.eclipse.swt.widgets.Widget.isValidThread(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Item.getText(Item.java:67) at org.eclipse.swt.custom.CTabItem.setText(CTabItem.java:387) at org.eclipse.ui.internal.EditorWorkbook.updateEditorTab (EditorWorkbook.java:681) at org.eclipse.ui.internal.EditorWorkbook.propertyChanged (EditorWorkbook.java:371) at org.eclipse.ui.part.WorkbenchPart$1.run(WorkbenchPart.java:81) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:812) at org.eclipse.core.runtime.Platform.run(Platform.java:395) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange (WorkbenchPart.java:79) at org.eclipse.ui.texteditor.AbstractTextEditor.firePropertyChange (AbstractTextEditor.java:1952) at org.eclipse.ui.part.WorkbenchPart.setTitleImage (WorkbenchPart.java:222) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updatedTitleImage (JavaEditor.java:343) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.doUpdateErrorT icks(JavaEditorErrorTickUpdater.java:76) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.access$0 (JavaEditorErrorTickUpdater.java:72) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater$1.run (JavaEditorErrorTickUpdater.java:66) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:93) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1336) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1163) at org.eclipse.swt.widgets.Display.release(Display.java:1213) at org.eclipse.swt.graphics.Device.dispose(Device.java:200) at org.eclipse.ui.internal.Workbench.run(Workbench.java:663) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:820) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:433) at org.eclipse.core.launcher.Main.main(Main.java:306) Log: Wed Oct 31 13:50:35 EST 2001 2 org.eclipse.ui 2 Problems occurred when invoking code from plug-in: org.eclipse.ui. org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:1805) at org.eclipse.swt.SWT.error(SWT.java:1737) at org.eclipse.swt.custom.CTabItem.getDisplay(CTabItem.java:78) at org.eclipse.swt.widgets.Widget.isValidThread(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Item.getText(Item.java:67) at org.eclipse.swt.custom.CTabItem.setText(CTabItem.java:387) at org.eclipse.ui.internal.EditorWorkbook.updateEditorTab (EditorWorkbook.java:681) at org.eclipse.ui.internal.EditorWorkbook.propertyChanged (EditorWorkbook.java:371) at org.eclipse.ui.part.WorkbenchPart$1.run(WorkbenchPart.java:81) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:812) at org.eclipse.core.runtime.Platform.run(Platform.java:395) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange (WorkbenchPart.java:79) at org.eclipse.ui.texteditor.AbstractTextEditor.firePropertyChange (AbstractTextEditor.java:1952) at org.eclipse.ui.part.WorkbenchPart.setTitleImage (WorkbenchPart.java:222) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updatedTitleImage (JavaEditor.java:343) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.doUpdateErrorT icks(JavaEditorErrorTickUpdater.java:76) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.access$0 (JavaEditorErrorTickUpdater.java:72) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater$1.run (JavaEditorErrorTickUpdater.java:66) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:93) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1336) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1163) at org.eclipse.jface.window.Window.runEventLoop(Window.java:536) at org.eclipse.jface.window.Window.open(Window.java:523) at org.eclipse.jface.dialogs.MessageDialog.openError (MessageDialog.java:318) at org.eclipse.ui.internal.SafeRunnableAdapter.handleException (SafeRunnableAdapter.java:33) at org.eclipse.ui.part.WorkbenchPart$1.handleException (WorkbenchPart.java:84) at org.eclipse.core.internal.runtime.InternalPlatform.handleException (InternalPlatform.java:429) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:814) at org.eclipse.core.runtime.Platform.run(Platform.java:395) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange (WorkbenchPart.java:79) at org.eclipse.ui.texteditor.AbstractTextEditor.firePropertyChange (AbstractTextEditor.java:1952) at org.eclipse.ui.part.WorkbenchPart.setTitleImage (WorkbenchPart.java:222) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updatedTitleImage (JavaEditor.java:343) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.doUpdateErrorT icks(JavaEditorErrorTickUpdater.java:76) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.access$0 (JavaEditorErrorTickUpdater.java:72) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater$1.run (JavaEditorErrorTickUpdater.java:66) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:93) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1336) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1163) at org.eclipse.swt.widgets.Display.release(Display.java:1213) at org.eclipse.swt.graphics.Device.dispose(Device.java:200) at org.eclipse.ui.internal.Workbench.run(Workbench.java:663) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:820) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:433) at org.eclipse.core.launcher.Main.main(Main.java:306) Log: Wed Oct 31 13:50:35 EST 2001 2 org.eclipse.ui 2 Problems occurred when invoking code from plug-in: org.eclipse.ui. org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:1805) at org.eclipse.swt.SWT.error(SWT.java:1737) at org.eclipse.swt.custom.CTabItem.getDisplay(CTabItem.java:78) at org.eclipse.swt.widgets.Widget.isValidThread(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Item.getText(Item.java:67) at org.eclipse.swt.custom.CTabItem.setText(CTabItem.java:387) at org.eclipse.ui.internal.EditorWorkbook.updateEditorTab (EditorWorkbook.java:681) at org.eclipse.ui.internal.EditorWorkbook.propertyChanged (EditorWorkbook.java:371) at org.eclipse.ui.part.WorkbenchPart$1.run(WorkbenchPart.java:81) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:812) at org.eclipse.core.runtime.Platform.run(Platform.java:395) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange (WorkbenchPart.java:79) at org.eclipse.ui.texteditor.AbstractTextEditor.firePropertyChange (AbstractTextEditor.java:1952) at org.eclipse.ui.part.WorkbenchPart.setTitleImage (WorkbenchPart.java:222) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updatedTitleImage (JavaEditor.java:343) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.doUpdateErrorT icks(JavaEditorErrorTickUpdater.java:76) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.access$0 (JavaEditorErrorTickUpdater.java:72) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater$1.run (JavaEditorErrorTickUpdater.java:66) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:93) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1336) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1163) at org.eclipse.jface.window.Window.runEventLoop(Window.java:536) at org.eclipse.jface.window.Window.open(Window.java:523) at org.eclipse.jface.dialogs.MessageDialog.openError (MessageDialog.java:318) at org.eclipse.ui.internal.SafeRunnableAdapter.handleException (SafeRunnableAdapter.java:33) at org.eclipse.ui.part.WorkbenchPart$1.handleException (WorkbenchPart.java:84) at org.eclipse.core.internal.runtime.InternalPlatform.handleException (InternalPlatform.java:429) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:814) at org.eclipse.core.runtime.Platform.run(Platform.java:395) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange (WorkbenchPart.java:79) at org.eclipse.ui.texteditor.AbstractTextEditor.firePropertyChange (AbstractTextEditor.java:1952) at org.eclipse.ui.part.WorkbenchPart.setTitleImage (WorkbenchPart.java:222) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updatedTitleImage (JavaEditor.java:343) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.doUpdateErrorT icks(JavaEditorErrorTickUpdater.java:76) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.access$0 (JavaEditorErrorTickUpdater.java:72) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater$1.run (JavaEditorErrorTickUpdater.java:66) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:93) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1336) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1163) at org.eclipse.jface.window.Window.runEventLoop(Window.java:536) at org.eclipse.jface.window.Window.open(Window.java:523) at org.eclipse.jface.dialogs.MessageDialog.openError (MessageDialog.java:318) at org.eclipse.ui.internal.SafeRunnableAdapter.handleException (SafeRunnableAdapter.java:33) at org.eclipse.ui.part.WorkbenchPart$1.handleException (WorkbenchPart.java:84) at org.eclipse.core.internal.runtime.InternalPlatform.handleException (InternalPlatform.java:429) at org.eclipse.core.internal.runtime.InternalPlatform.run (InternalPlatform.java:814) at org.eclipse.core.runtime.Platform.run(Platform.java:395) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange (WorkbenchPart.java:79) at org.eclipse.ui.texteditor.AbstractTextEditor.firePropertyChange (AbstractTextEditor.java:1952) at org.eclipse.ui.part.WorkbenchPart.setTitleImage (WorkbenchPart.java:222) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updatedTitleImage (JavaEditor.java:343) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.doUpdateErrorT icks(JavaEditorErrorTickUpdater.java:76) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater.access$0 (JavaEditorErrorTickUpdater.java:72) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater$1.run (JavaEditorErrorTickUpdater.java:66) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:29) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages (Synchronizer.java:93) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1336) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1163) at org.eclipse.swt.widgets.Display.release(Display.java:1213) at org.eclipse.swt.graphics.Device.dispose(Device.java:200) at org.eclipse.ui.internal.Workbench.run(Workbench.java:663) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:820) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:285) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:151) at org.eclipse.core.launcher.Main.run(Main.java:433) at org.eclipse.core.launcher.Main.main(Main.java:306)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorErrorTickUpdater.java
package org.eclipse.jdt.internal.ui.javaeditor;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.text.source.IAnnotationModel;
import org.eclipse.jface.text.source.IAnnotationModelListener;
import org.eclipse.jface.util.Assert;
import org.eclipse.ui.IEditorInput;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
/**
 * The <code>JavaEditorErrorTickUpdater</code> will register as a AnnotationModelListener
 * on the annotation model of a Java Editor and update the title images when the annotation
 * model changed.
 */
public class JavaEditorErrorTickUpdater implements IAnnotationModelListener {
	private JavaEditor fJavaEditor;
	private IAnnotationModel fAnnotationModel;
	private JavaElementLabelProvider fLabelProvider;
	public JavaEditorErrorTickUpdater(JavaEditor editor) {