-
Bug
-
Resolution: Fixed
-
P4
-
23
-
b15
public static float test(Long test) {
return switch (test) {
case float y -> y;
default -> 2;
};
}
public static void main(String argv[]) {
System.out.println(test(1l));
}
Exception in thread "main" java.lang.BootstrapMethodError: bootstrap method initialization exception
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:188)
at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:316)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:275)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:265)
at Test.test(Test.java:10)
at Test.main(Test.java:17)
Caused by: java.lang.IllegalArgumentException: Operand stack underflow at bytecode offset 55 of method typeSwitch(Object,int,BiPredicate,List)
- max stack: 65535
max locals: 65535
attributes: []
//stack map frame @0: {locals: [java/lang/Object, int, java/util/function/BiPredicate, java/util/List], stack: []}
0: {opcode: ALOAD_0, slot: 0}
1: {opcode: IFNONNULL, target: 6}
4: {opcode: ICONST_M1, constant value: -1}
5: {opcode: IRETURN}
6: {opcode: ILOAD_1, slot: 1}
7: {opcode: TABLESWITCH, targets: [63, 24]}
24: {opcode: ALOAD_0, slot: 0}
25: {opcode: INSTANCEOF, type: java/lang/Number}
28: {opcode: IFEQ, target: 41}
31: {opcode: ALOAD_0, slot: 0}
32: {opcode: CHECKCAST, type: java/lang/Number}
35: {opcode: INVOKEVIRTUAL, owner: java/lang/Number, method name: intValue, method type: ()I}
38: {opcode: GOTO, target: 55}
41: {opcode: ALOAD_0, slot: 0}
42: {opcode: INSTANCEOF, type: java/lang/Character}
45: {opcode: IFEQ, target: 63}
48: {opcode: ALOAD_0, slot: 0}
49: {opcode: CHECKCAST, type: java/lang/Character}
52: {opcode: INVOKEVIRTUAL, owner: java/lang/Character, method name: charValue, method type: ()C}
55: {opcode: INVOKESTATIC, owner: java/lang/runtime/ExactConversionsSupport, method name: isLongToFloatExact, method type: (J)Z}
58: {opcode: IFEQ, target: 63}
61: {opcode: ICONST_0, constant value: 0}
62: {opcode: IRETURN}
63: {opcode: ICONST_1, constant value: 1}
64: {opcode: IRETURN}
at java.base/jdk.internal.classfile.impl.StackMapGenerator.generatorError(StackMapGenerator.java:869)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.generatorError(StackMapGenerator.java:825)
at java.base/jdk.internal.classfile.impl.StackMapGenerator$Frame.decStack(StackMapGenerator.java:1018)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.processInvokeInstructions(StackMapGenerator.java:781)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.processBlock(StackMapGenerator.java:644)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.processMethod(StackMapGenerator.java:440)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.generate(StackMapGenerator.java:317)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.<init>(StackMapGenerator.java:243)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.of(StackMapGenerator.java:156)
at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.generateStackMaps(DirectCodeBuilder.java:331)
at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.tryGenerateStackMaps(DirectCodeBuilder.java:340)
at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.writeBody(DirectCodeBuilder.java:382)
at java.base/jdk.internal.classfile.impl.UnboundAttribute$AdHocAttribute.writeTo(UnboundAttribute.java:914)
at java.base/jdk.internal.classfile.impl.AttributeHolder.writeTo(AttributeHolder.java:56)
at java.base/jdk.internal.classfile.impl.DirectMethodBuilder.writeTo(DirectMethodBuilder.java:156)
at java.base/jdk.internal.classfile.impl.BufWriterImpl.writeList(BufWriterImpl.java:207)
at java.base/jdk.internal.classfile.impl.DirectClassBuilder.build(DirectClassBuilder.java:181)
at java.base/jdk.internal.classfile.impl.ClassFileImpl.build(ClassFileImpl.java:114)
at java.base/java.lang.classfile.ClassFile.build(ClassFile.java:332)
at java.base/java.lang.runtime.SwitchBootstraps.generateTypeSwitch(SwitchBootstraps.java:626)
at java.base/java.lang.runtime.SwitchBootstraps.typeSwitch(SwitchBootstraps.java:173)
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:109)
... 5 more
java 23-ea 2024-09-17
Java(TM) SE Runtime Environment (build 23-ea+14-988)
Java HotSpot(TM) 64-Bit Server VM (build 23-ea+14-988, mixed mode, sharing)
return switch (test) {
case float y -> y;
default -> 2;
};
}
public static void main(String argv[]) {
System.out.println(test(1l));
}
Exception in thread "main" java.lang.BootstrapMethodError: bootstrap method initialization exception
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:188)
at java.base/java.lang.invoke.CallSite.makeSite(CallSite.java:316)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:275)
at java.base/java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:265)
at Test.test(Test.java:10)
at Test.main(Test.java:17)
Caused by: java.lang.IllegalArgumentException: Operand stack underflow at bytecode offset 55 of method typeSwitch(Object,int,BiPredicate,List)
- max stack: 65535
max locals: 65535
attributes: []
//stack map frame @0: {locals: [java/lang/Object, int, java/util/function/BiPredicate, java/util/List], stack: []}
0: {opcode: ALOAD_0, slot: 0}
1: {opcode: IFNONNULL, target: 6}
4: {opcode: ICONST_M1, constant value: -1}
5: {opcode: IRETURN}
6: {opcode: ILOAD_1, slot: 1}
7: {opcode: TABLESWITCH, targets: [63, 24]}
24: {opcode: ALOAD_0, slot: 0}
25: {opcode: INSTANCEOF, type: java/lang/Number}
28: {opcode: IFEQ, target: 41}
31: {opcode: ALOAD_0, slot: 0}
32: {opcode: CHECKCAST, type: java/lang/Number}
35: {opcode: INVOKEVIRTUAL, owner: java/lang/Number, method name: intValue, method type: ()I}
38: {opcode: GOTO, target: 55}
41: {opcode: ALOAD_0, slot: 0}
42: {opcode: INSTANCEOF, type: java/lang/Character}
45: {opcode: IFEQ, target: 63}
48: {opcode: ALOAD_0, slot: 0}
49: {opcode: CHECKCAST, type: java/lang/Character}
52: {opcode: INVOKEVIRTUAL, owner: java/lang/Character, method name: charValue, method type: ()C}
55: {opcode: INVOKESTATIC, owner: java/lang/runtime/ExactConversionsSupport, method name: isLongToFloatExact, method type: (J)Z}
58: {opcode: IFEQ, target: 63}
61: {opcode: ICONST_0, constant value: 0}
62: {opcode: IRETURN}
63: {opcode: ICONST_1, constant value: 1}
64: {opcode: IRETURN}
at java.base/jdk.internal.classfile.impl.StackMapGenerator.generatorError(StackMapGenerator.java:869)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.generatorError(StackMapGenerator.java:825)
at java.base/jdk.internal.classfile.impl.StackMapGenerator$Frame.decStack(StackMapGenerator.java:1018)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.processInvokeInstructions(StackMapGenerator.java:781)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.processBlock(StackMapGenerator.java:644)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.processMethod(StackMapGenerator.java:440)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.generate(StackMapGenerator.java:317)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.<init>(StackMapGenerator.java:243)
at java.base/jdk.internal.classfile.impl.StackMapGenerator.of(StackMapGenerator.java:156)
at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.generateStackMaps(DirectCodeBuilder.java:331)
at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.tryGenerateStackMaps(DirectCodeBuilder.java:340)
at java.base/jdk.internal.classfile.impl.DirectCodeBuilder$4.writeBody(DirectCodeBuilder.java:382)
at java.base/jdk.internal.classfile.impl.UnboundAttribute$AdHocAttribute.writeTo(UnboundAttribute.java:914)
at java.base/jdk.internal.classfile.impl.AttributeHolder.writeTo(AttributeHolder.java:56)
at java.base/jdk.internal.classfile.impl.DirectMethodBuilder.writeTo(DirectMethodBuilder.java:156)
at java.base/jdk.internal.classfile.impl.BufWriterImpl.writeList(BufWriterImpl.java:207)
at java.base/jdk.internal.classfile.impl.DirectClassBuilder.build(DirectClassBuilder.java:181)
at java.base/jdk.internal.classfile.impl.ClassFileImpl.build(ClassFileImpl.java:114)
at java.base/java.lang.classfile.ClassFile.build(ClassFile.java:332)
at java.base/java.lang.runtime.SwitchBootstraps.generateTypeSwitch(SwitchBootstraps.java:626)
at java.base/java.lang.runtime.SwitchBootstraps.typeSwitch(SwitchBootstraps.java:173)
at java.base/java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:109)
... 5 more
java 23-ea 2024-09-17
Java(TM) SE Runtime Environment (build 23-ea+14-988)
Java HotSpot(TM) 64-Bit Server VM (build 23-ea+14-988, mixed mode, sharing)