Bug 97264 [implementation][preferences] Preferences not stored correctly
build rc1 LinkedModeConfigurationBlock#performOk has the following code: Platform.getPreferencesService().getRootNode().node(EditorsUI.PLUGIN_ID).flush(); This is incorrect and the preferences will not actually be stored in this case. The first node under the root is the scope (instance, project, configuration, default) and then the plug-in id is next. If the intention is to store the settings in the instance scope, then you can do the following: Platform.getPreferencesService().getRootNode().node(InstanceScope.SCOPE).node(EditorsUI.PLUGIN_ID).flush(); or equivalently: new InstanceScope().getNode(EditorsUI.PLUGIN_ID).flush();
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/LinkedModeConfigurationBlock.java
/**
     * Initializes the computation of horizontal and vertical dialog units based
     * on the size of current font.
     * <p>
     * This method must be called before any of the dialog unit based conversion
     * methods are called.
     * </p>
     * 
     * @param testControl
     *            a control from which to obtain the current font
     */
    protected void initializeDialogUnits(Control testControl) {
        
        GC gc = new GC(testControl);
        gc.setFont(JFaceResources.getDialogFont());
        fFontMetrics = gc.getFontMetrics();
        gc.dispose();
    }
    
	private void handleAnnotationListSelection() {
		ListItem item= getSelectedItem();
		
		RGB rgb= PreferenceConverter.getColor(getPreferenceStore(), item.colorKey);
		fAnnotationForegroundColorEditor.setColorValue(rgb);
		
		boolean highlight= item.highlightKey == null ? false : getPreferenceStore().getBoolean(item.highlightKey);
		boolean showInText = item.textKey == null ? false : getPreferenceStore().getBoolean(item.textKey);
		fShowInTextCheckBox.setSelection(showInText || highlight);
		
		updateDecorationViewer(item, true);