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

Calvin Cheung calvin.cheung at oracle.com
Thu Mar 31 05:37:45 UTC 2016


Yumin,

Thanks for your review.

Calvin

On 3/30/16, 6:43 PM, yumin qi wrote:
> It looks good to me. (I still not a 'R'eviewer).
>
> Thanks
> Yumin
>
> On Thu, Mar 31, 2016 at 8:07 AM, Calvin Cheung 
> <calvin.cheung at oracle.com <mailto:calvin.cheung at oracle.com>> wrote:
>
>     Hi,
>
>     I needed to update the webrev to handle the -Xbootclasspath/a.
>     To be consistent with non-CDS case, the versioned entries in a
>     multi-release jar will be ignored if the jar is found in the
>     -Xbootclasspath/a.
>     Summary of changes:
>     - added a bool _is_boot_entry to the ClassPathZipEntry;
>     - added a bool parameter to the functions
>     (create_class_path_entry, create_class_path_zip_entry, etc.) which
>     creates a ClassPathZipEntry;
>     - open_versioned_entry and is_multiple_versioned are CDS only
>     functions.
>
>     webrev: http://cr.openjdk.java.net/~ccheung/8075253/webrev.02/
>     <http://cr.openjdk.java.net/%7Eccheung/8075253/webrev.02/>
>
>     Testing:
>         JPRT
>         RBT tests on hotspot_runtime
>
>     thanks,
>     Calvin
>
>
>     On 3/25/16, 6:42 AM, Coleen Phillimore wrote:
>
>
>         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
>         <http://cr.openjdk.java.net/%7Eccheung/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/
>             <http://cr.openjdk.java.net/%7Eccheung/8075253/webrev.01/>
>
>             thanks,
>             Calvin
>
>
>                 Thanks,
>                 Jiangli
>
>                     On Mar 18, 2016, at 1:51 PM, Calvin
>                     Cheung<calvin.cheung at oracle.com
>                     <mailto: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/
>                     <http://cr.openjdk.java.net/%7Eccheung/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