RFR: JDK-8216558: Lookup.unreflectSetter(Field) fails to throw IllegalAccessException for final fields
Adam Farley8
adam.farley at uk.ibm.com
Thu Mar 7 17:44:13 UTC 2019
Hi Mandy,
Since you have created a new work item to cover the test work, do let
me know if you want the test code removed from the webrev for the
original issue.
Also, by "nobody is meant to be changing final fields anyway", I was
explaining my decision to setAccessible(true) on the final fields by
default, rather than setting it via a control bit as you suggested.
Seemed to save code while exposing us to minimal risk, because the
field is meant to be immutable (final).
Lastly, I'm sorry to see you weren't happy with the quality of my test
code. Your changes seem much larger in scale, and quite different to
my changes. Could you explain the benefits of your approach, vs simply
adding non-static final fields to my code?
No judgement, just looking to learn here. :)
Best Regards
Adam Farley
IBM Runtimes
Mandy Chung <mandy.chung at oracle.com> wrote on 07/03/2019 15:38:48:
> From: Mandy Chung <mandy.chung at oracle.com>
> To: Adam Farley8 <adam.farley at uk.ibm.com>
> Cc: core-libs-dev <core-libs-dev at openjdk.java.net>
> Date: 07/03/2019 15:40
> Subject: Re: RFR: JDK-8216558: Lookup.unreflectSetter(Field) fails
> to throw IllegalAccessException for final fields
>
> Hi Adam,
>
> On 3/6/19 8:28 AM, Adam Farley8 wrote:
> > Hi Mandy,
> >
> > The webrev has been updated with the new test:
> > https://urldefense.proofpoint.com/v2/url?
> u=http-3A__cr.openjdk.java.net_-7Eafarley_8216558_webrev_&d=DwIC-
> g&c=jf_iaSHvJObTbx-siA1ZOg&r=P5m8KWUXJf-
>
CeVJc0hDGD9AQ2LkcXDC0PMV9ntVw5Ho&m=jQfLigt7_Y_u9yffi19X55OptDevspJHn76z12Z_XZI&s=93WLChJClpzd43Gy4CUKWGrdi5AZcRXLyAn93S1irj8&e=
>
> Looks okay although I think the test adds isFinal check for the new test
> case is meant to be say static final field.
>
> > Note that I included a handful of small improvements, and that the
final
> > fields are all setAccessible by default, because (a) it seemed cleaner
> > than adding a new control bit, and (b) nobody is meant to be changing
> > final fields anyway.
>
> I'm not sure what you tried to say about "nobody is meant to be changing
> final fields". There should be tests covering all cases.
>
> In any case, since you chose to modify MethodHandlesGeneralTest, it's
> okay to add tests for the static final fields which is what this fix
> is about. I created a JBS issue to add test cases for the instance
> final fields:
> https://urldefense.proofpoint.com/v2/url?
> u=https-3A__bugs.openjdk.java.net_browse_JDK-2D8220282&d=DwIC-
> g&c=jf_iaSHvJObTbx-siA1ZOg&r=P5m8KWUXJf-
>
CeVJc0hDGD9AQ2LkcXDC0PMV9ntVw5Ho&m=jQfLigt7_Y_u9yffi19X55OptDevspJHn76z12Z_XZI&s=fIIn31odNd2SEKaj2zUF4qc03FJhqnQzROj09QrS0Jw&e=
>
> FYI. I have a patch for it and will send out for review.
> https://urldefense.proofpoint.com/v2/url?
> u=http-3A__cr.openjdk.java.net_-7Emchung_jdk13_webrevs_8220282_webrev.
> 00_&d=DwIC-g&c=jf_iaSHvJObTbx-siA1ZOg&r=P5m8KWUXJf-
>
CeVJc0hDGD9AQ2LkcXDC0PMV9ntVw5Ho&m=jQfLigt7_Y_u9yffi19X55OptDevspJHn76z12Z_XZI&s=YhNHbETeM1kVO2frjr6aXSMgZCc69B3kDqVEiOHVSCg&e=
>
> Mandy
>
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
More information about the core-libs-dev
mailing list