Bug 66043 Java editor not released when window closed
build I20040607-0800 - new window - open a Java editor - close window - ASTProvider maintains a ref to the editor: GC Roots -> Object EditorPane #013d394d: Reverse Paths | +---org.eclipse.ui.internal.EditorPane (#013d394d) | +---pane of org.eclipse.ui.internal.EditorSite (#0154c573) | +---partSite of org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor (#0006b4ee) | +---fActiveEditor of org.eclipse.jdt.internal.ui.javaeditor.ASTProvider (#00eea6dc) | +---fASTProvider of org.eclipse.jdt.internal.ui.JavaPlugin (#019777af) | +---fgJavaPlugin of org.eclipse.jdt.internal.ui.JavaPlugin (#01c0a077)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/ASTProvider.java
fWorkbench.addWindowListener(fActivationListener);
		
		
		IWorkbenchWindow[] windows= fWorkbench.getWorkbenchWindows();
		for (int i= 0, length= windows.length; i < length; i++)
			windows[i].getPartService().addPartListener(fActivationListener);
	}
	
	private void activeJavaEditorChanged(IWorkbenchPart editor) {
		fActiveEditor= editor;
		IJavaElement javaElement= null;
		if (editor != null)
			javaElement= ((JavaEditor)editor).getInputJavaElement();
		
		if (DEBUG)
			System.out.println(DEBUG_PREFIX + "active editor is: " + toString(javaElement)); 
		synchronized (fReconcileLock) {
			if (fIsReconciling && !fReconcilingJavaElement.equals(javaElement)) {
				fIsReconciling= false;
				fReconcilingJavaElement= null;
			}
		}
		cache(null, javaElement);
	}
	/**
	 * Returns whether the given compilation unit AST is
	 * cached by this AST provided.
	 * 
	 * @param ast the compilation unit AST