On Fri, 28 Jan 2022 17:50:19 GMT, Mandy Chung <[email protected]> wrote:
> `AccessibleObject::setAccessible` and `trySetAccessible` methods should only
> allow access to public member of a public type that is unconditionally
> exported consistent with the access check as described in the class
> specification, when invoked by JNI code with no Java class on the stack.
> The current implementation throws NPE when finding the module of the caller
> class as the caller class is null.
>
> The specification of `canAccess`, `setAccessible` and `trySetAccessible` are
> updated to specify the behavior when the caller class is null. I consider
> this spec update as a clarification as the class specification covers this
> case.
src/java.base/share/classes/java/lang/reflect/AccessibleObject.java line 260:
> 258: * <p> If this method is invoked by <a
> href="{@docRoot}/../specs/jni/index.html">JNI code</a>
> 259: * with no caller class on the stack, the {@code accessible} flag can
> 260: * only set if the member and the declaring class are public, and
s/only set/only be set/
-------------
PR: https://git.openjdk.java.net/jdk/pull/7271