Bug 119875 [implementation] AFE when opening editor .java file from CVS Repositories view
I20051206-1200 + ZRH plugin export from 20051208_1013 AFE when opening editor .java file from CVS Repositories view: Error 2005-12-08 16:24:04.313 Unable to create editor ID org.eclipse.jdt.ui.CompilationUnitEditor: Assertion failed: org.eclipse.jface.text.Assert$AssertionFailedException: Assertion failed: at org.eclipse.jface.text.Assert.isTrue(Assert.java:189) at org.eclipse.jface.text.Assert.isTrue(Assert.java:174) at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:442) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.installOccurrencesFinder(JavaEditor.java:2940) at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.createPartControl(JavaEditor.java:2659) at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.createPartControl(CompilationUnitEditor.java:1731) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:598) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:374) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552) at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:213) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2383) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2316) at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2308) at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2294) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2289) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2266) at org.eclipse.team.internal.ccvs.ui.CVSUIPlugin.openEditor(CVSUIPlugin.java:690) at org.eclipse.team.internal.ccvs.ui.actions.OpenRemoteFileAction$1.run(OpenRemoteFileAction.java:73) at org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager.run(RepositoryManager.java:677) at org.eclipse.team.internal.ccvs.ui.actions.CVSAction$2.run(CVSAction.java:348) at org.eclipse.team.internal.ccvs.ui.actions.CVSAction$3.run(CVSAction.java:357) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.team.internal.ccvs.ui.actions.CVSAction.run(CVSAction.java:354) at org.eclipse.team.internal.ccvs.ui.actions.OpenRemoteFileAction.execute(OpenRemoteFileAction.java:68) at org.eclipse.team.internal.ccvs.ui.actions.CVSAction.run(CVSAction.java:118) at org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart.handleDoubleClick(RemoteViewPart.java:376) at org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart.access$1(RemoteViewPart.java:366) at org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart$8.doubleClick(RemoteViewPart.java:282) at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:720) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.runtime.Platform.run(Platform.java:785) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148) at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:718) at org.eclipse.jface.viewers.StructuredViewer.handleDoubleSelect(StructuredViewer.java:950) at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1057) at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:220) at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:217) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:276) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:906) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3241) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2861) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1763) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1727) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:396) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:167) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/ASTProvider.java
/*
	 * @see org.eclipse.jdt.internal.ui.text.java.IJavaReconcilingListener#reconciled(org.eclipse.jdt.core.dom.CompilationUnit)
	 */
	void reconciled(CompilationUnit ast, IJavaElement javaElement) {
		if (DEBUG)
			System.out.println(getThreadName() + " - " + DEBUG_PREFIX + "reconciled: " + toString(javaElement) + ", AST: " + toString(ast)); 
		synchronized (fReconcileLock) {
			fIsReconciling= false;
			if (javaElement == null || !javaElement.equals(fReconcilingJavaElement)) {
				if (DEBUG)
					System.out.println(getThreadName() + " - " + DEBUG_PREFIX + "  ignoring AST of out-dated editor"); 
				
				synchronized (fWaitLock) {
					fWaitLock.notifyAll();
				}
				return;
			}
			cache(ast, javaElement);
		}
	}
	private String getThreadName() {
		String name= Thread.currentThread().getName();
		if (name != null)
			return name;
		else
			return Thread.currentThread().toString();
	}
	
}