Bug 296822 NullProgressMonitor is not thread safe for expected usage
NullProgressMonitor.setCanceled and isCanceled access the cancelled field, but there's no synchronization. The expected use is that setCanceled is called from a thread other than the one doing the work, which polls isCanceled(), so this needs to be thread safe. Could either make these two methods synchronized or make the field volatile. Should check other progress monitor implementations too.
bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
private Cursor fStopButtonCursor;
	
	protected String fMessageText;
	
	protected Image fMessageImage;
	
	protected String fErrorText;
	
	protected Image fErrorImage;
	
	protected CLabel fMessageLabel;
	
	protected Composite fProgressBarComposite;
	
	protected ProgressIndicator fProgressBar;
	
	protected ToolBar fToolBar;
	
	protected ToolItem fCancelButton;
	
	protected static ImageDescriptor fgStopImage = ImageDescriptor
			.createFromFile(StatusLine.class, "images/stop.gif");
	static {
		JFaceResources.getImageRegistry().put(
				"org.eclipse.jface.parts.StatusLine.stopImage", fgStopImage);
	}
	/**
	 * Layout the contribution item controls on the status line.
	 */
	public class StatusLineLayout extends Layout {