Round #2: RFR: 8049365 - Update JDI and JDWP for modules

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Fri Jan 22 03:34:46 UTC 2016


On 1/21/16 04:51, Alan Bateman wrote:
> On 20/01/2016 22:35, serguei.spitsyn at oracle.com wrote:
>> :
>>
>> Jdk webrev:
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2016/jdk/8049365-Jigsaw-jdk.2/
>>
>> Hotspot webrev:
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2016/hotspot/8049365-Jigsaw-hs.2/
>>
>>
> jvmti.xml - the module catagory has since="9" but the JVM TI spec 
> version rev's to 1.3.2. I started a thread a few weeks ago on whether 
> JNI and JVM TI should move to major version 9 and just track the Java 
> SE version going forward. I don't think we have closure on that 
> discussion yet but for now then I suggest we move to JVMTI_VERSION_9 
> on the assumption that this is the way forward.

Ok
I saw the discussion but have no strong opinion yet.
Changing to JVMTI_VERSION_9 will make it more consistent though.


>
> The GetAllModules implementation is okay for now and I believe Lois 
> will replace JvmtiModuleClosure once your changes are in and she gets 
> time to replace it.

I hope so.


>
> Now to the jdk repo ...
>
> We seem to have an issue with the generated jvmti.h generating a GPL 
> copyright header. This means that copying jvmti.h into the jdk repo 
> will change it from GPL + "Classpath" exception to pure GPL. I'll 
> create a separate bug for this, this seems to be technical debt that 
> we have a copy of jvmti.h in the jdk repo but fixing that issue means 
> we need a jvmti.h with the right copyright because that is what goes 
> into the JDK include directory.

I could easily fix it now but it is Ok to file a separate bug.


>
> jdi.ReferenceType - I didn't generate the javadoc with your patch but 
> it looks like the "Not all target ..." note will end up in the @return 
> tag and I assume should move up. There is also a stray <UL> after the 
> @throws.

Ok

>
> jdi.VirtualMachine - this has the same issue with the "Not all target 
> ..." note. In the canGetModuleInfo() method then I assume the @see 
> should be moved to the end of the class description.

Ok

>
> Can you check allModules in VirtualMachineImpl.c as it doesn't look 
> quite right when GetAllModules fails, is there a return missing as 
> otherwise it will write the module count and attempt to deallocate NULL.

Will check.

>
> @jdk.Exported has been removed in JDK 9 and that removal has got to 
> jake. I assume your forest is a bit behind.

Nice catch.
Will pull an update.


>
> jdi.ModuleReference
> - as this code is new then it would be good to use {@code  ..} instead 
> of <code></code>.
> - I don't think name, classLoader or canRead can throw UOE so this 
> exception can be removed from the javadoc.
> - the class description reads "A module that currently exists in the 
> target VM". Looking at the other JDI classes then it might be more 
> consistent to use "A module in the target VM".

Ok


>
> tools.jdi.ModuleReferenceImpl
> - if change the fields to volatile then we can avoid these methods 
> needing to be synchronized.
> - a minor nit is that it would be good to avoid overly long lines as 
> it's a pain to have v. long lines when doing side-by-side diffs.

Ok

>
> tools.jdi.VirtualMachineImpl
> - can modulesByID be Map<Long, ModuleReference>, I can't quite tell 
> why the value needs to be the impl type.
> - It looks like vmMajorVersion will return 0 when the target VM is JDK 
> 8 or older, is that right? I guess that is okay because we only care 
> about >= 9 but we will need to look at this closely.

Will check.

>
> As per previous mails then I think we'll need additional tests in this 
> area. It would be good to create another issue in JIRA to track that work.

Agreed.
Will provide an update in the next review round.


Thanks,
Serguei
>
> -Alan



More information about the jigsaw-dev mailing list