Bug 289599 [Preferences] PreferenceStore.setToDefault fires redundant PropertyChangeEvents
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.util.SafeRunnable;
/**
 * A concrete preference store implementation based on an internal
 * <code>java.util.Properties</code> object, with support for persisting the
 * non-default preference values to files or streams.
 * <p>
 * This class was not designed to be subclassed.
 * </p>
 * 
 * @see IPreferenceStore
 * @noextend This class is not intended to be subclassed by clients.
 */
public class PreferenceStore extends EventManager implements
		IPersistentPreferenceStore {
	/**
	 * The mapping from preference name to preference value (represented as
	 * strings).
	 */
	private Properties properties;
	/**
	 * The mapping from preference name to default preference value (represented
	 * as strings); <code>null</code> if none.
	 */
	private Properties defaultProperties;
	/**
	 * Indicates whether a value as been changed by <code>setToDefault</code>