fJobPresenter.setCanceled(progressMonitor.isCanceled());  if (ast == null || fJobPresenter.isCanceled()) return;  ASTNode[] subtrees= getAffectedSubtrees(ast); if (subtrees.length == 0) return;  startReconcilingPositions();  if (!fJobPresenter.isCanceled()) reconcilePositions(subtrees);  TextPresentation textPresentation= null; if (!fJobPresenter.isCanceled()) textPresentation= fJobPresenter.createPresentation(fAddedPositions, fRemovedPositions);  if (!fJobPresenter.isCanceled()) updatePresentation(textPresentation, fAddedPositions, fRemovedPositions);  stopReconcilingPositions();  fJobPresenter= null; fJobSemanticHighlightings= null; fJobHighlightings= null;
	public void reconciled(CompilationUnit ast, boolean forced, IProgressMonitor progressMonitor) {		fJobPresenter= fPresenter;		fJobSemanticHighlightings= fSemanticHighlightings;		fJobHighlightings= fHighlightings;		try {			if (fJobPresenter == null || fJobSemanticHighlightings == null || fJobHighlightings == null)				return;						fJobPresenter.setCanceled(progressMonitor.isCanceled());						if (ast == null || fJobPresenter.isCanceled())				return;						ASTNode[] subtrees= getAffectedSubtrees(ast);			if (subtrees.length == 0)				return;						startReconcilingPositions();						if (!fJobPresenter.isCanceled())				reconcilePositions(subtrees);						TextPresentation textPresentation= null;			if (!fJobPresenter.isCanceled())				textPresentation= fJobPresenter.createPresentation(fAddedPositions, fRemovedPositions);						if (!fJobPresenter.isCanceled())				updatePresentation(textPresentation, fAddedPositions, fRemovedPositions);						stopReconcilingPositions();					} finally {			fJobPresenter= null;			fJobSemanticHighlightings= null;			fJobHighlightings= null;		}	}