RFR (XS): 8032585: JSR292: IllegalAccessError when attempting to invoke protected method from different package
vladimir.x.ivanov at oracle.com
Mon Jan 27 16:05:32 UTC 2014
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,
More information about the core-libs-dev