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/dialogs/ProgressMonitorDialog.java
*/
	protected Label taskLabel;
	/**
	 * The label control for the subtask.
	 */
	protected Label subTaskLabel;
	/**
	 * The Cancel button control.
	 */
	protected Button cancel;
	/**
	 * Indicates whether the Cancel button is to be shown.
	 */
	protected boolean operationCancelableState = false;
	/**
	 * Indicates whether the Cancel button is to be enabled.
	 */
	protected boolean enableCancelButton;
	/**
	 * The progress monitor.
	 */
	private ProgressMonitor progressMonitor = new ProgressMonitor();
	/**
	 * The name of the current task (used by ProgressMonitor).
	 */
	private String task;
	/**
	 * The nesting depth of currently running runnables.
	 */
	private int nestingDepth;