CSR review for 8238358: Implementation of JEP 371: Hidden Classes

Mandy Chung mandy.chung at oracle.com
Mon Mar 9 21:00:57 UTC 2020


Please review the CSR proposed for JEP 371 Hidden Classes [1].

CSR:
   https://bugs.openjdk.java.net/browse/JDK-8238359

javadoc/specdiff:
http://cr.openjdk.java.net/~mchung/valhalla/webrevs/hidden-classes/api/
http://cr.openjdk.java.net/~mchung/valhalla/webrevs/hidden-classes/specdiff/

JVMS 5.4.4 change:
http://cr.openjdk.java.net/~mchung/valhalla/webrevs/hidden-classes/Draft-JVMS-HiddenClasses.pdf

A brief summary of the changes:

1. A new Lookup::defineHiddenClass method is the API to create a hidden 
class.
2. A new Lookup.ClassOption enum class defines NESTMATE and WEAK option that
    can be specified when creating a hidden class.
3. A new Class::isHiddenClass method tests if a class is a hidden class.
4. Field::setXXX method will throw IAE on a final field of a hidden class
    regardless of the value of the accessible flag.
5. Class::getNestMembers is updated not to throw any exception when it fails
    to validate the nest membership.  Instead this method will return all
    members that are listed in `NestMembers` attribute if present and
    determined to have the same nest host as this class.

We uncovered a bug in Lookup::defineClass spec throws LinkageError and 
intends
to have the newly created class linked.  However, the implementation in 14
does not link the class.  A separate CSR proposes to update the 
implementation
to match the spec - please also review:
    https://bugs.openjdk.java.net/browse/JDK-8240338

This is tracked as a separate JBS issue JDK-8238195 that is fixed in 
this patch.

The code review will be posted separately.

Thanks
Mandy
[1] https://openjdk.java.net/jeps/371
[2] JDK-8230502 Add support in JVM TI and JDI for hidden classes
[3] JDK-8219607 Add support in Graal and AOT for hidden and weak class
[4] 
https://mail.openjdk.java.net/pipermail/valhalla-dev/2020-March/006872.html



More information about the valhalla-dev mailing list