Bug 38547 [Preferences] Changing preferences ignored after "Restore defaults" pressed.
e.g. 1) Go to Workbench->Preferences->Debug->Console 2) Change the colour of console output (you can show the console and see the colour change) and press "Apply" <don't leave the dialog> 3) Press "Restore Defaults" and "Apply" and the colour will be reset to default in the console 4) Now change the colour to something else and press "Apply" ... NO Change to the console colour. The problem can be seen in the PropertyChangeEvent that always contains the default values because once the "Restore Defaults" flag has been set it is never reset and therefore the "Apply" always sends the defaults.
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java
protected abstract void createFieldEditors();
/**	
 * The field editor preference page implementation of an <code>IDialogPage</code>
 * method disposes of this page's controls and images.
 * Subclasses may override to release their own allocated SWT
 * resources, but must call <code>super.dispose</code>.
 */
public void dispose() {
	super.dispose();
	if (fields != null) {
		Iterator e = fields.iterator();
		while (e.hasNext()) {
			FieldEditor pe = (FieldEditor) e.next();
			pe.setPreferencePage(null);
			pe.setPropertyChangeListener(null);
			pe.setPreferenceStore(null);
		}
	}
}
/**
 * Returns a parent composite for a field editor.
 * <p>
 * This value must not be cached since a new parent
 * may be created each time this method called. Thus
 * this method must be called each time a field editor
 * is constructed.
 * </p>
 *
 * @return a parent
 */