RFR(S): 8075253: Multiversion JAR feature: CDS does not support MV-JARs

Coleen Phillimore coleen.phillimore at oracle.com
Fri Mar 25 13:42:31 UTC 2016


Hi Calvin,
I didn't really review this but could you add a // INCLUDE_CDS on the 
#endif in this code.

http://cr.openjdk.java.net/~ccheung/8075253/webrev.01/src/share/vm/classfile/classLoader.cpp.udiff.html

Thanks,
Coleen

On 3/24/16 8:40 PM, Calvin Cheung wrote:
> Hi Jiangli,
>
> I agreed with both of your comments.
>
> On 3/23/16, 4:24 PM, Jiangli Zhou wrote:
>> Hi Calvin,
>>
>> I have two comments below.
>>
>> - I’d suggest putting the new block of code (added in open_stream()) 
>> in a separate function. The new function should be defined for CDS_ONLY.
>>
>> - In the bug report, it is suggested that the search for versioned 
>> class stops at 8. The changes in the webrev search all versions down 
>> to 6. Could you please verify what the spec says. The VM behavior 
>> should be the same a the JDK library code.
> I've checked that the base version is set to 8 in java.util.jar.JarFile.
>
> Here's an updated webrev: 
> http://cr.openjdk.java.net/~ccheung/8075253/webrev.01/
>
> thanks,
> Calvin
>
>>
>> Thanks,
>> Jiangli
>>
>>> On Mar 18, 2016, at 1:51 PM, Calvin 
>>> Cheung<calvin.cheung at oracle.com>  wrote:
>>>
>>>
>>> This fix was reviewed in Aug 2015[1] though most of the review 
>>> comments was via internal mailing list. Recently, the JEP 238 
>>> (Multiple-Release jar files) has been checked into jdk9. So it is 
>>> time to make the corresponding changes in hotspot.
>>>
>>> JBS: bug: https://bugs.openjdk.java.net/browse/JDK-8075253
>>>       (unfortunately the bug was marked as "confidential")
>>>
>>> webrev: http://cr.openjdk.java.net/~ccheung/8075253/webrev.00/
>>>
>>> Some adjustments need to be made due to:
>>> - attribute name in the jar manifest has been changed to 
>>> "Multi-release";
>>> - system property has been changed to 
>>> jdk.util.jar.enableMultiRelease and it has value of "true", "force" 
>>> or "false".
>>>
>>> The diff between this patch and the reviewed patch is as follows:
>>>
>>> 11c11
>>> <  +    const char* multi_ver = 
>>> Arguments::get_property("jdk.util.jar.enableMultiRelease");
>>> ---
>>>> +    const char* multi_ver = 
>>>> Arguments::get_property("jdk.util.jar.multiversion");
>>> 14c14
>>> <  +                         strcmp(multi_ver, "true") == 0 ||
>>> ---
>>>> + strcmp(multi_ver, "enable") == 0 ||
>>> 64c64
>>> <  @@ -296,6 +345,17 @@
>>> ---
>>>> @@ -272,6 +321,17 @@
>>> 72c72
>>> <  +    if (strstr(buffer, "Multi-Release: true") != NULL) {
>>> ---
>>>> +    if (strstr(buffer, "Multiversion: true") != NULL) {
>>> thanks,
>>> Calvin
>>>
>>> [1]: 
>>> http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2015-August/015589.html



More information about the hotspot-runtime-dev mailing list