if (this != fCurrentJob) {
if (monitor.isCanceled()) { return Status.CANCEL_STATUS; } calculateASTandInform(selection, monitor); if (monitor.isCanceled()) { return Status.CANCEL_STATUS; } else {
				public IStatus run(IProgressMonitor monitor) {					synchronized (PartListenerGroup.this) {						if (this != fCurrentJob) {							return Status.OK_STATUS;						}						calculateASTandInform(selection);						return Status.OK_STATUS;					}				}