--- old/jdk/src/java.base/share/classes/jdk/internal/misc/SharedSecrets.java 2015-11-17 09:21:27.000000000 -0800 +++ new/jdk/src/java.base/share/classes/jdk/internal/misc/SharedSecrets.java 2015-11-17 09:21:27.000000000 -0800 @@ -45,6 +45,7 @@ private static final Unsafe unsafe = Unsafe.getUnsafe(); private static JavaUtilJarAccess javaUtilJarAccess; private static JavaLangAccess javaLangAccess; + private static JavaLangInvokeAccess javaLangInvokeAccess; private static JavaLangRefAccess javaLangRefAccess; private static JavaIOAccess javaIOAccess; private static JavaNetAccess javaNetAccess; @@ -80,6 +81,20 @@ return javaLangAccess; } + public static void setJavaLangInvokeAccess(JavaLangInvokeAccess jlia) { + javaLangInvokeAccess = jlia; + } + + public static JavaLangInvokeAccess getJavaLangInvokeAccess() { + if (javaLangInvokeAccess == null) { + try { + Class c = Class.forName("java.lang.invoke.MemberName"); + unsafe.ensureClassInitialized(c); + } catch (ClassNotFoundException e) {}; + } + return javaLangInvokeAccess; + } + public static void setJavaLangRefAccess(JavaLangRefAccess jlra) { javaLangRefAccess = jlra; }