public class com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit
super_class: java.lang.Object
{
protected final java.util.concurrent.ForkJoinPool executor;
descriptor: Ljava/util/concurrent/ForkJoinPool;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.svm.hosted.ImageClassLoader imageClassLoader;
descriptor: Lcom/oracle/svm/hosted/ImageClassLoader;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport nativeImageClassLoader;
descriptor: Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static final java.util.Set<java.nio.file.Path> excludeDirectories;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/nio/file/Path;>;
protected static final java.lang.String CLASS_EXTENSION;
descriptor: Ljava/lang/String;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
ConstantValue: ".class"
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=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport;
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.AbstractNativeImageClassLoaderSupport$ClassInit.$assertionsDisabled:Z
3: invokestatic com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.getExcludeDirectories:()Ljava/util/Set;
putstatic com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.excludeDirectories:Ljava/util/Set;
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.util.concurrent.ForkJoinPool, com.oracle.svm.hosted.ImageClassLoader, com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport);
descriptor: (Ljava/util/concurrent/ForkJoinPool;Lcom/oracle/svm/hosted/ImageClassLoader;Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.executor:Ljava/util/concurrent/ForkJoinPool;
2: aload 0
aload 2
putfield com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
3: aload 0
aload 3
putfield com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.nativeImageClassLoader:Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;
0 5 1 executor Ljava/util/concurrent/ForkJoinPool;
0 5 2 imageClassLoader Lcom/oracle/svm/hosted/ImageClassLoader;
0 5 3 nativeImageClassLoader Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport;
MethodParameters:
Name Flags
executor
imageClassLoader
nativeImageClassLoader
protected void init();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.util.TreeSet
dup
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/AbstractNativeImageClassLoaderSupport$ClassInit.toRealPath(Ljava/nio/file/Path;)Ljava/nio/file/Path; (6)
(Ljava/nio/file/Path;)Ljava/nio/file/Path;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
astore 1
start local 1 1: aload 1
aload 0
getfield com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.nativeImageClassLoader:Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport;
invokevirtual com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport.classpath:()Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
2: aload 1
invokeinterface java.util.Set.parallelStream:()Ljava/util/stream/Stream;
aload 0
invokedynamic accept(Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;)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/AbstractNativeImageClassLoaderSupport$ClassInit.lambda$1(Ljava/nio/file/Path;)V (7)
(Ljava/nio/file/Path;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;
1 4 1 uniquePaths Ljava/util/Set<Ljava/nio/file/Path;>;
private static java.nio.file.Path toRealPath(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.nio.file.LinkOption
invokeinterface java.nio.file.Path.toRealPath:([Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
1: areturn
2: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 3: new java.lang.StringBuilder
dup
ldc "Path.toRealPath failed for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 p Ljava/nio/file/Path;
3 4 1 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
MethodParameters:
Name Flags
p
private static java.util.Set<java.nio.file.Path> getExcludeDirectories();
descriptor: ()Ljava/util/Set;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: ldc "/"
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 0
start local 0 1: bipush 8
anewarray java.lang.String
dup
iconst_0
ldc "dev"
aastore
dup
iconst_1
ldc "sys"
aastore
dup
iconst_2
ldc "proc"
aastore
dup
iconst_3
ldc "etc"
aastore
dup
iconst_4
ldc "var"
aastore
dup
iconst_5
ldc "tmp"
aastore
dup
bipush 6
ldc "boot"
aastore
dup
bipush 7
ldc "lost+found"
aastore
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
2: aload 0
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Ljava/nio/file/Path;)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/nio/file/Path.resolve(Ljava/lang/String;)Ljava/nio/file/Path; (9 itf)
(Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
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
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 root Ljava/nio/file/Path;
Signature: ()Ljava/util/Set<Ljava/nio/file/Path;>;
private void loadClassesFromPath(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 22
1: aload 1
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isRegularFile:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 21
2: new java.net.URI
dup
new java.lang.StringBuilder
dup
ldc "jar:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 2
start local 2 3: aload 2
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/net/URI;Ljava/util/Map;)Ljava/nio/file/FileSystem;
astore 3
start local 3 4: goto 7
end local 3 StackMap locals: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit java.nio.file.Path java.net.URI
StackMap stack: java.lang.UnsupportedOperationException
5: pop
6: aconst_null
astore 3
start local 3 7: StackMap locals: java.nio.file.FileSystem
StackMap stack:
aload 3
ifnull 22
8: aconst_null
astore 4
aconst_null
astore 5
9: aload 3
astore 6
start local 6 10: aload 0
aload 6
ldc "/"
iconst_0
anewarray java.lang.String
invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
invokevirtual com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.loadClassesFromPath:(Ljava/nio/file/Path;Ljava/util/Set;)V
11: aload 6
ifnull 22
aload 6
invokevirtual java.nio.file.FileSystem.close:()V
goto 22
StackMap locals: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit java.nio.file.Path java.net.URI java.nio.file.FileSystem java.lang.Throwable java.lang.Throwable java.nio.file.FileSystem
StackMap stack: java.lang.Throwable
12: astore 4
aload 6
ifnull 13
aload 6
invokevirtual java.nio.file.FileSystem.close:()V
end local 6 StackMap locals:
StackMap stack:
13: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 5
aload 4
ifnonnull 15
aload 5
astore 4
goto 16
StackMap locals:
StackMap stack:
15: aload 4
aload 5
if_acmpeq 16
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 4
athrow
end local 3 end local 2 17: StackMap locals: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit java.nio.file.Path
StackMap stack: java.nio.channels.ClosedByInterruptException
pop
18: new com.oracle.svm.core.util.InterruptImageBuilding
dup
invokespecial com.oracle.svm.core.util.InterruptImageBuilding.<init>:()V
athrow
19: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 20: aload 2
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 21: StackMap locals:
StackMap stack:
aload 0
aload 1
getstatic com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.excludeDirectories:Ljava/util/Set;
invokevirtual com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.loadClassesFromPath:(Ljava/nio/file/Path;Ljava/util/Set;)V
22: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;
0 23 1 path Ljava/nio/file/Path;
3 17 2 jarURI Ljava/net/URI;
4 5 3 probeJarFileSystem Ljava/nio/file/FileSystem;
7 17 3 probeJarFileSystem Ljava/nio/file/FileSystem;
10 13 6 jarFileSystem Ljava/nio/file/FileSystem;
20 21 2 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.UnsupportedOperationException
10 11 12 any
9 14 14 any
2 17 17 Class java.nio.channels.ClosedByInterruptException
2 17 19 Class java.io.IOException
2 17 19 Class java.net.URISyntaxException
MethodParameters:
Name Flags
path
private void loadClassesFromPath(java.nio.file.Path, java.util.Set<java.nio.file.Path>);
descriptor: (Ljava/nio/file/Path;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit$1
dup
aload 0
aload 1
aload 2
invokespecial com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit$1.<init>:(Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;Ljava/nio/file/Path;Ljava/util/Set;)V
astore 3
start local 3 1: aload 1
aload 3
invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
pop
2: goto 5
StackMap locals: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit java.nio.file.Path java.util.Set java.nio.file.FileVisitor
StackMap stack: java.io.IOException
3: astore 4
start local 4 4: aload 4
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 4 5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;
0 6 1 root Ljava/nio/file/Path;
0 6 2 excludes Ljava/util/Set<Ljava/nio/file/Path;>;
1 6 3 visitor Ljava/nio/file/FileVisitor<Ljava/nio/file/Path;>;
4 5 4 ex Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
Signature: (Ljava/nio/file/Path;Ljava/util/Set<Ljava/nio/file/Path;>;)V
MethodParameters:
Name Flags
root
excludes
static java.lang.String classFileWithoutSuffix(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
aload 0
invokevirtual java.lang.String.length:()I
ldc ".class"
invokevirtual java.lang.String.length:()I
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 result Ljava/lang/String;
MethodParameters:
Name Flags
result
protected void handleClassFileName(java.lang.String, char);
descriptor: (Ljava/lang/String;C)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "module-info"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
iload 2
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 0
getfield com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 3
invokevirtual com.oracle.svm.hosted.ImageClassLoader.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
5: goto 8
StackMap locals: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit java.lang.String int java.lang.String java.lang.Class
StackMap stack: java.lang.Throwable
6: astore 5
start local 5 7: aload 5
invokestatic com.oracle.svm.hosted.ImageClassLoader.handleClassLoadingError:(Ljava/lang/Throwable;)V
end local 5 8: StackMap locals:
StackMap stack:
aload 4
ifnull 10
9: aload 0
getfield com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 4
invokevirtual com.oracle.svm.hosted.ImageClassLoader.handleClass:(Ljava/lang/Class;)V
10: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;
0 11 1 strippedClassFileName Ljava/lang/String;
0 11 2 fileSystemSeparatorChar C
3 11 3 className Ljava/lang/String;
4 11 4 clazz Ljava/lang/Class<*>;
7 8 5 t Ljava/lang/Throwable;
Exception table:
from to target type
4 5 6 Class java.lang.Throwable
MethodParameters:
Name Flags
strippedClassFileName
fileSystemSeparatorChar
private void lambda$1(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit.loadClassesFromPath:(Ljava/nio/file/Path;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/AbstractNativeImageClassLoaderSupport$ClassInit;
0 1 1 path Ljava/nio/file/Path;
}
SourceFile: "AbstractNativeImageClassLoaderSupport.java"
NestHost: com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport
InnerClasses:
protected ClassInit = com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit of com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport
com.oracle.svm.hosted.AbstractNativeImageClassLoaderSupport$ClassInit$1
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles