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

Harold Seigel hseigel at openjdk.java.net
Mon Jul 6 20:01:39 UTC 2020


On Mon, 6 Jul 2020 19:13:00 GMT, Frederic Parain <fparain 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

Marked as reviewed by hseigel (Committer).

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?

test/hotspot/jtreg/runtime/valhalla/valuetypes/MultiANewArrayTest/MultiANewArrayTypeCheck.jcod line 1:

> 1: class MultiANewArrayTypeCheck {
> 2:   0xCAFEBABE;

I think a copyright notice is needed here.  Also, could you add a comment containing Java pseudo-code that shows what
this file is doing?

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

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


More information about the valhalla-dev mailing list