RFR(XS) 8129895: New verifier fails to reject erroneous cast from int[] to other arrays of small integer types

David Holmes david.holmes at oracle.com
Wed Jul 22 01:31:02 UTC 2015

Hi Harold,

Thanks for clarifying. Good to go.


On 21/07/2015 11:49 PM, harold seigel wrote:
> Hi David,
> Thanks for the review.
> The new function is named is_component_assignable_from() because it is
> similar to existing function is_assignable_from().  Also, the purpose of
> the function is to check assignability of array components.  It just so
> happens that assignability for the integer primitives is determined by
> identity, but that is not so for other array components that it checks.
>  >> I'm also wondering what the situation is with long[], float[] and
> double[]?
> The verifier correctly throws VerifyError when checking assignability
> between arrays of different primitive types in cases of longs, floats,
> and doubles.
> Thanks, Harold
> The new function checks for assignability of array components.  For int
> On 7/20/2015 9:49 PM, David Holmes wrote:
>> Hi Harold,
>> On 21/07/2015 4:29 AM, harold seigel wrote:
>>> Hi,
>>> Please review this small change to fix bug 8129895.  The split verifier
>>> erroneously allows arrays of primitive ints to be assignable to arrays
>>> of Booleans, bytes, chars, and shorts.  This fix adds a new function
>>> (is_component_assignable_from()) for explicitly checking assign-ability
>>> of array components.  The new function requires that primitive array
>>> components be identical for assign-ability.
>>> Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8129895/
>> My only nit here is that "is_assignable" doesn't reflect the actual
>> check - it's is-equal for the primitives not is-assignable.
>> I'm also wondering what the situation is with long[], float[] and
>> double[]?
>> Thanks,
>> David
>>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8129895
>>> The fix was tested with JCK Lang and VM tests, the UTE quick and split
>>> verifier tests, and the hotspot, and JDK vm, java/io, java/lang, and
>>> java/util JTreg tests.
>>> Thanks, Harold

More information about the hotspot-runtime-dev mailing list