public final class com.oracle.svm.hosted.ExceptionSynthesizer
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.hosted.ExceptionSynthesizer
super_class: java.lang.Object
{
private static final java.util.Map<com.oracle.svm.hosted.ExceptionSynthesizer$Key, java.lang.reflect.Method> exceptionMethods;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Lcom/oracle/svm/hosted/ExceptionSynthesizer$Key;Ljava/lang/reflect/Method;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/ExceptionSynthesizer;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.svm.hosted.ExceptionSynthesizer.$assertionsDisabled:Z
3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic com.oracle.svm.hosted.ExceptionSynthesizer.exceptionMethods:Ljava/util/Map;
4: ldc Ljava/lang/ClassNotFoundException;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
5: ldc Ljava/lang/NoSuchFieldException;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
6: ldc Ljava/lang/NoSuchMethodException;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
7: ldc Ljava/lang/LinkageError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
8: ldc Ljava/lang/ClassCircularityError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
9: ldc Ljava/lang/IncompatibleClassChangeError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
10: ldc Ljava/lang/NoSuchFieldError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
11: ldc Ljava/lang/InstantiationError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
12: ldc Ljava/lang/NoSuchMethodError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
13: ldc Ljava/lang/IllegalAccessError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
14: ldc Ljava/lang/AbstractMethodError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
15: ldc Ljava/lang/BootstrapMethodError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
16: ldc Ljava/lang/ClassFormatError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
17: ldc Ljava/lang/reflect/GenericSignatureFormatError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
18: ldc Ljava/lang/UnsupportedClassVersionError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
19: ldc Ljava/lang/UnsatisfiedLinkError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
20: ldc Ljava/lang/NoClassDefFoundError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
21: ldc Ljava/lang/ExceptionInInitializerError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
22: ldc Ljava/lang/VerifyError;
ldc Ljava/lang/String;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;Ljava/lang/Class;)V
23: ldc Ljava/lang/VerifyError;
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.registerMethod:(Ljava/lang/Class;)V
24: return
LocalVariableTable:
Start End Slot Name Signature
private static void registerMethod(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: getstatic com.oracle.svm.hosted.ExceptionSynthesizer.exceptionMethods:Ljava/util/Map;
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer$Key.from:([Ljava/lang/Class;)Lcom/oracle/svm/hosted/ExceptionSynthesizer$Key;
ldc Lcom/oracle/svm/core/snippets/ImplicitExceptions;
new java.lang.StringBuilder
dup
ldc "throw"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: goto 4
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
2: astore 1
start local 1 3: aload 1
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 exceptionClass Ljava/lang/Class<*>;
3 4 1 ex Ljava/lang/NoSuchMethodException;
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
exceptionClass
private static void registerMethod(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.hosted.ExceptionSynthesizer.exceptionMethods:Ljava/util/Map;
iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer$Key.from:([Ljava/lang/Class;)Lcom/oracle/svm/hosted/ExceptionSynthesizer$Key;
ldc Lcom/oracle/svm/core/snippets/ImplicitExceptions;
new java.lang.StringBuilder
dup
ldc "throw"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: goto 4
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
2: astore 2
start local 2 3: aload 2
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 exceptionClass Ljava/lang/Class<*>;
0 5 1 paramterClass Ljava/lang/Class<*>;
3 4 2 ex Ljava/lang/NoSuchMethodException;
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
exceptionClass
paramterClass
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/ExceptionSynthesizer;
public static java.lang.reflect.Method throwExceptionMethod(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)Ljava/lang/reflect/Method;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic com.oracle.svm.hosted.ExceptionSynthesizer.exceptionMethods:Ljava/util/Map;
aload 0
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer$Key.from:([Ljava/lang/Class;)Lcom/oracle/svm/hosted/ExceptionSynthesizer$Key;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.reflect.Method
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: new java.lang.StringBuilder
dup
ldc "Exception synthesizer method "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not found."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 methodDescriptor [Ljava/lang/Class;
1 5 1 method Ljava/lang/reflect/Method;
Signature: ([Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
methodDescriptor
public static void throwException(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, java.lang.Class<?>, java.lang.String);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
dup
iconst_1
ldc Ljava/lang/String;
aastore
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.throwExceptionMethod:([Ljava/lang/Class;)Ljava/lang/reflect/Method;
aload 2
invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/reflect/Method;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 2 1 exceptionClass Ljava/lang/Class<*>;
0 2 2 message Ljava/lang/String;
Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
b
exceptionClass
message
public static void throwException(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, java.lang.reflect.Method, java.lang.String);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/reflect/Method;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
astore 3
start local 3 1: aload 0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 2: getstatic com.oracle.svm.hosted.ExceptionSynthesizer.$assertionsDisabled:Z
ifne 3
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isStatic:()Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 0
getstatic org.graalvm.compiler.nodes.CallTargetNode$InvokeKind.Static:Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;
aload 4
iconst_1
anewarray org.graalvm.compiler.nodes.ValueNode
dup
iconst_0
aload 3
aastore
iconst_0
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.handleReplacedInvoke:(Lorg/graalvm/compiler/nodes/CallTargetNode$InvokeKind;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/Invoke;
astore 5
start local 5 4: aload 5
ifnull 6
5: aload 0
new org.graalvm.compiler.nodes.DeoptimizeNode
dup
getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateReprofile:Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationReason.UnreachedCode:Ljdk/vm/ci/meta/DeoptimizationReason;
invokespecial org.graalvm.compiler.nodes.DeoptimizeNode.<init>:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
6: StackMap locals: org.graalvm.compiler.nodes.Invoke
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 7 1 throwExceptionMethod Ljava/lang/reflect/Method;
0 7 2 message Ljava/lang/String;
1 7 3 messageNode Lorg/graalvm/compiler/nodes/ValueNode;
2 7 4 exceptionMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
4 7 5 invoke Lorg/graalvm/compiler/nodes/Invoke;
MethodParameters:
Name Flags
b
throwExceptionMethod
message
}
SourceFile: "ExceptionSynthesizer.java"
NestMembers:
com.oracle.svm.hosted.ExceptionSynthesizer$Key
InnerClasses:
final Key = com.oracle.svm.hosted.ExceptionSynthesizer$Key of com.oracle.svm.hosted.ExceptionSynthesizer
public final InvokeKind = org.graalvm.compiler.nodes.CallTargetNode$InvokeKind of org.graalvm.compiler.nodes.CallTargetNode