RFR : 8177036: Class.checkMemberAccess throws NPE when calling Class methods via JNI
peter.levart at gmail.com
Mon Mar 20 11:42:15 UTC 2017
On 03/20/2017 11:41 AM, Alan Bateman wrote:
> On 20/03/2017 09:19, Claes Redestad wrote:
>> please review this fix to avoid NPEs when calling certain Class
>> methods via JNI:
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8177036
>> Webrev: http://cr.openjdk.java.net/~redestad/8177036/jdk.01/
> This looks okay. At some point then we need to see how we can test
> these methods called from attached thread (with no caller).
I guess that when only the ClassLoader of the caller is checked in logic
of @CS method, such calls should behave as though the caller was some
class loaded by bootstrap ClassLoader. But what about @CS methods that
inspect the caller class more deeply (such as reflection API) where the
identity of the caller, its package and module play role in decisions?
What behavior is expected in such cases? Should core reflection always
allow access when invoked from "null" caller?
Currently core reflection throws InternalError (because of the check in
Reflection::ensureMemberAccess). But jake repo already contains changes
that remove this check and NPE is thrown later on in verifyModuleAccess...
More information about the core-libs-dev