[lworld] setAccessible change and VarHandle test update
Paul Sandoz
paul.sandoz at oracle.com
Thu Mar 8 20:27:49 UTC 2018
Looks good.
> On Mar 6, 2018, at 3:40 PM, mandy chung <mandy.chung at oracle.com> wrote:
>
> Paul,
>
> I have updated
> VarHandleTestAccess* tests for value class.
>
> UOE is thrown when it attempts to set the value instance field
> via VarHandle. OTOH the exception message is empty and I have
> created JDK-8199149 to improve the exception message e.g.
> indicating it's a value class.
>
Thanks.
> Any other tests should be
> updated?
>
There are other tests that tunnel through method handles, see VarHandleTestMethodHandleAccess*.
>
> This patch also updates the following:
> - Constructor::newInstance throws IAE on value class.
> Field::set* already throws IAE in lworld branch.
> - Constructor::setAccessible(true) throws IOE on value class.
> - Field::setAccessible(true) throws IOE on value instance fields
> and static final fields.
> - similarly trySetAccessible() returns false for the above cases.
>
>
> Value class is new and this is a good opportunity to enforce
> final is final on value classes. So setAccessible is not
> supported on static final and instance fields on value types.
>
Which also means the VM can treat these fields as final too. Is that being tracked somewhere?
Paul.
>
> I disable verification and make the tests to run in -Xint
> temporarily until the lworld support is making further
> progress.
>
> Webrev:
>
> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/lworld-reflection-varhandles/
>
>
> Thanks
> Mandy
>
>
More information about the valhalla-dev
mailing list