jigsaw now sync'ed with jdk8-b23

Mandy Chung mandy.chung at oracle.com
Wed Feb 1 11:47:37 PST 2012


On 2/1/2012 10:41 AM, Alan Bateman wrote:
> Actually I think you're right, we can take some of the SL changes to 
> get a bit further but we run into another issue with a Class.forName 
> usage in sun.font.FontManagerFactory. 

Thanks for getting the fix for it.   I missed this issue when testing 
the module views work.

Oh yeah, this is one of those in the jdk implementation that depends on 
the tradition class loading delegation model.  At some point, we'll look 
at all class-loader related usage.

> Here's the webrev the patch to get it going:
>
> http://cr.openjdk.java.net/~alanb/fmf-patch/webrev/

FontManagerFactory.java
    L78:  It's fine to call BootLoader.getSystemLoader() as a workaround 
for now.
    This assumes that the class is visible to the BootLoader and it works in
    the current prototype since jdk.desktop requires local 
jdk.base.internal.
    It'll fail if an alternate class specified through the property is in
    another module.  I think it would use the module loader loading this
    FontManagerFactory class.  I have a patch that adds the
    Class.getModuleClassLoader method but it's coupled with the legacy
    mode support.  I can modify this FontManagerFactory class in the legacy
    mode support work.

ServiceLoader.java
    L482, 515, 548: seems like it's time to add a convenient method to 
determine
    if it's in module mode or legacy mode. In the current prototype, 
BootLoader
    only gets created in module mode but it may also be created with the
    legacy mode support.   If it gets changed, this would be isolated in 
this
    single method. (sorry I should have added that convenient method in my
    last changeset).

    L483: if loader == null, should it use BootLoader.getSystemLoader() 
instead?

Mandy



More information about the jigsaw-dev mailing list