Bug 68586 [implementation] Reconciling should be more robust
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/CompilationUnitDocumentProvider.java
private ThreadLocal fProblemRequestorState= new ThreadLocal();
			private int fStateCount= 0;
			
			private ICompilationUnit fCompilationUnit;
			private List fGeneratedAnnotations;
			private IProgressMonitor fProgressMonitor;
			private boolean fIsActive= false;
			private boolean fIsHandlingTemporaryProblems;	
			
			private ReverseMap fReverseMap= new ReverseMap();
			private List fPreviouslyOverlaid= null; 
			private List fCurrentlyOverlaid= new ArrayList();
			
			public CompilationUnitAnnotationModel(IResource resource) {
				super(resource);
			}
			
			public void setCompilationUnit(ICompilationUnit unit)  {
				fCompilationUnit= unit;
			}
			
			protected MarkerAnnotation createMarkerAnnotation(IMarker marker) {
				String markerType= MarkerUtilities.getMarkerType(marker);
				if (markerType != null && markerType.startsWith(JavaMarkerAnnotation.JAVA_MARKER_TYPE_PREFIX))
					return new JavaMarkerAnnotation(marker);
				return super.createMarkerAnnotation(marker);
			}
			
			/*
			 * @see org.eclipse.jface.text.source.AnnotationModel#createAnnotationModelEvent()