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
layout.horizontalSpacing = 0;
		layout.verticalSpacing = 0;
		layout.marginHeight = 0;
		layout.marginWidth = 0;
		fProgressBarComposite.setLayout(layout);
		fProgressBar= new ProgressIndicator(fProgressBarComposite);
		fProgressBar.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
		
		fStopButtonCursor= new Cursor(getDisplay(), SWT.CURSOR_ARROW);
	}
	/**
	 * Notifies that the main task is beginning.
	 * 
	 * @param name the name (or description) of the main task
	 * @param totalWork the total number of work units into which
	 * the main task is been subdivided. If the value is 0 or UNKNOWN the 
	 * implemenation is free to indicate progress in a way which doesn't 
	 * require the total number of work units in advance. In general users 
	 * should use the UNKNOWN value if they don't know the total amount of
	 * work units. 
	 */
	public void beginTask(String name, int totalWork) {
		final long timestamp = System.currentTimeMillis();
		fStartTime = timestamp;
		final boolean animated = (totalWork == UNKNOWN || totalWork == 0);
		
		
		Runnable timer = new Runnable() {
			public void run() {
				StatusLine.this.startTask(timestamp, animated);