markAsUnmodifiable(ast);
if (ast != null) markAsUnmodifiable(ast);
	private void reconcile() {		CompilationUnit ast= null;		try {			ICompilationUnit unit= fManager.getWorkingCopy(fEditor.getEditorInput());					if (unit != null) {				try {										/* fix for missing cancel flag communication */					IProblemRequestorExtension extension= getProblemRequestorExtension();					if (extension != null)						extension.setProgressMonitor(fProgressMonitor);										try {						// reconcile						synchronized (unit) {							if (fIsJavaReconcilingListener) {								ast= unit.reconcile(AST.LEVEL_2_0, true, null, fProgressMonitor);								markAsUnmodifiable(ast);							} else								unit.reconcile(0, true, null, fProgressMonitor);						}					} catch (OperationCanceledException ex) {						Assert.isTrue(fProgressMonitor == null || fProgressMonitor.isCanceled());						ast= null;					}										/* fix for missing cancel flag communication */					if (extension != null)						extension.setProgressMonitor(null);														} catch (JavaModelException x) {					// swallow exception				}			}		} finally {			// Always notify listeners, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=55969 for the final solution			try {				if (fIsJavaReconcilingListener)					fJavaReconcilingListener.reconciled(ast, fProgressMonitor != null && fProgressMonitor.isCanceled(), !fNotify);			} finally {				fNotify= true;			}		}	}