8320618: NPE: Cannot invoke "java.lang.constant.ClassDesc.isArray()" because "this.sym" is null
Reviewed-by: alanb
This commit is contained in:
parent
f6e5559ae9
commit
28d3762bd3
@ -1394,7 +1394,7 @@ public final class StackMapGenerator {
|
||||
}
|
||||
|
||||
Type getComponent() {
|
||||
if (sym.isArray()) {
|
||||
if (isArray()) {
|
||||
var comp = sym.componentType();
|
||||
if (comp.isPrimitive()) {
|
||||
return switch (comp.descriptorString().charAt(0)) {
|
||||
|
@ -24,7 +24,7 @@
|
||||
/*
|
||||
* @test
|
||||
* @summary Testing Classfile stack maps generator.
|
||||
* @bug 8305990 8320222
|
||||
* @bug 8305990 8320222 8320618
|
||||
* @build testdata.*
|
||||
* @run junit StackMapsTest
|
||||
*/
|
||||
@ -43,7 +43,6 @@ import static jdk.internal.classfile.Classfile.ACC_STATIC;
|
||||
import java.lang.constant.ClassDesc;
|
||||
import java.lang.constant.ConstantDescs;
|
||||
import java.lang.constant.MethodTypeDesc;
|
||||
import java.util.List;
|
||||
import java.lang.reflect.AccessFlag;
|
||||
|
||||
/**
|
||||
@ -237,6 +236,18 @@ class StackMapsTest {
|
||||
.verify(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInvalidAALOADStack() {
|
||||
Classfile.of().build(ClassDesc.of("Test"), clb
|
||||
-> clb.withMethodBody("test", ConstantDescs.MTD_void, 0, cob
|
||||
-> cob.bipush(10)
|
||||
.anewarray(ConstantDescs.CD_Object)
|
||||
.lconst_1() //long on stack caused NPE, see 8320618
|
||||
.aaload()
|
||||
.astore(2)
|
||||
.return_()));
|
||||
}
|
||||
|
||||
private static final FileSystem JRT = FileSystems.getFileSystem(URI.create("jrt:/"));
|
||||
|
||||
private static void testTransformedStackMaps(String classPath, Classfile.Option... options) throws Exception {
|
||||
|
Loading…
Reference in New Issue
Block a user