Bug 43415 [Dialogs] SWTException from ProgressIndicator
Nightly build 20030922 - Run a test using the JUnit Plugin launcher. - When finished, the following exception is printed to the log. org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:2369) at org.eclipse.swt.SWT.error(SWT.java:2299) at org.eclipse.swt.widgets.Widget.error(Widget.java:388) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:317) at org.eclipse.swt.widgets.Composite.layout(Composite.java:322) at org.eclipse.jface.dialogs.ProgressIndicator.done(ProgressIndicator.java:84) at org.eclipse.jface.action.StatusLine.done(StatusLine.java:290) at org.eclipse.jface.operation.AccumulatingProgressMonitor$2.run(AccumulatingProgressMonitor.java:129) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:102) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2164) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1881) at org.eclipse.swt.widgets.Display.release(Display.java:1928) at org.eclipse.swt.graphics.Device.dispose(Device.java:212) at org.eclipse.ui.internal.Workbench.run(Workbench.java:2029) at org.eclipse.pde.internal.junit.runtime.UITestApplication.run(UITestApplication.java:43) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:858) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:295) at org.eclipse.core.launcher.Main.run(Main.java:751) at org.eclipse.core.launcher.Main.main(Main.java:587)
bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
* argument false if a client wants to abort a cancel action.
	 */
	public void setCanceled(boolean b) {
		fIsCanceled = b;
		if (fCancelButton != null)
			fCancelButton.setEnabled(!b);
	}
	/**
	 * Controls whether the ProgressIndication provides UI for canceling
	 * a long running operation.
	 * If the ProgressIndication is currently visible calling this method may have
	 * a direct effect on the layout because it will make a cancel button visible. 
	 */
	public void setCancelEnabled(boolean enabled) {
		fCancelEnabled= enabled; 
		if (fProgressIsVisible && !fCancelButtonIsVisible && enabled) {
			showButton();
			layout();
		}
		if (fCancelButton != null && !fCancelButton.isDisposed())
			fCancelButton.setEnabled(enabled);
	}
	/**
	 * Sets the error message text to be displayed on the status line.
	 * The image on the status line is cleared.
	 * 
	 * @param message the error message, or <code>null</code> for no error message
	 */
	public void setErrorMessage(String message) {
		setErrorMessage(null, message);