RFR (s): 8208162: Support for multi-dimensional value arrays is incomplete

John Rose john.r.rose at oracle.com
Wed Jul 25 23:15:45 UTC 2018

On Jul 25, 2018, at 3:16 AM, David Simms <david.simms at oracle.com> wrote:
> Greetings,
> Bug: https://bugs.openjdk.java.net/browse/JDK-8208162
> Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8208162/
> I believe the intention of the "ObjArrayKlass::_bottom_klass" field was always to hold an instance klass that contained user class that might require a number of checks, e.g. access checking for reflection, module access etc...
> A value of "typeArrayKlass" simply denoted, "system type". I believe assigning a valueArrayKlass to this field to be incorrect, the fix is simply to pick out the valueArrayKlass element type as "bottom klass"
> Testing: internal tier1, and Ioi's consistency tests now exhibit correct behavior.

It's a long-standing oddity of HotSpot that primitive types don't
have metadata.  This makes types like int[][][] different in confusing
detail from almost-identical types like String[][][].  So, from some
points of view int[][][] has a depth of 2 while String[][][] has a depth
of 3.  It's something we live with, like hereditary baldness.

— John

More information about the valhalla-dev mailing list