Bug 68586 [implementation] Reconciling should be more robust
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/CompilationUnitDocumentProvider.java
reportProblems(state.fReportedProblems);
			}
			
			/**
			 * Signals the end of problem reporting.
			 */
			private void reportProblems(List reportedProblems) {
				if (fProgressMonitor != null && fProgressMonitor.isCanceled())
					return;
					
				boolean temporaryProblemsChanged= false;
				
				synchronized (getLockObject()) {
					
					boolean isCanceled= false;
					fPreviouslyOverlaid= fCurrentlyOverlaid;
					fCurrentlyOverlaid= new ArrayList();
					if (fGeneratedAnnotations.size() > 0) {
						temporaryProblemsChanged= true;	
						removeAnnotations(fGeneratedAnnotations, false, true);
						fGeneratedAnnotations.clear();
					}
					
					if (reportedProblems != null && reportedProblems.size() > 0) {
												
						Iterator e= reportedProblems.iterator();
						while (e.hasNext()) {
							
							if (fProgressMonitor != null && fProgressMonitor.isCanceled()) {
								isCanceled= true;