On Tue, 12 Oct 2021 17:44:08 GMT, Peter Levart <[email protected]> wrote:
>> src/java.base/share/classes/jdk/internal/reflect/MethodHandleCharacterFieldAccessorImpl.java
>> line 137:
>>
>>> 135: {
>>> 136: if (isReadOnly()) {
>>> 137: ensureObj(obj); // throw NPE if obj is null on
>>> instance field
>>
>> I think ensureObj(obj) must go before if statement in setChar
>
> No, it's OK. You are relying on `setter.invokeExact(obj, c)` to throw NPE
> later...
Yup. This `ensureObj(obj)` call on a Field with no-write access is to ensure
NPE is thrown before IAE consistent with the current behavior.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5027