[lworld] RFR: 8242402: multianewarray is missing checks on the bottom class

Frederic Parain fparain at openjdk.java.net
Mon Jul 6 20:14:44 UTC 2020


On Mon, 6 Jul 2020 19:57:18 GMT, Harold Seigel <hseigel at openjdk.org> wrote:

>> Please review this patch which adds a missing check in array class resolution.
>> 
>> When an array class is resolved and the bottom type is not a primitive type, the envelope of the bottom type signature
>> is removed in order to extract the class name and load it. Currently, there's no check that the kind of the loaded
>> class matches the enveloped stripped from the signature.  The patch adds this check and includes an unit test.
>> 
>> Tested on all all platforms with mach5, tiers 1 to 3.
>> 
>> Thank you,
>> 
>> Fred
>
> src/hotspot/share/classfile/systemDictionary.cpp line 365:
> 
>> 364:             THROW_NULL(vmSymbols::java_lang_IncompatibleClassChangeError());
>> 365:           }
>> 366:       k = k->array_klass(ndims, CHECK_NULL);
> 
> Is it worthwhile using THROW_MSG_NULL to provide a helpful message with the exception?

Something like this?

`THROW_MSG_NULL(vmSymbols::java_lang_IncompatibleClassChangeError(), "L/Q mismatch on bottom type");`

Fred

-------------

PR: https://git.openjdk.java.net/valhalla/pull/105


More information about the valhalla-dev mailing list