Bug 88191 [Preferences] Temporary shell created in PreferenceConverter
org.eclipse.jface.preference.PreferenceConverter has this code to set its default font data: Shell shell = new Shell(); FONTDATA_ARRAY_DEFAULT_DEFAULT = shell.getFont().getFontData(); shell.dispose(); Rather than creating an extra Shell, is it not sufficient to use display.getSystemFont() ?
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceConverter.java
/**
     * Helper method to construct a color from the given string.
     * @param value the indentifier for the color
     * @return RGB
     */
    private static RGB basicGetColor(String value) {
        if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value))
            return COLOR_DEFAULT_DEFAULT;
        RGB color = StringConverter.asRGB(value, null);
        if (color == null)
            return COLOR_DEFAULT_DEFAULT;
        return color;
    }
    /**
     * Helper method to construct a <code>FontData</code> from the given string.
     * String is in the form FontData;FontData; in order that
     * multiple FontDatas can be defined.
     * @param value the identifier for the font
     * @return FontData[]
     * 
     * @since 3.0
     */
    public static FontData[] basicGetFontData(String value) {
        if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value))
            return FONTDATA_ARRAY_DEFAULT_DEFAULT;
        
        StringTokenizer tokenizer = new StringTokenizer(value, ENTRY_SEPARATOR);
        int numTokens = tokenizer.countTokens();
        FontData[] fontData = new FontData[numTokens];
        for (int i = 0; i < numTokens; i++) {