JDK support for VM to read classes from modules in a module library
Mandy Chung
mandy.chung at oracle.com
Wed May 16 11:44:02 PDT 2012
On 5/16/2012 10:42 AM, Alan Bateman wrote:
> On 05/05/2012 07:38, Mandy Chung wrote:
>> :
>> You can also look at all changes together in this webrev:
>>
>> http://cr.openjdk.java.net/~mchung/jigsaw/webrevs/module-class-loading/webrev-all/
>>
> I've gone through the changes in the combined webrev, except for
> jigsaw.c where I only skimmed it because it's tied to the current
> configuration and so will change.
>
> I think the native interface looks fine, the only minor comment is
> that I'd probably use typedef struct module.
Yes, I should use typedef.
>
> Of the Class.forName usages that have changed then one that didn't
> look right is Properties where the workaround is to use the loader for
> the base module to load XMLUtils. Given that XMLUtil is currently in
> the jaxp module (and I know this isn't quite right either as JAXP is a
> standalone technology etc.) then I would think that the Properties
> code will need to do a Class.forName on an exported javax.xml type and
> use that loader (or alternative use jdk.jaxp).
>
We should change Class.forName to look for "javax.xml" type instead of
"sun.util.xml.XMLUtils" since XMLUtils will be moved out from jaxp
module as JAXP is a standalone technology.
The workaround is also related to that Class.forName fails to find a
class with a null loader (jdk.base requires jdk.jaxp.internal that
exports sun.util.xml) that I leave it as an open issue to be
investigated. Are you ok if I push this patch as it is and follow this
as a separate patch (probably together with moving out XMLUtils from
jdk.jaxp)?
> In ServiceLoader you've changed the comment at L515 to "caller's class
> loader" but it should be "the caller's caller's class loader".
>
Would it be better to say "class loader of the caller of
ServiceLoader.load* method"?
> I didn't quite get why src/share/native/java/lang/System.c was
> changed, was this for debugging?
>
Improve the diagnosibilty. Change to the VM initialization sequence is
hard to diagnose. I ran into a bug of mine that causes reading of
system properties while it's being initialized. The change was to
improve the diagnostic message and the system initialization is evolving
during jigsaw development and this might be useful. BTW, the
InternalError is only thrown in jigsaw/jigsaw. At some point, we will
port this to jdk8 if it's helpful.
> Otherwise I look forward to see this in, along with Karen's patch.
>
Thank you.
Mandy
More information about the jigsaw-dev
mailing list