public class com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization implements com.oracle.svm.hosted.classinitialization.ClassInitializationSupport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization
super_class: java.lang.Object
{
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration classInitializationConfiguration;
descriptor: Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.Class<?>, com.oracle.svm.hosted.classinitialization.InitKind> classInitKinds;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/svm/hosted/classinitialization/InitKind;>;
private static final java.util.Map<java.lang.Class<?>, java.lang.StackTraceElement[]> initializedClasses;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;[Ljava/lang/StackTraceElement;>;
private static final java.util.Map<java.lang.Object, java.lang.StackTraceElement[]> instantiatedObjects;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;[Ljava/lang/StackTraceElement;>;
private boolean configurationSealed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final com.oracle.svm.hosted.ImageClassLoader loader;
descriptor: Lcom/oracle/svm/hosted/ImageClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.graal.pointsto.constraints.UnsupportedFeatures unsupportedFeatures;
descriptor: Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
flags: (0x0002) ACC_PRIVATE
protected jdk.vm.ci.meta.MetaAccessProvider metaAccess;
descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
flags: (0x0004) ACC_PROTECTED
static com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis earlyClassInitializerAnalysis;
descriptor: Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
flags: (0x0008) ACC_STATIC
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/classinitialization/ConfigurableClassInitialization;
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.classinitialization.ConfigurableClassInitialization.$assertionsDisabled:Z
3: invokestatic org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.getUnsafe:()Lsun/misc/Unsafe;
putstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.UNSAFE:Lsun/misc/Unsafe;
4: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializedClasses:Ljava/util/Map;
5: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instantiatedObjects:Ljava/util/Map;
6: new com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis
dup
invokespecial com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.<init>:()V
putstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.earlyClassInitializerAnalysis:Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.MetaAccessProvider, com.oracle.svm.hosted.ImageClassLoader);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/ImageClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration
dup
invokespecial com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.<init>:()V
putfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
3: aload 0
aload 1
putfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
4: aload 0
aload 2
putfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.loader:Lcom/oracle/svm/hosted/ImageClassLoader;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 6 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 6 2 loader Lcom/oracle/svm/hosted/ImageClassLoader;
MethodParameters:
Name Flags
metaAccess
loader
public void setConfigurationSealed(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
1: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 6
getstatic com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options.PrintClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 6
2: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.allConfigs:()Ljava/util/List;
astore 2
start local 2 3: aload 2
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
com/oracle/svm/hosted/classinitialization/ClassOrPackageConfig.getName()Ljava/lang/String; (5)
(Lcom/oracle/svm/hosted/classinitialization/ClassOrPackageConfig;)Ljava/lang/String;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
4: getstatic com.oracle.svm.core.SubstrateOptions.Path:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "reports"
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 3
start local 3 5: ldc "initializer configuration"
aload 3
ldc "initializer_configuration"
ldc "txt"
aload 2
invokedynamic accept(Ljava/util/List;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization.lambda$1(Ljava/util/List;Ljava/io/PrintWriter;)V (6)
(Ljava/io/PrintWriter;)V
invokestatic com.oracle.graal.pointsto.reports.ReportUtils.report:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/function/Consumer;)V
end local 3 end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 7 1 sealed Z
3 6 2 allConfigs Ljava/util/List<Lcom/oracle/svm/hosted/classinitialization/ClassOrPackageConfig;>;
5 6 3 path Ljava/lang/String;
MethodParameters:
Name Flags
sealed
public void setUnsupportedFeatures(com.oracle.graal.pointsto.constraints.UnsupportedFeatures);
descriptor: (Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.unsupportedFeatures:Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 2 1 unsupportedFeatures Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
MethodParameters:
Name Flags
unsupportedFeatures
private com.oracle.svm.hosted.classinitialization.InitKind computeInitKindAndMaybeInitializeClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
clazz
public com.oracle.svm.hosted.classinitialization.InitKind specifiedInitKindFor(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.lookupKind:(Ljava/lang/String;)Lorg/graalvm/collections/Pair;
invokevirtual org.graalvm.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.InitKind
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
clazz
public boolean canBeProvenSafe(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.specifiedInitKindFor:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 2
start local 2 1: aload 2
ifnull 3
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.isRunTime:()Z
ifeq 2
aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.isStrictlyDefined:(Ljava/lang/Class;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 3
StackMap locals: com.oracle.svm.hosted.classinitialization.InitKind
StackMap stack:
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 4 1 clazz Ljava/lang/Class<*>;
1 4 2 initKind Lcom/oracle/svm/hosted/classinitialization/InitKind;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
private java.lang.Boolean isStrictlyDefined(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Boolean;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.lookupKind:(Ljava/lang/String;)Lorg/graalvm/collections/Pair;
invokevirtual org.graalvm.collections.Pair.getRight:()Ljava/lang/Object;
checkcast java.lang.Boolean
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Boolean;
MethodParameters:
Name Flags
clazz
public java.util.Set<java.lang.Class<?>> classesWithKind(com.oracle.svm.hosted.classinitialization.InitKind);
descriptor: (Lcom/oracle/svm/hosted/classinitialization/InitKind;)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
1: aload 1
invokedynamic test(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
com/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization.lambda$2(Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/util/Map$Entry;)Z (6)
(Ljava/util/Map$Entry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
2: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/util/Map$Entry.getKey()Ljava/lang/Object; (9 itf)
(Ljava/util/Map$Entry;)Ljava/lang/Class;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
3: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
4: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 5 1 kind Lcom/oracle/svm/hosted/classinitialization/InitKind;
Signature: (Lcom/oracle/svm/hosted/classinitialization/InitKind;)Ljava/util/Set<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
kind
public boolean shouldInitializeAtRuntime(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.getJavaClass:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 2 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public boolean shouldInitializeAtRuntime(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 2 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
public void maybeInitializeHosted(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.getJavaClass:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 2 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
private com.oracle.svm.hosted.classinitialization.InitKind ensureClassInitialized(java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.UNSAFE:Lsun/misc/Unsafe;
aload 1
invokevirtual sun.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
1: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.NoClassDefFoundError
astore 3
start local 3 4: getstatic com.oracle.svm.hosted.NativeImageOptions.AllowIncompleteClasspath:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 14
5: iload 2
ifne 13
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Warning: class initialization of class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " failed with exception "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.NoClassDefFoundError.getMessage:()Ljava/lang/String;
ifnonnull 8
ldc ""
goto 9
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class int java.lang.NoClassDefFoundError
StackMap stack: java.io.PrintStream java.lang.StringBuilder
8: new java.lang.StringBuilder
dup
ldc ": "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.NoClassDefFoundError.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class int java.lang.NoClassDefFoundError
StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ". This class will be initialized at run time because option "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: getstatic com.oracle.svm.hosted.NativeImageOptions.AllowIncompleteClasspath:Lcom/oracle/svm/core/option/HostedOptionKey;
ldc "+"
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is used for image building. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 1
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instructionsToInitializeAtRuntime:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
14: StackMap locals:
StackMap stack:
aload 0
iload 2
aload 1
aload 3
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.reportInitializationError:(ZLjava/lang/Class;Ljava/lang/Throwable;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
end local 3 15: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class int
StackMap stack: java.lang.Throwable
astore 3
start local 3 16: aload 0
iload 2
aload 1
aload 3
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.reportInitializationError:(ZLjava/lang/Class;Ljava/lang/Throwable;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 17 1 clazz Ljava/lang/Class<*>;
0 17 2 allowErrors Z
4 15 3 ex Ljava/lang/NoClassDefFoundError;
16 17 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.NoClassDefFoundError
0 2 15 Class java.lang.Throwable
Signature: (Ljava/lang/Class<*>;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
clazz
allowErrors
private com.oracle.svm.hosted.classinitialization.InitKind reportInitializationError(boolean, java.lang.Class<?>, java.lang.Throwable);
descriptor: (ZLjava/lang/Class;Ljava/lang/Throwable;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
ifeq 2
1: getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
2: StackMap locals:
StackMap stack:
ldc "Class initialization of %s failed. %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instructionsToInitializeAtRuntime:(Ljava/lang/Class;)Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 4
start local 4 3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.unsupportedFeatures:Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
ifnull 6
4: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.unsupportedFeatures:Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aconst_null
aload 4
aconst_null
aload 3
invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatures.addMessage:(Ljava/lang/String;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
5: getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
6: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "%s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 7 1 allowErrors Z
0 7 2 clazz Ljava/lang/Class<*>;
0 7 3 t Ljava/lang/Throwable;
3 7 4 msg Ljava/lang/String;
Signature: (ZLjava/lang/Class<*>;Ljava/lang/Throwable;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
allowErrors
clazz
t
private static java.lang.String instructionsToInitializeAtRuntime(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Use the option "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options.ClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
ldc "initialize-at-run-time"
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc " to explicitly request delayed initialization of this class."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz
private static java.lang.Class<?> getJavaClass(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
aload 0
invokestatic com.oracle.graal.pointsto.infrastructure.OriginalClassProvider.getJavaClass:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljdk/vm/ci/meta/ResolvedJavaType;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
type
public void initializeAtRunTime(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "The class initialization configuration can be changed only before the phase analysis."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.loader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 1
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
checkcast java.lang.Class
astore 3
start local 3 4: aload 3
ifnull 8
5: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
6: aload 0
aload 3
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializeAtRunTime:(Ljava/lang/Class;Ljava/lang/String;)V
7: goto 9
8: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 10 1 name Ljava/lang/String;
0 10 2 reason Ljava/lang/String;
4 10 3 clazz Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
reason
public void initializeAtBuildTime(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "The class initialization configuration can be changed only before the phase analysis."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.loader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 1
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
checkcast java.lang.Class
astore 3
start local 3 4: aload 3
ifnull 8
5: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
6: aload 0
aload 3
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializeAtBuildTime:(Ljava/lang/Class;Ljava/lang/String;)V
7: goto 9
8: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 10 1 name Ljava/lang/String;
0 10 2 reason Ljava/lang/String;
4 10 3 clazz Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
reason
public void rerunInitialization(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "The class initialization configuration can be changed only before the phase analysis."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.loader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 1
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
checkcast java.lang.Class
astore 3
start local 3 4: aload 3
ifnull 8
5: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RERUN:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
6: aload 0
aload 3
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.rerunInitialization:(Ljava/lang/Class;Ljava/lang/String;)V
7: goto 9
8: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RERUN:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 10 1 name Ljava/lang/String;
0 10 2 reason Ljava/lang/String;
4 10 3 clazz Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
reason
public void initializeAtRunTime(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "The class initialization configuration can be changed only before the phase analysis."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
4: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.setSubclassesAsRunTime:(Ljava/lang/Class;)V
5: aload 1
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.checkEagerInitialization:(Ljava/lang/Class;)V
6: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.UNSAFE:Lsun/misc/Unsafe;
aload 1
invokevirtual sun.misc.Unsafe.shouldBeInitialized:(Ljava/lang/Class;)Z
ifne 13
7: ldc "The class %1$s has already been initialized; it is too late to register %1$s for build-time initialization (%2$s). %3$s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
8: aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
9: aload 1
new java.lang.StringBuilder
dup
ldc "Try avoiding this conflict by avoiding to initialize the class that caused initialization of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: ldc " or by not marking "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for build-time initialization."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationErrorMessage:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
aastore
12: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
13: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
pop
14: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.InitKind
astore 3
start local 3 15: aload 3
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpne 17
16: ldc "Class is already initialized, so it is too late to register delaying class initialization: %s for reason: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
17: StackMap locals: com.oracle.svm.hosted.classinitialization.InitKind
StackMap stack:
aload 3
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RERUN:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpne 19
18: ldc "Class is registered both for delaying and rerunning the class initializer: %s for reason: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
19: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 20 1 clazz Ljava/lang/Class<*>;
0 20 2 reason Ljava/lang/String;
15 20 3 previousKind Lcom/oracle/svm/hosted/classinitialization/InitKind;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
clazz
reason
private static boolean isClassListedInStringOption(java.lang.String, java.lang.Class<?>);
descriptor: (Ljava/lang/String;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 option Ljava/lang/String;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
option
clazz
private static boolean isClassInitializationTracked(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.SubstrateOptions.TraceClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifeq 1
getstatic com.oracle.svm.core.SubstrateOptions.TraceClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
aload 0
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.isClassListedInStringOption:(Ljava/lang/String;Ljava/lang/Class;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
private static boolean isObjectInstantiationForClassTracked(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.SubstrateOptions.TraceObjectInstantiation:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifeq 1
getstatic com.oracle.svm.core.SubstrateOptions.TraceObjectInstantiation:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
aload 0
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.isClassListedInStringOption:(Ljava/lang/String;Ljava/lang/Class;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
private static java.lang.String classInitializationErrorMessage(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.isClassInitializationTracked:(Ljava/lang/Class;)Z
ifne 2
1: new java.lang.StringBuilder
dup
ldc "To see why "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " got initialized use "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic com.oracle.svm.core.SubstrateOptions.TraceClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializedClasses:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 24
3: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializedClasses:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
astore 2
start local 2 4: aconst_null
astore 3
start local 3 5: iconst_0
istore 4
start local 4 6: aload 2
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 13
StackMap locals: java.lang.Class java.lang.String java.lang.StackTraceElement[] java.lang.String int top int int java.lang.StackTraceElement[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 5
invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
ldc "<clinit>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
9: aload 5
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
astore 3
10: StackMap locals: java.lang.Class java.lang.String java.lang.StackTraceElement[] java.lang.String int java.lang.StackTraceElement int int java.lang.StackTraceElement[]
StackMap stack:
aload 5
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
ldc "java.lang.invoke.LambdaMetafactory"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: iconst_1
istore 4
end local 5 12: StackMap locals: java.lang.Class java.lang.String java.lang.StackTraceElement[] java.lang.String int top int int java.lang.StackTraceElement[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
iload 7
if_icmplt 7
14: iload 4
ifeq 21
15: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " was initialized through a lambda (https://github.com/oracle/graal/issues/1218). Try marking "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc " for build-time initialization with "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: getstatic com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options.ClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
ldc "initialize-at-build-time"
18: invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
21: StackMap locals: java.lang.Class java.lang.String java.lang.StackTraceElement[] java.lang.String int
StackMap stack:
aload 3
ifnull 23
22: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " caused initialization of this class with the following trace: \n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationTrace:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
23: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " has been initialized through the following trace:\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationTrace:(Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 24: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " has been initialized without the native-image initialization instrumentation and the stack trace can't be tracked. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 clazz Ljava/lang/Class<*>;
0 25 1 action Ljava/lang/String;
4 24 2 trace [Ljava/lang/StackTraceElement;
5 24 3 culprit Ljava/lang/String;
6 24 4 containsLambdaMetaFactory Z
8 12 5 stackTraceElement Ljava/lang/StackTraceElement;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz
action
public java.lang.String objectInstantiationTraceMessage(java.lang.Object, java.lang.String);
descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.isObjectInstantiationForClassTracked:(Ljava/lang/Class;)Z
ifne 2
1: new java.lang.StringBuilder
dup
ldc " To see how this object got instantiated use "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.oracle.svm.core.SubstrateOptions.TraceObjectInstantiation:Lcom/oracle/svm/core/option/HostedOptionKey;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instantiatedObjects:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 24
3: aconst_null
astore 3
start local 3 4: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instantiatedObjects:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: aload 4
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 13
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Object java.lang.String java.lang.String java.lang.StackTraceElement[] int top int int java.lang.StackTraceElement[]
StackMap stack:
7: aload 9
iload 7
aaload
astore 6
start local 6 8: aload 6
invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
ldc "<clinit>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
9: aload 6
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
astore 3
10: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Object java.lang.String java.lang.String java.lang.StackTraceElement[] int java.lang.StackTraceElement int int java.lang.StackTraceElement[]
StackMap stack:
aload 6
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
ldc "java.lang.invoke.LambdaMetafactory"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: iconst_1
istore 5
end local 6 12: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Object java.lang.String java.lang.String java.lang.StackTraceElement[] int top int int java.lang.StackTraceElement[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 8
if_icmplt 7
14: iload 5
ifeq 21
15: new java.lang.StringBuilder
dup
ldc " Object was instantiated through a lambda (https://github.com/oracle/graal/issues/1218). Try marking "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc " for build-time initialization with "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: getstatic com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options.ClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
ldc "initialize-at-build-time"
18: invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
21: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Object java.lang.String java.lang.String java.lang.StackTraceElement[] int
StackMap stack:
aload 3
ifnull 23
22: new java.lang.StringBuilder
dup
ldc " Object has been initialized by the "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " class initializer with a trace: \n "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instantiatedObjects:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.getTraceString:([Ljava/lang/StackTraceElement;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ". "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
23: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc " Object has been initialized through the following trace:\n"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instantiatedObjects:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.getTraceString:([Ljava/lang/StackTraceElement;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ". "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 24: StackMap locals:
StackMap stack:
ldc " Object has been initialized without the native-image initialization instrumentation and the stack trace can't be tracked."
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 25 1 obj Ljava/lang/Object;
0 25 2 action Ljava/lang/String;
4 24 3 culprit Ljava/lang/String;
5 24 4 trace [Ljava/lang/StackTraceElement;
6 24 5 containsLambdaMetaFactory Z
8 12 6 stackTraceElement Ljava/lang/StackTraceElement;
MethodParameters:
Name Flags
obj
action
private static java.lang.String classInitializationTrace(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializedClasses:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.getTraceString:([Ljava/lang/StackTraceElement;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz
private static java.lang.String getTraceString(java.lang.StackTraceElement[]);
descriptor: ([Ljava/lang/StackTraceElement;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0
iload 2
aaload
astore 3
start local 3 4: aload 1
ldc "\tat "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 5: iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
arraylength
if_icmplt 3
end local 2 7: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 trace [Ljava/lang/StackTraceElement;
1 8 1 b Ljava/lang/StringBuilder;
2 7 2 i I
4 5 3 stackTraceElement Ljava/lang/StackTraceElement;
MethodParameters:
Name Flags
trace
public void rerunInitialization(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "The class initialization configuration can be changed only before the phase analysis."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RERUN:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
4: aload 1
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.checkEagerInitialization:(Ljava/lang/Class;)V
5: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.UNSAFE:Lsun/misc/Unsafe;
aload 1
invokevirtual sun.misc.Unsafe.ensureClassInitialized:(Ljava/lang/Class;)V
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 3
start local 3 8: aload 3
ldc "Class initialization failed for %s. The class is requested for re-running (reason: %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 3 9: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
pop
10: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 1
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RERUN:Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.InitKind
astore 3
start local 3 11: aload 3
ifnull 20
12: aload 3
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpne 16
13: ldc "The information that the class should be initialized during image building has already been used, so it is too late to register the class initializer of %s for re-running. The reason for re-run request is %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
14: aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
15: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
16: StackMap locals: com.oracle.svm.hosted.classinitialization.InitKind
StackMap stack:
aload 3
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.isRunTime:()Z
ifeq 20
17: ldc "Class or a superclass is already registered for delaying the class initializer, so it is too late to register the class initializer of %s for re-running. The reason for re-run request is %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
18: aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
19: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
20: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 21 1 clazz Ljava/lang/Class<*>;
0 21 2 reason Ljava/lang/String;
8 9 3 ex Ljava/lang/Throwable;
11 21 3 previousKind Lcom/oracle/svm/hosted/classinitialization/InitKind;
Exception table:
from to target type
5 6 7 Class java.lang.Throwable
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
clazz
reason
public void initializeAtBuildTime(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.configurationSealed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "The class initialization configuration can be changed only before the phase analysis."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
4: aload 0
aload 1
aload 2
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.forceInitializeHosted:(Ljava/lang/Class;Ljava/lang/String;Z)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 6 1 aClass Ljava/lang/Class<*>;
0 6 2 reason Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
aClass
reason
private void setSubclassesAsRunTime(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifeq 2
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.declaresDefaultMethods:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.loader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 1
iconst_0
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findSubclasses:(Ljava/lang/Class;Z)Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
3: aload 1
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
com/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization.lambda$4(Ljava/lang/Class;Ljava/lang/Class;)Z (6)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
4: aload 0
invokedynamic test(Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
com/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization.lambda$5(Ljava/lang/Class;)Z (7)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
5: aload 0
aload 1
invokedynamic accept(Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;Ljava/lang/Class;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization.lambda$6(Ljava/lang/Class;Ljava/lang/Class;)V (7)
(Ljava/lang/Class;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 7 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
clazz
public void reportClassInitialized(java.lang.Class<?>, java.lang.StackTraceElement[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/StackTraceElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.svm.core.SubstrateOptions.TraceClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.initializedClasses:Ljava/util/Map;
aload 1
aload 2
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.relevantStackTrace:([Ljava/lang/StackTraceElement;)[Ljava/lang/StackTraceElement;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 3 1 clazz Ljava/lang/Class<*>;
0 3 2 stackTrace [Ljava/lang/StackTraceElement;
Signature: (Ljava/lang/Class<*>;[Ljava/lang/StackTraceElement;)V
MethodParameters:
Name Flags
clazz
stackTrace
public void reportObjectInstantiated(java.lang.Object, java.lang.StackTraceElement[]);
descriptor: (Ljava/lang/Object;[Ljava/lang/StackTraceElement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.$assertionsDisabled:Z
ifne 1
getstatic com.oracle.svm.core.SubstrateOptions.TraceObjectInstantiation:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.instantiatedObjects:Ljava/util/Map;
aload 1
aload 2
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.relevantStackTrace:([Ljava/lang/StackTraceElement;)[Ljava/lang/StackTraceElement;
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 3 1 o Ljava/lang/Object;
0 3 2 stackTrace [Ljava/lang/StackTraceElement;
MethodParameters:
Name Flags
o
stackTrace
private static java.lang.StackTraceElement[] relevantStackTrace(java.lang.StackTraceElement[]);
descriptor: ([Ljava/lang/StackTraceElement;)[Ljava/lang/StackTraceElement;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 12
5: StackMap locals: java.lang.StackTraceElement[] java.util.ArrayList int int int
StackMap stack:
aload 0
iload 4
aaload
astore 5
start local 5 6: ldc "<clinit>"
aload 5
invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iload 4
istore 2
8: StackMap locals: java.lang.StackTraceElement
StackMap stack:
aload 5
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
ldc "java.lang.invoke.LambdaMetafactory"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
9: iconst_1
istore 3
10: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 5 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 0
arraylength
if_icmplt 5
end local 4 13: iload 2
ifeq 14
iload 3
ifne 14
aload 1
iconst_0
iload 2
iconst_1
iadd
invokevirtual java.util.ArrayList.subList:(II)Ljava/util/List;
goto 15
StackMap locals:
StackMap stack:
14: aload 1
StackMap locals:
StackMap stack: java.util.List
15: astore 4
start local 4 16: aload 4
iconst_0
anewarray java.lang.StackTraceElement
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.StackTraceElement[]
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 stack [Ljava/lang/StackTraceElement;
1 17 1 filteredStack Ljava/util/ArrayList<Ljava/lang/StackTraceElement;>;
2 17 2 lastClinit I
3 17 3 containsLambdaMetaFactory Z
4 13 4 i I
6 11 5 stackTraceElement Ljava/lang/StackTraceElement;
16 17 4 finalStack Ljava/util/List<Ljava/lang/StackTraceElement;>;
MethodParameters:
Name Flags
stack
public void forceInitializeHosted(java.lang.Class<?>, java.lang.String, );
descriptor: (Ljava/lang/Class;Ljava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
3: aload 0
aload 1
iload 3
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 4
start local 4 4: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 1
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
new java.lang.StringBuilder
dup
ldc "super type of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iload 3
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.forceInitializeHosted:(Ljava/lang/Class;Ljava/lang/String;Z)V
6: aload 0
aload 1
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
new java.lang.StringBuilder
dup
ldc "super type of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.forceInitializeInterfaces:([Ljava/lang/Class;Ljava/lang/String;)V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 8 1 clazz Ljava/lang/Class<*>;
0 8 2 reason Ljava/lang/String;
0 8 3 allowInitializationErrors Z
4 8 4 initKind Lcom/oracle/svm/hosted/classinitialization/InitKind;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Z)V
MethodParameters:
Name Flags
clazz
reason
allowInitializationErrors
private void forceInitializeInterfaces(java.lang.Class<?>[], java.lang.String);
descriptor: ([Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 8
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class[] java.lang.String top int int java.lang.Class[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.declaresDefaultMethods:()Z
ifeq 6
3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 3
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
4: aload 0
aload 3
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
pop
5: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 3
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class[] java.lang.String java.lang.Class int int java.lang.Class[]
StackMap stack:
aload 0
aload 3
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
new java.lang.StringBuilder
dup
ldc "super type of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.forceInitializeInterfaces:([Ljava/lang/Class;Ljava/lang/String;)V
end local 3 7: iinc 4 1
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class[] java.lang.String top int int java.lang.Class[]
StackMap stack:
8: iload 4
iload 5
if_icmplt 1
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 10 1 interfaces [Ljava/lang/Class;
0 10 2 reason Ljava/lang/String;
2 7 3 iface Ljava/lang/Class<*>;
Signature: ([Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
interfaces
reason
public boolean checkDelayedInitialization();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.util.Set top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 3: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.InitKind
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.isRunTime:()Z
ifeq 5
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.UNSAFE:Lsun/misc/Unsafe;
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Class
invokevirtual sun.misc.Unsafe.shouldBeInitialized:(Ljava/lang/Class;)Z
ifne 5
4: aload 1
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Class
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 1
invokeinterface java.util.Set.size:()I
ifle 13
7: new java.lang.StringBuilder
dup
ldc "Classes that should be initialized at run time got initialized during image building:\n "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 8: aload 1
aload 0
aload 2
invokedynamic accept(Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;Ljava/lang/StringBuilder;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization.lambda$7(Ljava/lang/StringBuilder;Ljava/lang/Class;)V (7)
(Ljava/lang/Class;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
9: getstatic com.oracle.svm.core.SubstrateOptions.TraceClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifne 12
10: aload 1
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/Class.getName()Ljava/lang/String; (5)
(Ljava/lang/Class;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
ldc ","
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 11: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "To see how the classes got initialized, use "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.oracle.svm.core.SubstrateOptions.TraceClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
aload 3
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 3 12: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.util.Set java.lang.StringBuilder
StackMap stack:
ldc "%s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 2 13: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
1 14 1 illegalyInitialized Ljava/util/Set<Ljava/lang/Class<*>;>;
3 5 2 entry Ljava/util/Map$Entry<Ljava/lang/Class<*>;Lcom/oracle/svm/hosted/classinitialization/InitKind;>;
8 13 2 detailedMessage Ljava/lang/StringBuilder;
11 12 3 traceClassInitArguments Ljava/lang/String;
private static void checkEagerInitialization(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 1
aload 0
invokevirtual java.lang.Class.isArray:()Z
ifeq 4
1: StackMap locals:
StackMap stack:
ldc "Primitive types and array classes are initialized eagerly because initialization is side-effect free. It is not possible (and also not useful) to register them for run time initialization. Culprit: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
3: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.isAnnotation:()Z
ifeq 6
5: ldc "Class initialization of annotation classes cannot be delayed to runtime. Culprit: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
clazz
private com.oracle.svm.hosted.classinitialization.InitKind computeInitKindAndMaybeInitializeClass(java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.InitKind
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.isAnnotation:()Z
ifeq 5
3: aload 0
aload 1
ldc "all annotations are initialized"
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.forceInitializeHosted:(Ljava/lang/Class;Ljava/lang/String;Z)V
4: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.isEnum:()Z
ifeq 9
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.UNSAFE:Lsun/misc/Unsafe;
aload 1
invokevirtual sun.misc.Unsafe.shouldBeInitialized:(Ljava/lang/Class;)Z
ifne 9
6: iload 2
ifeq 8
7: aload 0
aload 1
ldc "enums referred in annotations must be initialized"
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.forceInitializeHosted:(Ljava/lang/Class;Ljava/lang/String;Z)V
8: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindForClass:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 3
start local 3 10: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 4
start local 4 11: aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
ifnull 13
12: aload 4
aload 0
aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
iload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.max:(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 4
13: StackMap locals: com.oracle.svm.hosted.classinitialization.InitKind com.oracle.svm.hosted.classinitialization.InitKind
StackMap stack:
aload 4
aload 0
aload 1
iload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.processInterfaces:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.max:(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 4
14: iload 2
ifeq 17
aload 4
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpne 17
aload 3
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
if_acmpne 17
aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.canBeProvenSafe:(Ljava/lang/Class;)Z
ifeq 17
15: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.earlyClassInitializerAnalysis:Lcom/oracle/svm/hosted/classinitialization/EarlyClassInitializerAnalysis;
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.EarlyClassInitializerAnalysis.canInitializeWithoutSideEffects:(Ljava/lang/Class;)Z
ifeq 17
16: aload 0
aload 1
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 3
17: StackMap locals:
StackMap stack:
aload 4
aload 3
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.max:(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 5
start local 5 18: iload 2
ifeq 23
19: aload 5
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.isRunTime:()Z
ifne 21
20: aload 5
aload 0
aload 1
iconst_0
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.max:(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 5
21: StackMap locals: com.oracle.svm.hosted.classinitialization.InitKind
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitKinds:Ljava/util/Map;
aload 1
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.InitKind
astore 6
start local 6 22: getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.$assertionsDisabled:Z
ifne 23
aload 6
ifnull 23
aload 6
aload 5
if_acmpeq 23
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Overwriting existing value: previous "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " new "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 6 23: StackMap locals:
StackMap stack:
aload 5
areturn
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 24 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 24 1 clazz Ljava/lang/Class<*>;
0 24 2 memoize Z
10 24 3 clazzResult Lcom/oracle/svm/hosted/classinitialization/InitKind;
11 24 4 superResult Lcom/oracle/svm/hosted/classinitialization/InitKind;
18 24 5 result Lcom/oracle/svm/hosted/classinitialization/InitKind;
22 23 6 previous Lcom/oracle/svm/hosted/classinitialization/InitKind;
Signature: (Ljava/lang/Class<*>;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
clazz
memoize
private com.oracle.svm.hosted.classinitialization.InitKind processInterfaces(java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 3
start local 3 1: aload 1
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class int com.oracle.svm.hosted.classinitialization.InitKind top int int java.lang.Class[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 4
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.declaresDefaultMethods:()Z
ifeq 6
4: aload 3
aload 0
aload 4
iload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.max:(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 3
5: goto 7
6: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class int com.oracle.svm.hosted.classinitialization.InitKind java.lang.Class int int java.lang.Class[]
StackMap stack:
aload 3
aload 0
aload 4
iload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.processInterfaces:(Ljava/lang/Class;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.max:(Lcom/oracle/svm/hosted/classinitialization/InitKind;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 3
end local 4 7: StackMap locals: com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization java.lang.Class int com.oracle.svm.hosted.classinitialization.InitKind top int int java.lang.Class[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 2
9: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 10 1 clazz Ljava/lang/Class<*>;
0 10 2 memoizeEager Z
1 10 3 result Lcom/oracle/svm/hosted/classinitialization/InitKind;
3 7 4 iface Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Z)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
clazz
memoizeEager
private com.oracle.svm.hosted.classinitialization.InitKind computeInitKindForClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 1
aload 1
invokevirtual java.lang.Class.isArray:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.isAnnotation:()Z
ifeq 4
3: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
ifeq 6
aload 1
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.isProxyFromAnnotation:(Ljava/lang/Class;)Z
ifeq 6
5: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
ldc "$$StringConcat"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 8
7: getstatic com.oracle.svm.hosted.classinitialization.InitKind.BUILD_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.specifiedInitKindFor:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
ifnull 10
9: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.specifiedInitKindFor:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
10: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 11 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
MethodParameters:
Name Flags
clazz
private static boolean isProxyFromAnnotation(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 5
StackMap locals: java.lang.Class top int int java.lang.Class[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokevirtual java.lang.Class.isAnnotation:()Z
ifeq 4
3: iconst_1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
iload 3
if_icmplt 1
6: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 clazz Ljava/lang/Class<*>;
2 4 1 interfaces Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
private static void lambda$1(java.util.List, java.io.PrintWriter);
descriptor: (Ljava/util/List;Ljava/io/PrintWriter;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=2
start local 1 0: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.util.List java.io.PrintWriter top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.classinitialization.ClassOrPackageConfig
astore 2
start local 2 2: aload 1
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ClassOrPackageConfig.getName:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
ldc " -> "
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ClassOrPackageConfig.getKind:()Lcom/oracle/svm/hosted/classinitialization/InitKind;
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.toString:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
ldc " reasons: "
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
3: ldc " and "
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ClassOrPackageConfig.getReasons:()Lorg/graalvm/collections/EconomicSet;
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.io.PrintWriter.append:(Ljava/lang/CharSequence;)Ljava/io/PrintWriter;
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 6 1 writer Ljava/io/PrintWriter;
2 4 2 config Lcom/oracle/svm/hosted/classinitialization/ClassOrPackageConfig;
private static boolean lambda$2(com.oracle.svm.hosted.classinitialization.InitKind, java.util.Map$Entry);
descriptor: (Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/util/Map$Entry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
aload 0
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 e Ljava/util/Map$Entry<Ljava/lang/Class<*>;Lcom/oracle/svm/hosted/classinitialization/InitKind;>;
private static boolean lambda$4(java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 c Ljava/lang/Class<+Ljava/lang/Object;>;
private boolean lambda$5(java.lang.Class);
descriptor: (Ljava/lang/Class;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifeq 1
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.declaresDefaultMethods:()Z
ifne 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 3 1 c Ljava/lang/Class<+Ljava/lang/Object;>;
private void lambda$6(java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 2 0: aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
getstatic com.oracle.svm.hosted.classinitialization.InitKind.RUN_TIME:Lcom/oracle/svm/hosted/classinitialization/InitKind;
new java.lang.StringBuilder
dup
ldc "subtype of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.insert:(Ljava/lang/String;Lcom/oracle/svm/hosted/classinitialization/InitKind;Ljava/lang/String;Z)V
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 1 2 c Ljava/lang/Class<+Ljava/lang/Object;>;
private void lambda$7(java.lang.StringBuilder, java.lang.Class);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/Class;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 2 0: aload 0
aload 2
invokevirtual com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.specifiedInitKindFor:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/classinitialization/InitKind;
astore 3
start local 3 1: aload 3
ifnonnull 10
2: aload 1
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " was unintentionally initialized at build time. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
aload 2
4: new java.lang.StringBuilder
dup
ldc "Try marking this class for build-time initialization with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options.ClassInitialization:Lcom/oracle/svm/core/option/HostedOptionKey;
5: aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
ldc "initialize-at-build-time"
6: invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationErrorMessage:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: goto 15
10: StackMap locals: com.oracle.svm.hosted.classinitialization.InitKind
StackMap stack:
getstatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.$assertionsDisabled:Z
ifne 11
aload 3
invokevirtual com.oracle.svm.hosted.classinitialization.InitKind.isRunTime:()Z
ifne 11
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Specified kind must be the same as actual kind for type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationConfiguration:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationConfiguration;
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.classinitialization.ClassInitializationConfiguration.lookupReason:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 12: aload 1
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " the class was requested to be initialized at run time ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "). "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: aload 2
new java.lang.StringBuilder
dup
ldc "Try avoiding to initialize the class that caused initialization of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.classInitializationErrorMessage:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 end local 3 15: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/svm/hosted/classinitialization/ConfigurableClassInitialization;
0 16 2 c Ljava/lang/Class<*>;
1 15 3 specifiedKind Lcom/oracle/svm/hosted/classinitialization/InitKind;
12 15 4 reason Ljava/lang/String;
}
SourceFile: "ConfigurableClassInitialization.java"
InnerClasses:
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
public Options = com.oracle.svm.hosted.classinitialization.ClassInitializationFeature$Options of com.oracle.svm.hosted.classinitialization.ClassInitializationFeature
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map