public class com.oracle.svm.hosted.ServiceLoaderFeature implements org.graalvm.nativeimage.hosted.Feature
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.ServiceLoaderFeature
super_class: java.lang.Object
{
private static final java.util.Set<java.lang.String> SERVICES_TO_SKIP;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final java.util.Set<java.lang.String> SERVICE_PROVIDERS_TO_SKIP;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final java.lang.String LOCATION_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/services/"
private final java.util.Map<com.oracle.graal.pointsto.meta.AnalysisType, java.lang.Boolean> processedTypes;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljava/lang/Boolean;>;
private java.util.Map<java.lang.String, java.util.List<java.lang.String>> serviceProviders;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
private final boolean trace;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: new java.util.HashSet
dup
iconst_3
anewarray java.lang.String
dup
iconst_0
1: ldc "java.security.Provider"
aastore
dup
iconst_1
2: ldc "sun.util.locale.provider.LocaleDataMetaInfo"
aastore
dup
iconst_2
3: ldc "org.graalvm.nativeimage.Platform"
aastore
4: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putstatic com.oracle.svm.hosted.ServiceLoaderFeature.SERVICES_TO_SKIP:Ljava/util/Set;
5: new java.util.HashSet
dup
iconst_1
anewarray java.lang.String
dup
iconst_0
6: ldc "com.sun.jndi.rmi.registry.RegistryContextFactory"
aastore
7: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putstatic com.oracle.svm.hosted.ServiceLoaderFeature.SERVICE_PROVIDERS_TO_SKIP:Ljava/util/Set;
8: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.svm.hosted.ServiceLoaderFeature.processedTypes:Ljava/util/Map;
2: aload 0
getstatic com.oracle.svm.hosted.ServiceLoaderFeature$Options.TraceServiceLoaderFeature: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
putfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/ServiceLoaderFeature;
public boolean isInConfiguration(org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$IsInConfigurationAccess;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.hosted.ServiceLoaderFeature$Options.UseServiceLoaderFeature: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
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/ServiceLoaderFeature;
0 1 1 access Lorg/graalvm/nativeimage/hosted/Feature$IsInConfigurationAccess;
MethodParameters:
Name Flags
access
public void afterRegistration(org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterRegistrationAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.hosted.ServiceLoaderFeature.SERVICES_TO_SKIP:Ljava/util/Set;
getstatic com.oracle.svm.hosted.ServiceLoaderFeature$Options.ServiceLoaderFeatureExcludeServices:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
1: getstatic com.oracle.svm.hosted.ServiceLoaderFeature.SERVICE_PROVIDERS_TO_SKIP:Ljava/util/Set;
getstatic com.oracle.svm.hosted.ServiceLoaderFeature$Options.ServiceLoaderFeatureExcludeServiceProviders:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/ServiceLoaderFeature;
0 3 1 access Lorg/graalvm/nativeimage/hosted/Feature$AfterRegistrationAccess;
MethodParameters:
Name Flags
access
public void beforeAnalysis(org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.hosted.ModuleAccess.lookupServiceProviders:(Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;)Ljava/util/Map;
putfield com.oracle.svm.hosted.ServiceLoaderFeature.serviceProviders:Ljava/util/Map;
1: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 5
2: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.serviceProviders:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.size:()I
istore 2
start local 2 3: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.serviceProviders:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
invokedynamic applyAsInt()Ljava/util/function/ToIntFunction;
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;)I
java/util/List.size()I (9 itf)
(Ljava/util/List;)I
invokeinterface java.util.stream.Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
invokeinterface java.util.stream.IntStream.sum:()I
istore 3
start local 3 4: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ServiceLoaderFeature: Discovered "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " with "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " service providers registered using modules"
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 end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/ServiceLoaderFeature;
0 6 1 access Lorg/graalvm/nativeimage/hosted/Feature$BeforeAnalysisAccess;
3 5 2 services I
4 5 3 providers I
MethodParameters:
Name Flags
access
public void duringAnalysis(org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getTypes:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 6
StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl int top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.meta.AnalysisType
astore 4
start local 4 4: aload 0
aload 4
aload 2
invokevirtual com.oracle.svm.hosted.ServiceLoaderFeature.handleType:(Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Z
ifeq 6
5: iconst_1
istore 3
end local 4 6: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: iload 3
ifeq 20
8: aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getDebugContext:()Lorg/graalvm/compiler/debug/DebugContext;
astore 4
start local 4 9: aconst_null
astore 5
aconst_null
astore 6
10: aload 4
ldc "registerResource"
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 7
start local 7 11: aload 4
new java.lang.StringBuilder
dup
ldc "Resources have been added by ServiceLoaderFeature. Automatic registration can be disabled with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: getstatic com.oracle.svm.hosted.ServiceLoaderFeature$Options.UseServiceLoaderFeature: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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
14: aload 7
ifnull 20
aload 7
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 20
StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl int org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
15: astore 5
aload 7
ifnull 16
aload 7
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 7 StackMap locals:
StackMap stack:
16: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 6
aload 5
ifnonnull 18
aload 6
astore 5
goto 19
StackMap locals:
StackMap stack:
18: aload 5
aload 6
if_acmpeq 19
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
19: aload 5
athrow
end local 4 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/ServiceLoaderFeature;
0 21 1 a Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;
1 21 2 access Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
2 21 3 workDone Z
4 6 4 type Lcom/oracle/graal/pointsto/meta/AnalysisType;
9 20 4 debugContext Lorg/graalvm/compiler/debug/DebugContext;
11 16 7 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
Exception table:
from to target type
11 14 15 any
10 17 17 any
MethodParameters:
Name Flags
a
private boolean handleType(com.oracle.graal.pointsto.meta.AnalysisType, com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisType;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isReachable:()Z
ifeq 1
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.processedTypes:Ljava/util/Map;
aload 1
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnull 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.toClassName:()Ljava/lang/String;
astore 3
start local 3 5: new java.lang.StringBuilder
dup
ldc "META-INF/services/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 6: getstatic com.oracle.svm.hosted.ServiceLoaderFeature.SERVICES_TO_SKIP:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 10
7: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 9
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ServiceLoaderFeature: Skipping service "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
9: StackMap locals: java.lang.String java.lang.String
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 5
start local 5 11: aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
invokevirtual com.oracle.svm.hosted.ImageClassLoader.getClassLoader:()Ljava/lang/ClassLoader;
aload 4
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 6
start local 6 12: goto 20
end local 6 StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.String java.lang.String java.util.Set
StackMap stack: java.io.IOException
13: astore 7
start local 7 14: aload 7
ldc "Error loading service implementation resources for service `%s`"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
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 7 start local 6 15: StackMap locals: java.util.Enumeration
StackMap stack:
aload 6
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.net.URL
astore 7
start local 7 16: aload 5
aload 7
invokestatic com.oracle.svm.hosted.ServiceLoaderFeature.parseServiceResource:(Ljava/net/URL;)Ljava/util/Collection;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
17: goto 20
StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.String java.lang.String java.util.Set java.util.Enumeration java.net.URL
StackMap stack: java.io.IOException
18: astore 8
start local 8 19: aload 8
ldc "Error loading service implementations for service `%s` from URL `%s`"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 7
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 8 end local 7 20: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 15
21: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.serviceProviders:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 7
start local 7 22: aload 7
ifnull 26
23: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 25
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ServiceLoaderFeature: found service declared using java modules: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " with providers: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: StackMap locals: java.util.List
StackMap stack:
aload 5
aload 7
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
26: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Set.size:()I
ifne 28
27: iconst_0
ireturn
28: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 30
29: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ServiceLoaderFeature: processing service class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
30: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
sipush 1024
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 8
start local 8 31: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 63
StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.String java.lang.String java.util.Set java.util.Enumeration java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
32: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 33: aload 9
ldc "org.graalvm.compiler"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 37
aload 9
ldc "hotspot"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 37
34: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 63
35: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " IGNORING HotSpot-specific implementation class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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
36: goto 63
37: StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.String java.lang.String java.util.Set java.util.Enumeration java.util.List java.lang.StringBuilder java.lang.String java.util.Iterator
StackMap stack:
getstatic com.oracle.svm.hosted.ServiceLoaderFeature.SERVICE_PROVIDERS_TO_SKIP:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 41
38: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 63
39: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " ignoring implementation class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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
40: goto 63
41: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 43
42: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " adding implementation class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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
43: StackMap locals:
StackMap stack:
aload 2
aload 9
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.findClassByName:(Ljava/lang/String;)Ljava/lang/Class;
astore 11
start local 11 44: aload 11
ifnonnull 46
45: ldc "Could not find registered service implementation class `%s` for service `%s`"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 9
aastore
dup
iconst_1
aload 3
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
46: StackMap locals: java.lang.Class
StackMap stack:
aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
aload 11
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
pop
47: goto 52
StackMap locals:
StackMap stack: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
48: astore 12
start local 12 49: aload 0
getfield com.oracle.svm.hosted.ServiceLoaderFeature.trace:Z
ifeq 63
50: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " cannot resolve: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.getMessage:()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
51: goto 63
end local 12 52: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
checkcast com.oracle.svm.hosted.analysis.Inflation
invokevirtual com.oracle.svm.hosted.analysis.Inflation.getAnnotationSubstitutionProcessor:()Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
aload 11
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isDeleted:(Ljava/lang/Class;)Z
ifeq 54
53: goto 63
54: StackMap locals:
StackMap stack:
aload 11
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
pop
55: goto 58
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
56: pop
57: goto 63
StackMap locals:
StackMap stack:
58: iconst_1
anewarray java.lang.Class
dup
iconst_0
59: aload 11
aastore
invokestatic org.graalvm.nativeimage.hosted.RuntimeReflection.register:([Ljava/lang/Class;)V
iconst_1
anewarray java.lang.Class
dup
iconst_0
60: aload 11
aastore
invokestatic org.graalvm.nativeimage.hosted.RuntimeReflection.registerForReflectiveInstantiation:([Ljava/lang/Class;)V
61: aload 8
aload 11
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
62: aload 8
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 11 end local 9 63: StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.String java.lang.String java.util.Set java.util.Enumeration java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
64: aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getDebugContext:()Lorg/graalvm/compiler/debug/DebugContext;
astore 9
start local 9 65: aconst_null
astore 10
aconst_null
astore 11
66: aload 9
ldc "registerResource"
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 12
start local 12 67: aload 9
new java.lang.StringBuilder
dup
ldc "ServiceLoaderFeature: registerResource: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
68: aload 12
ifnull 74
aload 12
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 74
StackMap locals: com.oracle.svm.hosted.ServiceLoaderFeature com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl java.lang.String java.lang.String java.util.Set java.util.Enumeration java.util.List java.lang.StringBuilder org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
69: astore 10
aload 12
ifnull 70
aload 12
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 12 StackMap locals:
StackMap stack:
70: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
71: astore 11
aload 10
ifnonnull 72
aload 11
astore 10
goto 73
StackMap locals:
StackMap stack:
72: aload 10
aload 11
if_acmpeq 73
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
73: aload 10
athrow
74: StackMap locals:
StackMap stack:
aload 4
new java.io.ByteArrayInputStream
dup
aload 8
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokestatic com.oracle.svm.core.jdk.Resources.registerResource:(Ljava/lang/String;Ljava/io/InputStream;)V
75: aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.requireAnalysisIteration:()V
76: iconst_1
ireturn
end local 9 end local 8 end local 7 end local 6 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 77 0 this Lcom/oracle/svm/hosted/ServiceLoaderFeature;
0 77 1 type Lcom/oracle/graal/pointsto/meta/AnalysisType;
0 77 2 access Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
5 77 3 serviceClassName Ljava/lang/String;
6 77 4 serviceResourceLocation Ljava/lang/String;
11 77 5 implementationClassNames Ljava/util/Set<Ljava/lang/String;>;
12 13 6 resourceURLs Ljava/util/Enumeration<Ljava/net/URL;>;
15 77 6 resourceURLs Ljava/util/Enumeration<Ljava/net/URL;>;
14 15 7 ex Ljava/io/IOException;
16 20 7 resourceURL Ljava/net/URL;
19 20 8 ex Ljava/io/IOException;
22 77 7 providers Ljava/util/List<Ljava/lang/String;>;
31 77 8 newResourceValue Ljava/lang/StringBuilder;
33 63 9 implementationClassName Ljava/lang/String;
44 63 11 implementationClass Ljava/lang/Class<*>;
49 52 12 ex Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatureException;
65 77 9 debugContext Lorg/graalvm/compiler/debug/DebugContext;
67 70 12 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
Exception table:
from to target type
11 12 13 Class java.io.IOException
16 17 18 Class java.io.IOException
46 47 48 Class com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
54 55 56 Class java.lang.NoSuchMethodException
67 68 69 any
66 71 71 any
MethodParameters:
Name Flags
type
access
private static java.util.Collection<java.lang.String> parseServiceResource(java.net.URL);
descriptor: (Ljava/net/URL;)Ljava/util/Collection;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 0
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
ldc "utf-8"
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 4
start local 4 3: StackMap locals: java.net.URL java.util.Collection java.lang.Throwable java.lang.Throwable java.io.BufferedReader
StackMap stack:
aload 4
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 5
start local 5 4: aload 5
ifnonnull 6
5: goto 13
6: StackMap locals: java.lang.String
StackMap stack:
aload 5
bipush 35
invokevirtual java.lang.String.indexOf:(I)I
istore 6
start local 6 7: iload 6
iflt 9
8: aload 5
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 5
9: StackMap locals: int
StackMap stack:
aload 5
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 5
10: aload 5
invokevirtual java.lang.String.length:()I
ifeq 3
11: aload 1
aload 5
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 12: goto 3
13: StackMap locals:
StackMap stack:
aload 4
ifnull 19
aload 4
invokevirtual java.io.BufferedReader.close:()V
goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 2
aload 4
ifnull 15
aload 4
invokevirtual java.io.BufferedReader.close:()V
end local 4 StackMap locals:
StackMap stack:
15: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 3
aload 2
ifnonnull 17
aload 3
astore 2
goto 18
StackMap locals:
StackMap stack:
17: aload 2
aload 3
if_acmpeq 18
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 2
athrow
19: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 resourceURL Ljava/net/URL;
1 20 1 result Ljava/util/Collection<Ljava/lang/String;>;
3 15 4 reader Ljava/io/BufferedReader;
4 12 5 line Ljava/lang/String;
7 12 6 commentIndex I
Exception table:
from to target type
3 13 14 any
2 16 16 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/net/URL;)Ljava/util/Collection<Ljava/lang/String;>;
MethodParameters:
Name Flags
resourceURL
}
SourceFile: "ServiceLoaderFeature.java"
NestMembers:
com.oracle.svm.hosted.ServiceLoaderFeature$Options
InnerClasses:
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
public DuringAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
public Options = com.oracle.svm.hosted.ServiceLoaderFeature$Options of com.oracle.svm.hosted.ServiceLoaderFeature
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public abstract AfterRegistrationAccess = org.graalvm.nativeimage.hosted.Feature$AfterRegistrationAccess of org.graalvm.nativeimage.hosted.Feature
public abstract BeforeAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
public abstract DuringAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
public abstract IsInConfigurationAccess = org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess of org.graalvm.nativeimage.hosted.Feature
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.AutomaticFeature()