Bug 84269 [implementation] Leak: Java Editor preference page: listener in SmartTypingConfigurationBlock
N20050202-0010 The SmartTypingConfigurationBlock adds a property change listener to the JavaPlugin combined preference store. This listener is not removed --> results in leakage for each open close of the Java preference pages. Test case: Window>Preferences>Java>Editor For each open close the state associated with the SmartTypingConfigurationBlock is leaked.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/SmartTypingConfigurationBlock.java
label= PreferencesMessages.getString("JavaEditorPreferencePage.closeBrackets"); 
		addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS, INDENT);
		label= PreferencesMessages.getString("JavaEditorPreferencePage.closeBraces"); 
		addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACES, INDENT);
		label= PreferencesMessages.getString("JavaEditorPreferencePage.closeJavaDocs"); 
		master= addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_JAVADOCS, INDENT);
		label= PreferencesMessages.getString("JavaEditorPreferencePage.addJavaDocTags"); 
		slave= addCheckBox(composite, label, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, INDENT);
		createDependency(master, slave);
	}
	
	private void createMessage(final Composite composite) {
		 
		
		String before= PreferencesMessages.getString("SmartTypingConfigurationBlock.tabs.message.before"); 
		String linkText= PreferencesMessages.getString("SmartTypingConfigurationBlock.tabs.message.linktext"); 
		String linkTooltip= PreferencesMessages.getString("SmartTypingConfigurationBlock.tabs.message.linktooltip"); 
		String after= PreferencesMessages.getFormattedString("SmartTypingConfigurationBlock.tabs.message.after", new String[] {Integer.toString(getIndentSize()), getIndentChar()}); 
		
		final Control link= createLinkText(composite, new Object[] { before,
				new String[] { linkText, "org.eclipse.jdt.ui.preferences.CodeFormatterPreferencePage", linkTooltip }, 
				after, });
		GridData gd= new GridData(SWT.FILL, SWT.BEGINNING, true, false);
		gd.widthHint= 300; 
		link.setLayoutData(gd);
		
		final IPreferenceStore combinedStore= JavaPlugin.getDefault().getCombinedPreferenceStore();
		combinedStore.addPropertyChangeListener(new IPropertyChangeListener() {
			private boolean fHasRun= false;
			public void propertyChange(PropertyChangeEvent event) {