RFR: 8220607 Draft JEP: Hidden Classes

Mandy Chung mandy.chung at oracle.com
Thu Dec 5 01:13:25 UTC 2019

Draft JEP:

The past discussion was tracked in JDK-8171335 [1] regarding dynamic 
nestmates and the replacement of Unsafe::defineAnonymousClass which 
consists of four separable features:
1. non-discoverable and cannot participate in symbolic resolution
2. lifecycle is independent of its defining class loader
3. private member access of the given host class
4. constant pool patching

The JEP proposes to support a new kind of classes: "hidden classes" that 
can optionally join as a member of a nest and/or can be weakly 
referenced by its defining class loader. It covers 1-3 above.   4 is 
separated from this JEP to give time to explore the class data support 
that may benefit to prototype with template classes.

javadoc and specdiff:

The current prototype is in the nestmates branch and all JDK use of 
Unsafe::defineAnonymousClass are replaced with hidden classes [3].

[1] https://bugs.openjdk.java.net/browse/JDK-8171335
[2] https://bugs.openjdk.java.net/browse/JDK-8230501

More information about the valhalla-dev mailing list