Bug 248908 [Forms] BusyIndicator deadlocks UI thread
Build ID: 3.4.0 Steps To Reproduce: 1. Create a Form editor 2. Listen for PROP_DIRTY events 3. when form is dirty show the BusyIndicator by calling form.setBusy(true) 3. then when editor is not dirty anymore disable the BusyIndicator by calling form.setBusy(false) 4. the application will lock, UI thread is waiting on th synchronized setBusy() while the BusyIndicator thread is also waiting on syncExec(). More information: I have been debugging my RCP application during a whole day to find why the application was freezing. I like to have the BusyIndicator shown when the editor is dirty, and when i save it, the UI locked. Disabling the BusyIndicator solved my problem, i took time to test the BusyIndicator because i thought the problem can not come from the Eclipse Framework itself, but it seems it's a bug ! Thanks.
bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
public boolean forceFocus() {
		return false;
	}
	/**
	 * Creates a thread to animate the image.
	 */
	protected synchronized void createBusyThread() {
		if (busyThread != null)
			return;
		Rectangle bounds = getImage(0).getBounds();
		Display display = getDisplay();
		Image offScreenImage = new Image(display, bounds.width, bounds.height);
		GC offScreenImageGC = new GC(offScreenImage);
		busyThread = new BusyThread(bounds, display, offScreenImageGC, offScreenImage);
		busyThread.setPriority(Thread.NORM_PRIORITY + 2);
		busyThread.setDaemon(true);
		busyThread.start();
	}
	public void dispose() {
		if (busyThread != null) {
			busyThread.setStop(true);
			busyThread = null;
		}
		super.dispose();
	}
	/**
	 * Return the image or <code>null</code>.
	 */
	public Image getImage() {
		return image;