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
}
    /**
     * Returns the default value for the color-valued preference
     * with the given name in the given preference store.
     * Returns the default-default value (<code>COLOR_DEFAULT_DEFAULT</code>) 
     * is no default preference with the given name, or if the default 
     * value cannot be treated as a color.
     *
     * @param store the preference store
     * @param name the name of the preference
     * @return the default value of the preference
     */
    public static RGB getDefaultColor(IPreferenceStore store, String name) {
        return basicGetColor(store.getDefaultString(name));
    }
    /**
     * Returns the default value array for the font-valued preference
     * with the given name in the given preference store.
     * Returns the default-default value (<code>FONTDATA_ARRAY_DEFAULT_DEFAULT</code>) 
     * is no default preference with the given name, or if the default 
     * value cannot be treated as font data.
     *
     * @param store the preference store
     * @param name the name of the preference
     * @return the default value of the preference
     */
    public static FontData[] getDefaultFontDataArray(IPreferenceStore store,
            String name) {
        return basicGetFontData(store.getDefaultString(name));
    }