Integrated: JDK-8221642: AccessibleObject::setAccessible throws NPE when invoked by JNI code with no java frame on stack

Mandy Chung mchung at openjdk.java.net
Tue Feb 1 00:13:12 UTC 2022


On Fri, 28 Jan 2022 17:50:19 GMT, Mandy Chung <mchung at openjdk.org> 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.

This pull request has now been integrated.

Changeset: 9c0104b9
Author:    Mandy Chung <mchung at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/9c0104b9c96f012da1602f503f641824d78f4260
Stats:     193 lines in 3 files changed: 166 ins; 19 del; 8 mod

8221642: AccessibleObject::setAccessible throws NPE when invoked by JNI code with no java frame on stack

Reviewed-by: alanb

-------------

PR: https://git.openjdk.java.net/jdk/pull/7271


More information about the core-libs-dev mailing list