Bug 28623 Widget is Disposed
Eclipse 20021217 Started new eclipse. Updated existing workspace with both source and binary projects. Changed preferences on Window>Preferences>Workspace>Editors (turned editor pop-down on, and tab compression to low). The following exception was captured in the log !SESSION Dec 18, 2002 09:53:48.72 ---------------------------------------------- java.fullversion=J2RE 1.3.1 IBM build cxia32131-20020410 (JIT enabled: jitc) BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US Command-line arguments: -os linux -ws gtk -arch x86 - data /home/airvine/ide/workspace_gtk_R2.1 -showlocation -install file:/home/airvine/ide/eclipse_gtk_R2.1/ !ENTRY org.eclipse.ui 4 4 Dec 18, 2002 09:53:48.73 !MESSAGE Unhandled exception caught in event loop. !ENTRY org.eclipse.ui 4 0 Dec 18, 2002 09:53:48.95 !MESSAGE Widget is disposed !STACK 0 org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:2180) at org.eclipse.swt.widgets.Control.getDisplay(Control.java(Compiled Code)) at org.eclipse.swt.widgets.Control.getDisplay(Control.java(Compiled Code)) at org.eclipse.swt.widgets.Control.getDisplay(Control.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java(Compiled Code)) at org.eclipse.swt.widgets.Tree.getSelectionCount(Tree.java:511) at org.eclipse.jface.preference.PreferenceDialog.setSelectedNode (PreferenceDialog.java:728) at org.eclipse.jface.preference.PreferenceDialog.close (PreferenceDialog.java:223) at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.savePressed (WorkbenchPreferenceDialog.java:257) at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.buttonPressed (WorkbenchPreferenceDialog.java:99) at org.eclipse.jface.dialogs.Dialog$1.widgetSelected(Dialog.java:398) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java (Compiled Code)) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java (Compiled Code)) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java (Compiled Code)) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java (Compiled Code)) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java (Compiled Code)) at org.eclipse.jface.window.Window.runEventLoop(Window.java(Compiled Code)) at org.eclipse.jface.window.Window.open(Window.java:541) at org.eclipse.ui.internal.OpenPreferencesAction.run (OpenPreferencesAction.java:47) at org.eclipse.jface.action.Action.runWithEvent(Action.java:769) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:411) at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent (ActionContributionItem.java:365) at org.eclipse.jface.action.ActionContributionItem.access$0 (ActionContributionItem.java:356) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent (ActionContributionItem.java:48) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java (Compiled Code)) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java (Compiled Code)) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java (Compiled Code)) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java (Compiled Code)) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java (Compiled Code)) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:845) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:247) at org.eclipse.core.launcher.Main.run(Main.java:703) at org.eclipse.core.launcher.Main.main(Main.java:539)
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
/**
	 * Save the currently selected node. 
	 */
	private void setSelectedNode() {
		String storeValue = null;
		if (tree.getSelectionCount() == 1) {
			TreeItem currentSelection = tree.getSelection()[0];
			Object data = currentSelection.getData();
			if (currentSelection.getData() instanceof IPreferenceNode)
				storeValue = ((IPreferenceNode) data).getId();
		}
		setSelectedNodePreference(storeValue);
	}
	/**
	 * Display the given error message. The currently displayed message
	 * is saved and will be redisplayed when the error message is set
	 * to <code>null</code>.
	 *
	 * @param errorMessage the errorMessage to display or <code>null</code>
	 */
	public void setErrorMessage(String newErrorMessage) {
		
		if (errorMessage == null
			? newErrorMessage == null
			: errorMessage.equals(newErrorMessage))
			return;
		errorMessage = newErrorMessage;
		if (errorMessage == null) {
			if (showingError) {