Bug 184908 [Wizards] [Forms] Widget disposed error in forms while closing Java project wizard
Build: I20070501-0010 After clicking around in the source tab on the second page of the new Java project wizard, I hit Esc to cancel and close the dialog. The following exception appeared in the log. I was unable to reproduce it... org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:3542) at org.eclipse.swt.SWT.error(SWT.java:3465) at org.eclipse.swt.SWT.error(SWT.java:3436) at org.eclipse.swt.widgets.Widget.error(Widget.java:432) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:325) at org.eclipse.swt.widgets.Control.getParent(Control.java:1329) at org.eclipse.ui.internal.forms.widgets.FormUtil.getScrolledComposite(FormUtil.java:198) at org.eclipse.ui.internal.forms.widgets.FormUtil.setFocusScrollingEnabled(FormUtil.java:502) at org.eclipse.ui.forms.widgets.FormText.setFocus(FormText.java:1696) at org.eclipse.jface.wizard.WizardDialog.stopped(WizardDialog.java:1220) at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:941) at org.eclipse.jdt.internal.ui.wizards.JavaProjectWizardSecondPage.removeProject(JavaProjectWizardSecondPage.java:394) at org.eclipse.jdt.internal.ui.wizards.JavaProjectWizardSecondPage.performCancel(JavaProjectWizardSecondPage.java:435) at org.eclipse.jdt.internal.ui.wizards.JavaProjectWizard.performCancel(JavaProjectWizard.java:116) at org.eclipse.jface.wizard.WizardDialog.okToClose(WizardDialog.java:859) at org.eclipse.jface.wizard.WizardDialog.close(WizardDialog.java:426) at org.eclipse.jface.window.Window.handleShellCloseEvent(Window.java:736) at org.eclipse.jface.window.Window$3.shellClosed(Window.java:682) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:91) 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.Decorations.closeWidget(Decorations.java:301) at org.eclipse.swt.widgets.Shell.close(Shell.java:476) at org.eclipse.swt.widgets.Shell.traverseEscape(Shell.java:1634) at org.eclipse.swt.widgets.Control.traverse(Control.java:3382) at org.eclipse.swt.widgets.Control.translateTraversal(Control.java:3359) at org.eclipse.swt.widgets.Composite.translateTraversal(Composite.java:973) at org.eclipse.swt.widgets.Display.translateTraversal(Display.java:4195) at org.eclipse.swt.widgets.Display.filterMessage(Display.java:1153) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3280) at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) at org.eclipse.jface.window.Window.open(Window.java:796) at org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(NewWizardShortcutAction.java:126) at org.eclipse.ui.internal.incubator.WizardElement.execute(WizardElement.java:41) at org.eclipse.ui.internal.incubator.CtrlEAction$QuickAccessPopup.handleElementSelected(CtrlEAction.java:289) at org.eclipse.ui.internal.incubator.FilteringInfoPopup$5.keyPressed(FilteringInfoPopup.java:309) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:154) 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.Widget.sendKeyEvent(Widget.java:975) at org.eclipse.swt.widgets.Text.sendKeyEvent(Text.java:1299) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:971) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1285) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3764) at org.eclipse.swt.widgets.Text.WM_CHAR(Text.java:2013) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3664) at org.eclipse.swt.widgets.Text.windowProc(Text.java:2008) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2257) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3282) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2365) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2329) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2204) 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:101) 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(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:615)
bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
}
	/**
	 * Computes the correct dialog size for the given wizard and resizes its
	 * shell if nessessary.
	 * 
	 * @param sizingWizard
	 *            the wizard
	 */
	private void updateSizeForWizard(IWizard sizingWizard) {
		Point delta = new Point(0, 0);
		IWizardPage[] pages = sizingWizard.getPages();
		for (int i = 0; i < pages.length; i++) {
			
			Point pageDelta = calculatePageSizeDelta(pages[i]);
			delta.x = Math.max(delta.x, pageDelta.x);
			delta.y = Math.max(delta.y, pageDelta.y);
		}
		if (delta.x > 0 || delta.y > 0) {
			
			Shell shell = getShell();
			Point shellSize = shell.getSize();
			setShellSize(shellSize.x + delta.x, shellSize.y + delta.y);
		}
	}
	/*
	 * (non-Javadoc) Method declared on IWizardContainer.
	 */
	public void updateTitleBar() {
		String s = null;
		if (currentPage != null) {