http://cr.openjdk.java.net/~vlivanov/8032585/webrev.00/ https://bugs.openjdk.java.net/browse/JDK-8032585
JSR292 access verification logic refuses method handle lookup access to methods which are defined on inaccessible classes. This is usually correct, but in the corner case of inheritance through a public class, it is wrong. 8029507 makes the JVM provide more correct information about the defining class of a looked-up method and this corrected information is causing the old and wrong checks to fail where they didn't fail before.
The fix is to relax the check: don't require the class where protected member is declared to be public. It is enough to check that defining class is a super class of the class lookup request comes from to ensure there are enough privileges to access protected member.
Testing: regression test, enumeration tests on access checks, jdk/test/java/lang/invoke, vm.mlvm.testlist
Thanks! Best regards, Vladimir Ivanov