Bug 18510 ClassFileEditor leaks
In the 0530 build the leaks with the .java editor appear to have been fixed. The scenario I was using before: Create a .java file, close it. In memory profiler do a global GC and mark objects Open the same .java file, close it Does not leave tons of objects around anymore. However, if you import a binary plugin (I did this by importing all plugins) and open the .class file there is a significant leak. To recreate: Select a .class file (I used junit.awtui.AboutDialog.cass) from the junit.jar Open/Close it. Do a global GC, snapshot Open/Close the .class editor Do a global GC
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/ClassFileEditor.java
if (input != null && input.equals(getEditorInput())) {	
			ISourceViewer viewer= getSourceViewer();
			if (viewer != null) {
				StyledText textWidget= viewer.getTextWidget();
				if (textWidget != null && !textWidget.isDisposed()) {
					textWidget.getDisplay().asyncExec(new Runnable() {
						public void run() {
							setInput(input);
						}
					});
				}
			}						
		}
	}
	
	/*
	 * @see JavaEditor#createJavaSourceViewer(Composite, IVerticalRuler, int)
	 */
	protected ISourceViewer createJavaSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
		
		return new SourceViewer(parent, ruler, styles) {
			public boolean requestWidgetToken(IWidgetTokenKeeper requester) {
				IHelp help= WorkbenchHelp.getHelpSupport();
				if (help != null && help.isContextHelpDisplayed())
					return false;
				return super.requestWidgetToken(requester);
			}
		};	
	}
}