Review Request: JDK-8235521: Replacement API for Unsafe::ensureClassInitialized
Mandy Chung
mandy.chung at oracle.com
Wed Jun 3 23:16:19 UTC 2020
This proposes a new `Lookup::ensureClassInitialized` API as a replacement
for `sun.misc.Unsafe::ensureClassInitialized`.The Lookup object must have
the access to the given class being initialized.
CSR: https://bugs.openjdk.java.net/browse/JDK-8245871
webrev:
http://cr.openjdk.java.net/~mchung/jdk15/webrevs/8235521/webrev.01/
This patch converts the JDK use of
`jdk.internal.misc.Unsafe::ensureClassInitialized` to
call this new API where appropriate. `Unsafe::ensureClassInitialized`
remains for java.lang.invoke.* internal implementation use.
A framework can use `Lookup::privateLookupIn` to access a class in
another module if the module authorizes it by opening the packages for
it to access. Or a user can produce a less privileged lookup by
Lookup::dropLookupMode and pass it to the framework.
`Class::ensureInitialized` was considered as an alternative. The
downside for this option is that it would be caller sensitive in order
to ensure the caller has the proper access to this class. And it may
not work for frameworks which have no access to user classes. It would
have to fallback toClass::forName` limited solution.
Thanks
Mandy
More information about the core-libs-dev
mailing list