Bug 28400 JavaEditorPreferencePage and JavaColorManager leak Colors
20021216 everytime you do this: 1. open java editor pref page 2. close the pref page you end up having allocated and not disposed 8 colors 1 is allocated like this at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createColor(JavaEditorPreferencePage.java:560) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.initializeViewerColors(JavaEditorPreferencePage.java:534) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createPreviewer(JavaEditorPreferencePage.java:493) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createSyntaxPage(JavaEditorPreferencePage.java:433) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createContents(JavaEditorPreferencePage.java:942) at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:209) and the other 7 are allocated like this: at org.eclipse.jdt.internal.ui.text.JavaColorManager.getColor(JavaColorManager.java:62) at org.eclipse.jdt.internal.ui.text.JavaColorManager.getColor(JavaColorManager.java:85) at org.eclipse.jdt.internal.ui.text.AbstractJavaScanner.addToken(AbstractJavaScanner.java:90) at org.eclipse.jdt.internal.ui.text.AbstractJavaScanner.initialize(AbstractJavaScanner.java:75) at org.eclipse.jdt.internal.ui.text.java.JavaCodeScanner.<init>(JavaCodeScanner.java:126) at org.eclipse.jdt.ui.text.JavaTextTools.<init>(JavaTextTools.java:80) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createPreviewer(JavaEditorPreferencePage.java:486) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createSyntaxPage(JavaEditorPreferencePage.java:433) at org.eclipse.jdt.internal.ui.preferences.JavaEditorPreferencePage.createContents(JavaEditorPreferencePage.java:942) at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:209)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/text/JavaTextTools.java
package org.eclipse.jdt.ui.text;
/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.IDocumentPartitioner;
import org.eclipse.jface.text.rules.DefaultPartitioner;
import org.eclipse.jface.text.rules.IPartitionTokenScanner;
import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jdt.internal.ui.text.FastJavaPartitionScanner;
import org.eclipse.jdt.internal.ui.text.JavaColorManager;
import org.eclipse.jdt.internal.ui.text.JavaPartitionScanner;
import org.eclipse.jdt.internal.ui.text.SingleTokenJavaScanner;
import org.eclipse.jdt.internal.ui.text.java.JavaCodeScanner;
import org.eclipse.jdt.internal.ui.text.javadoc.JavaDocScanner;
/**
 * Tools required to configure a Java text viewer. 
 * The color manager and all scanner exist only one time, i.e.
 * the same instances are returned to all clients. Thus, clients
 * share those tools.
 * <p>
 * This class may be instantiated; it is not intended to be subclassed.
 * </p>
 */
public class JavaTextTools {