Bug 230360 [JFace] FontRegistry does not play nicely with non-UI threads
This method does: ... Display current = Display.getCurrent(); if (current == null) { Shell shell = new Shell(); } This code will _always_ fail because Shell will execute if (!display.isValidThread ()) Which is always TRUE because "current" was null.
bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontRegistry.java
* @param location the name of the resource bundle
     * @param loader the ClassLoader to use to find the resource bundle
     * @exception MissingResourceException if the resource bundle cannot be found
     * @since 2.1
     */
    public FontRegistry(String location, ClassLoader loader)
            throws MissingResourceException {
        Display display = Display.getCurrent();
        Assert.isNotNull(display);
        
        
        readResourceBundle(location);
        cleanOnDisplayDisposal = true;
        hookDisplayDispose(display);
    }
    /**
     * Load the FontRegistry using the ClassLoader from the PlatformUI
     * plug-in
     * @param location the location to read the resource bundle from
     * @throws MissingResourceException Thrown if a resource is missing
     */
    public FontRegistry(String location) throws MissingResourceException {
        
        
        this(location, null);
    }
    /**
     * Read the resource bundle at location. Look for a file with the
     * extension _os_ws first, then _os then just the name.
     * @param location - String - the location of the file.