--- old/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java 2018-02-11 21:03:09.692728050 -0500 +++ new/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java 2018-02-11 21:03:08.220643284 -0500 @@ -351,14 +351,11 @@ * @param class2 another class * @return whether they are identical or nested together */ - public static boolean areNestMates(Class class1, Class class2) { + public static boolean isSamePackageMember(Class class1, Class class2) { if (class1 == class2) return true; if (!isSamePackage(class1, class2)) return false; - if (Reflection.areNestMates(class1, class2)) - return true; - // Could be pre-nestmate nested types if (getOutermostEnclosingClass(class1) != getOutermostEnclosingClass(class2)) return false; return true; --- old/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 2018-02-11 21:03:13.980974974 -0500 +++ new/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 2018-02-11 21:03:12.508890209 -0500 @@ -835,7 +835,7 @@ } // Allow nestmate lookups to be created without special privilege: if ((newModes & PRIVATE) != 0 - && !VerifyAccess.areNestMates(this.lookupClass, requestedLookupClass)) { + && !VerifyAccess.isSamePackageMember(this.lookupClass, requestedLookupClass)) { newModes &= ~(PRIVATE|PROTECTED); } if ((newModes & PUBLIC) != 0