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
if (fHasRun)
					return;
				if (composite.isDisposed())
					return;
				String property= event.getProperty();
				if (DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR.equals(property)
						|| DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE.equals(property)) {
					combinedStore.removePropertyChangeListener(this);
					fHasRun= true;
					link.dispose();
					createMessage(composite);
					composite.redraw();
					composite.layout();
				}
			}
		});
	}
	
	private String getIndentChar() {
		boolean useSpace= JavaCore.SPACE.equals(JavaPlugin.getDefault().getCombinedPreferenceStore().getString(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR));
		if (useSpace)
			return PreferencesMessages.getString("SmartTypingConfigurationBlock.tabs.message.spaces"); 
		else
			return PreferencesMessages.getString("SmartTypingConfigurationBlock.tabs.message.tabs"); 
	}
	private int getIndentSize() {
		return JavaPlugin.getDefault().getCombinedPreferenceStore().getInt(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE);
	}
}