RFR: JDK-8216558: Lookup.unreflectSetter(Field) fails to throw IllegalAccessException for final fields

Mandy Chung mandy.chung at oracle.com
Wed Jan 16 23:52:03 UTC 2019

Hi Adam,

On 1/14/19 9:10 AM, Adam Farley8 wrote:
> As for the CSR process, I'm unfamiliar with it. I've modified the
> comment for the unreflectSetter method in the webrev. Do let me know if
> more needs to be done.

The CSR process is straight-forward.  CSR FAQ [1] may help you get started.

As for the fix, John has suggested the spec wording for this issue. It's 
fine with the unreflectField method to have the explicit check and throw 
field.makeAccessException(...).   The exception message could match the 
proposed spec wording like:
      if(isSetter && field.isStatic() && field.isFinal())
          throw field.makeAccessException("static final field has no 
write access", this);

You have a very long line and the throw statement can start in the next 

In addition, please include a test case for this change.

[1] https://wiki.openjdk.java.net/display/csr/CSR+FAQs

More information about the core-libs-dev mailing list