Bug 18936 Assertion failed in MonoReconciler thread
Build F1 I just noticed the following exception in the debugger when I was launching a runtime WSADIE workspace. It looks like the MonoReconciler is running before the Display has been initialized. The assertion which failed was: Display display = Display.getCurrent(); Assert.isNotNull(display); -------------------------------------------------------------------- Thread [org.eclipse.jface.text.reconciler.MonoReconciler] (Suspended (exception org.eclipse.jface.util.Assert$AssertionFailedException)) org.eclipse.jface.util.Assert.isNotNull(java.lang.Object, java.lang.String) line: 133 org.eclipse.jface.util.Assert.isNotNull(java.lang.Object) line: 110 org.eclipse.jface.resource.ImageRegistry.<init>() line: 50 org.eclipse.jdt.internal.ui.JavaPluginImages.<clinit>() line: 41 java.lang.Class.initializeImpl() line: not available [native method] java.lang.Class.initialize() line: 307 org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$ ProblemAnnotation.<init>(org.eclipse.jdt.core.compiler.IProblem) line: 125 org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$ CompilationUnitAnnotationModel.endReporting() line: 402 org.eclipse.jdt.internal.core.WorkingCopy.reconcile(boolean, org.eclipse.core.runtime.IProgressMonitor) line: 395 org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (boolean) line: 71 org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialRe concile() line: 120 org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess() line: 95 org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.r un() line: 134
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/CompilationUnitDocumentProvider.java
IAnnotationModel m= createCompilationUnitAnnotationModel(input);
				IProblemRequestor r= m instanceof IProblemRequestor ? (IProblemRequestor) m : null;
				ICompilationUnit c= (ICompilationUnit) original.getSharedWorkingCopy(monitor, fBufferFactory, r);
				
				DocumentAdapter a= null;
				try {
					a= (DocumentAdapter) c.getBuffer();
				} catch (ClassCastException x) {
					IStatus status= new Status(IStatus.ERROR, JavaUI.ID_PLUGIN, JavaStatusConstants.TEMPLATE_IO_EXCEPTION, "Shared working copy has wrong buffer", x); 
					throw new CoreException(status);
				}
				
				_FileSynchronizer f= new _FileSynchronizer(input); 
				f.install();
				
				CompilationUnitInfo info= new CompilationUnitInfo(a.getDocument(), m, f, c);
				info.setModificationStamp(computeModificationStamp(input.getFile()));
				info.fStatus= a.getStatus();
				
				if (r instanceof IProblemRequestorExtension) {
					IProblemRequestorExtension extension= (IProblemRequestorExtension) r;
					extension.setIsActive(isHandlingTemporaryProblems());
				}
				m.addAnnotationModelListener(fGlobalAnnotationModelListener);
				
				return info;
				
			} catch (JavaModelException x) {
				throw new CoreException(x.getStatus());