class com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource
super_class: java.lang.Object
{
private final java.lang.String quotedCommand;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<java.lang.String> lines;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
private final com.oracle.svm.hosted.ImageClassLoader loader;
descriptor: Lcom/oracle/svm/hosted/ImageClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.file.Path configFilePath;
descriptor: Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
int lineNo;
descriptor: I
flags: (0x0000)
void <init>(com.oracle.svm.hosted.ImageClassLoader);
descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;)V
flags: (0x0000)
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.loader:Lcom/oracle/svm/hosted/ImageClassLoader;
2: ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 2
start local 2 3: ldc "bin"
iconst_1
anewarray java.lang.String
dup
iconst_0
invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
if_acmpne 4
ldc "java.exe"
goto 5
StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource com.oracle.svm.hosted.ImageClassLoader java.nio.file.Path
StackMap stack: java.lang.String java.lang.String[] java.lang.String[] int
4: ldc "java"
StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource com.oracle.svm.hosted.ImageClassLoader java.nio.file.Path
StackMap stack: java.lang.String java.lang.String[] java.lang.String[] int java.lang.String
5: aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 3
start local 3 6: aload 2
aload 3
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 4
start local 4 7: aload 4
invokestatic java.nio.file.Files.isExecutable:(Ljava/nio/file/Path;)Z
ifne 9
8: ldc "Java launcher %s does not exist or is not executable"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
9: StackMap locals: java.nio.file.Path java.nio.file.Path
StackMap stack:
aload 0
ldc "libgraal_jniconfig.txt"
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
10: iconst_4
anewarray java.lang.String
dup
iconst_0
aload 4
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
dup
iconst_1
ldc "-XX:+UnlockExperimentalVMOptions"
aastore
dup
iconst_2
ldc "-XX:+EnableJVMCI"
aastore
dup
iconst_3
new java.lang.StringBuilder
dup
ldc "-XX:JVMCILibDumpJNIConfig="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
astore 5
start local 5 11: aload 0
aload 5
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.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;
com/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
(Ljava/lang/String;)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
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.quotedCommand:Ljava/lang/String;
12: new java.lang.ProcessBuilder
dup
aload 5
invokespecial java.lang.ProcessBuilder.<init>:([Ljava/lang/String;)V
astore 6
start local 6 13: aload 6
iconst_1
invokevirtual java.lang.ProcessBuilder.redirectErrorStream:(Z)Ljava/lang/ProcessBuilder;
pop
14: aload 6
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 7
start local 7 15: goto 18
end local 7 StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource com.oracle.svm.hosted.ImageClassLoader java.nio.file.Path java.nio.file.Path java.nio.file.Path java.lang.String[] java.lang.ProcessBuilder
StackMap stack: java.io.IOException
16: astore 8
start local 8 17: ldc "Could not run command: %s%n%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.quotedCommand:Ljava/lang/String;
aastore
dup
iconst_1
aload 8
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 8 start local 7 18: StackMap locals: java.lang.Process
StackMap stack:
ldc "line.separator"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 19: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 7
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
20: invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
aload 8
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
21: astore 9
start local 9 22: aload 7
invokevirtual java.lang.Process.waitFor:()I
istore 10
start local 10 23: goto 26
end local 10 StackMap locals: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource com.oracle.svm.hosted.ImageClassLoader java.nio.file.Path java.nio.file.Path java.nio.file.Path java.lang.String[] java.lang.ProcessBuilder java.lang.Process java.lang.String java.lang.String
StackMap stack: java.lang.InterruptedException
24: pop
25: ldc "Interrupted waiting for command: %s%n%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.quotedCommand:Ljava/lang/String;
aastore
dup
iconst_1
aload 9
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
start local 10 26: StackMap locals: int
StackMap stack:
iload 10
ifeq 28
27: ldc "Command finished with exit value %d: %s%n%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 10
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.quotedCommand:Ljava/lang/String;
aastore
dup
iconst_2
aload 9
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
28: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
invokestatic java.nio.file.Files.readAllLines:(Ljava/nio/file/Path;)Ljava/util/List;
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lines:Ljava/util/List;
29: goto 33
StackMap locals:
StackMap stack: java.io.IOException
30: pop
31: aload 0
aconst_null
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
32: ldc "Reading JNI config in %s dumped by command: %s%n%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
aastore
dup
iconst_1
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.quotedCommand:Ljava/lang/String;
aastore
dup
iconst_2
aload 9
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
33: StackMap locals:
StackMap stack:
return
end local 10 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 34 0 this Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;
0 34 1 loader Lcom/oracle/svm/hosted/ImageClassLoader;
3 34 2 javaHomePath Ljava/nio/file/Path;
6 34 3 binJava Ljava/nio/file/Path;
7 34 4 javaExe Ljava/nio/file/Path;
11 34 5 command [Ljava/lang/String;
13 34 6 pb Ljava/lang/ProcessBuilder;
15 16 7 p Ljava/lang/Process;
18 34 7 p Ljava/lang/Process;
17 18 8 e Ljava/io/IOException;
19 34 8 nl Ljava/lang/String;
22 34 9 out Ljava/lang/String;
23 24 10 exitValue I
26 34 10 exitValue I
Exception table:
from to target type
14 15 16 Class java.io.IOException
22 23 24 Class java.lang.InterruptedException
28 29 30 Class java.io.IOException
MethodParameters:
Name Flags
loader
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
ifnull 6
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 6
1: aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
2: aload 0
aconst_null
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
3: goto 6
StackMap locals:
StackMap stack: java.io.IOException
4: astore 1
start local 1 5: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "WARNING: Cound not delete %s: %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
aastore
dup
iconst_1
aload 1
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;
5 6 1 e Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
java.lang.Class<?> findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.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 2
start local 2 1: aload 2
ifnonnull 3
2: aload 0
new java.lang.StringBuilder
dup
ldc "Class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;
0 4 1 name Ljava/lang/String;
1 4 2 c Ljava/lang/Class<*>;
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
void check(boolean, java.lang.String, java.lang.Object[]);
descriptor: (ZLjava/lang/String;[Ljava/lang/Object;)V
flags: (0x0080) ACC_VARARGS
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
ifne 2
1: aload 0
aload 2
aload 3
invokevirtual com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.error:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
pop
2: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;
0 3 1 condition Z
0 3 2 format Ljava/lang/String;
0 3 3 args [Ljava/lang/Object;
MethodParameters:
Name Flags
condition
format
args
com.oracle.svm.core.util.UserError$UserException error(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
flags: (0x0080) ACC_VARARGS
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
astore 3
start local 3 1: aload 0
aconst_null
putfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.configFilePath:Ljava/nio/file/Path;
2: aload 1
aload 2
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.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lines:Ljava/util/List;
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lineNo:I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 4: ldc "Line %d of %s: %s%n%s%n%s generated by command: %s"
bipush 6
anewarray java.lang.Object
dup
iconst_0
5: aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.lineNo:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 3
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
aastore
dup
iconst_2
aload 4
aastore
dup
iconst_3
aload 5
aastore
dup
iconst_4
aload 3
aastore
dup
iconst_5
aload 0
getfield com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource.quotedCommand:Ljava/lang/String;
aastore
6: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/graal/hotspot/libgraal/LibGraalFeature$JNIConfigSource;
0 7 1 format Ljava/lang/String;
0 7 2 args [Ljava/lang/Object;
1 7 3 path Ljava/nio/file/Path;
3 7 4 errorMessage Ljava/lang/String;
4 7 5 errorLine Ljava/lang/String;
MethodParameters:
Name Flags
format
args
private static java.lang.String lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: new java.lang.StringBuilder
dup
bipush 39
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 39
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 e Ljava/lang/String;
}
SourceFile: "LibGraalFeature.java"
NestHost: com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature
InnerClasses:
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
JNIConfigSource = com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature$JNIConfigSource of com.oracle.svm.graal.hotspot.libgraal.LibGraalFeature
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles