Review Request JDK-8181443: Replace usages of jdk.internal.misc.Unsafe with MethodHandles.Lookup.defineClass

Alan Bateman Alan.Bateman at
Wed Oct 3 19:49:14 UTC 2018

On 03/10/2018 18:56, Mandy Chung wrote:
> This patch replaces java.lang.invoke and JFR use of
> jdk.internal.misc.Unsafe::defineClass with Lookup::defineClass.
> It also replaces dynamic proxy and reflection implementation to
> use the shared secret to invoke ClassLoader::defineClass.
> Webrev:
> With this change, JDK no longer uses Unsafe::defineClass.
> Any opinion in removing Unsafe::defineClass support?
> I ran jdk_core, jdk_jfr, tier1_runtime and tier1_compiler tests.
This change looks okay to me.

Nothing outside of java.base should be making direct use of classes in 
jdk.internal.misc so it's okay to refactor or remove classes or methods 
as needed. In this case, the internal defineClass is an attractive 
nuisance as there may be libraries tempted to hack into it. So I think 
it should be removed at some point.


More information about the core-libs-dev mailing list