public class org.graalvm.component.installer.SystemUtils
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.component.installer.SystemUtils
super_class: java.lang.Object
{
public static final char DELIMITER_CHAR;
descriptor: C
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 47
public static final java.lang.String DELIMITER;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "/"
private static final java.lang.String DOT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "."
private static final java.lang.String DOTDOT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ".."
private static final java.lang.String SPLIT_DELIMITER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.regex.Pattern OLD_VERSION_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static boolean licenseTracking;
descriptor: Z
flags: (0x0008) ACC_STATIC
private static volatile int[] $SWITCH_TABLE$org$graalvm$component$installer$SystemUtils$OS;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "/"
invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
putstatic org.graalvm.component.installer.SystemUtils.SPLIT_DELIMITER:Ljava/lang/String;
1: ldc "([0-9]+\\.[0-9]+(\\.[0-9]+)?(\\.[0-9]+)?)(-([a-z]+)([0-9]+)?)?"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic org.graalvm.component.installer.SystemUtils.OLD_VERSION_PATTERN:Ljava/util/regex/Pattern;
2: iconst_0
putstatic org.graalvm.component.installer.SystemUtils.licenseTracking:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/SystemUtils;
public static java.nio.file.Path fromCommonString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getstatic org.graalvm.component.installer.SystemUtils.SPLIT_DELIMITER:Ljava/lang/String;
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 1
start local 1 1: aload 1
arraylength
iconst_1
if_icmpne 3
2: aload 1
iconst_0
aaload
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
3: StackMap locals: java.lang.String[]
StackMap stack:
aload 1
arraylength
iconst_1
isub
istore 2
start local 2 4: aload 1
iconst_0
aaload
astore 3
start local 3 5: aload 1
iconst_1
aload 1
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 1
iload 2
ldc ""
aastore
7: aload 3
aload 1
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 p Ljava/lang/String;
1 8 1 comps [Ljava/lang/String;
4 8 2 l I
5 8 3 s Ljava/lang/String;
MethodParameters:
Name Flags
p
public static java.nio.file.Path fromUserString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 p Ljava/lang/String;
MethodParameters:
Name Flags
p
public static java.nio.file.Path fileName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
ifge 2
1: bipush 47
getstatic java.io.File.separatorChar:C
if_icmpeq 3
aload 0
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.indexOf:(I)I
iflt 3
2: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 0
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
ldc "."
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
ldc ".."
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 0
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
public static java.lang.String toCommonPath(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, 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: aload 0
invokeinterface java.nio.file.Path.iterator:()Ljava/util/Iterator;
astore 4
goto 11
StackMap locals: java.nio.file.Path java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 3
start local 3 4: iload 2
ifeq 6
5: aload 1
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: StackMap locals: java.nio.file.Path java.lang.StringBuilder int java.nio.file.Path java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 5
start local 5 7: getstatic java.io.File.separatorChar:C
bipush 47
if_icmpeq 9
8: aload 5
getstatic java.io.File.separator:Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 5
9: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: iconst_1
istore 2
end local 5 end local 3 11: StackMap locals: java.nio.file.Path java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
12: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 p Ljava/nio/file/Path;
1 13 1 sb Ljava/lang/StringBuilder;
2 13 2 next Z
4 11 3 comp Ljava/nio/file/Path;
7 11 5 compS Ljava/lang/String;
MethodParameters:
Name Flags
p
public static boolean isWindows();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnull 2
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc "windows"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 2
iconst_1
ireturn
StackMap locals: java.lang.String
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 osName Ljava/lang/String;
public static boolean isLinux();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnull 2
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc "linux"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 2
iconst_1
ireturn
StackMap locals: java.lang.String
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 osName Ljava/lang/String;
public static boolean isMac();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "os.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnull 2
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
ldc "mac"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 2
iconst_1
ireturn
StackMap locals: java.lang.String
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 osName Ljava/lang/String;
public static java.nio.file.Path fromCommonRelative(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aconst_null
aload 0
invokestatic org.graalvm.component.installer.SystemUtils.checkRelativePath:(Ljava/nio/file/Path;Ljava/lang/String;)[Ljava/lang/String;
invokestatic org.graalvm.component.installer.SystemUtils.fromArray:([Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Ljava/lang/String;
MethodParameters:
Name Flags
p
private static java.nio.file.Path fromArray(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
if_icmpne 2
1: aload 0
iconst_0
aaload
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iconst_1
isub
istore 1
start local 1 3: aload 0
iconst_0
aaload
astore 2
start local 2 4: aload 0
iconst_1
aload 0
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 0
iload 1
ldc ""
aastore
6: aload 2
aload 0
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 comps [Ljava/lang/String;
3 7 1 l I
4 7 2 s Ljava/lang/String;
MethodParameters:
Name Flags
comps
public static java.nio.file.Path resolveRelative(java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.graalvm.component.installer.SystemUtils.checkRelativePath:(Ljava/nio/file/Path;Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 5: aload 0
aload 2
invokestatic org.graalvm.component.installer.SystemUtils.fromArray:([Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 baseDir Ljava/nio/file/Path;
0 6 1 p Ljava/lang/String;
5 6 2 comps [Ljava/lang/String;
MethodParameters:
Name Flags
baseDir
p
public static java.nio.file.Path fromCommonRelative(java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 4
3: aload 1
invokestatic org.graalvm.component.installer.SystemUtils.fromCommonRelative:(Ljava/lang/String;)Ljava/nio/file/Path;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.graalvm.component.installer.SystemUtils.checkRelativePath:(Ljava/nio/file/Path;Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 5: aload 0
aload 2
invokestatic org.graalvm.component.installer.SystemUtils.fromArray:([Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolveSibling:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 base Ljava/nio/file/Path;
0 6 1 p Ljava/lang/String;
5 6 2 comps [Ljava/lang/String;
MethodParameters:
Name Flags
base
p
public static void checkCommonRelative(java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.graalvm.component.installer.SystemUtils.checkRelativePath:(Ljava/nio/file/Path;Ljava/lang/String;)[Ljava/lang/String;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 base Ljava/nio/file/Path;
0 4 1 p Ljava/lang/String;
MethodParameters:
Name Flags
base
p
private static java.lang.String[] checkRelativePath(java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Absolute path"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
getstatic org.graalvm.component.installer.SystemUtils.SPLIT_DELIMITER:Ljava/lang/String;
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 3: aload 0
ifnonnull 4
iconst_0
goto 5
StackMap locals: java.lang.String[]
StackMap stack:
4: aload 0
invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.getNameCount:()I
iconst_1
isub
StackMap locals:
StackMap stack: int
5: istore 3
start local 3 6: iconst_0
istore 4
start local 4 7: iconst_0
istore 5
start local 5 8: aload 2
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 23
StackMap locals: java.nio.file.Path java.lang.String java.lang.String[] int int int top int int java.lang.String[]
StackMap stack:
9: aload 9
iload 7
aaload
astore 6
start local 6 10: aload 6
invokevirtual java.lang.String.isEmpty:()Z
ifeq 13
11: iinc 4 1
12: goto 22
13: StackMap locals: java.nio.file.Path java.lang.String java.lang.String[] int int int java.lang.String int int java.lang.String[]
StackMap stack:
ldc ".."
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
14: iinc 3 -1
15: iload 3
ifge 18
16: new java.lang.IllegalArgumentException
dup
ldc "Relative path reaches above root"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
iinc 3 1
18: StackMap locals:
StackMap stack:
iload 5
iload 4
if_icmpge 20
19: aload 2
iload 5
aload 2
iload 4
aaload
aastore
20: StackMap locals:
StackMap stack:
iinc 4 1
21: iinc 5 1
end local 6 22: StackMap locals: java.nio.file.Path java.lang.String java.lang.String[] int int int top int int java.lang.String[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
iload 8
if_icmplt 9
24: iload 4
iload 5
if_icmpne 26
25: aload 2
areturn
26: StackMap locals: java.nio.file.Path java.lang.String java.lang.String[] int int int
StackMap stack:
iload 5
anewarray java.lang.String
astore 6
start local 6 27: aload 2
iconst_0
aload 6
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: aload 6
areturn
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 29 0 base Ljava/nio/file/Path;
0 29 1 p Ljava/lang/String;
3 29 2 comps [Ljava/lang/String;
6 29 3 d I
7 29 4 fromIndex I
8 29 5 toIndex I
10 22 6 s Ljava/lang/String;
27 29 6 newcomps [Ljava/lang/String;
MethodParameters:
Name Flags
base
p
public static java.lang.String normalizeOldVersions(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.component.installer.SystemUtils.OLD_VERSION_PATTERN:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 1
start local 1 3: aload 1
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 5
4: aload 0
areturn
5: StackMap locals: java.util.regex.Matcher
StackMap stack:
aload 1
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 2
start local 2 6: aload 1
iconst_5
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 3
start local 3 7: aload 1
bipush 6
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 4
start local 4 8: aload 2
ldc "0."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 10
9: aload 0
areturn
10: StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 3
ifnonnull 14
11: aload 1
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
ifnonnull 13
12: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
13: StackMap locals:
StackMap stack:
aload 2
areturn
14: StackMap locals:
StackMap stack:
aload 1
iconst_3
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
ifnonnull 16
15: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
16: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "-0."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
ifnonnull 17
ldc ""
goto 18
StackMap locals:
StackMap stack: java.lang.StringBuilder
17: new java.lang.StringBuilder
dup
ldc "."
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;
StackMap locals: java.lang.String java.util.regex.Matcher java.lang.String java.lang.String java.lang.String
StackMap stack: java.lang.StringBuilder java.lang.String
18: 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 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 v Ljava/lang/String;
3 19 1 m Ljava/util/regex/Matcher;
6 19 2 numbers Ljava/lang/String;
7 19 3 rel Ljava/lang/String;
8 19 4 relNo Ljava/lang/String;
MethodParameters:
Name Flags
v
public static java.nio.file.Path getGraalVMJDKRoot(org.graalvm.component.installer.model.ComponentRegistry);
descriptor: (Lorg/graalvm/component/installer/model/ComponentRegistry;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "macos"
1: aload 0
invokevirtual org.graalvm.component.installer.model.ComponentRegistry.getGraalCapabilities:()Ljava/util/Map;
ldc "os_name"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
2: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
3: ifeq 5
4: ldc "Contents"
iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "Home"
aastore
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
5: StackMap locals:
StackMap stack:
ldc ""
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 reg Lorg/graalvm/component/installer/model/ComponentRegistry;
MethodParameters:
Name Flags
reg
public static java.lang.String findFileOwner(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
invokevirtual java.nio.file.FileSystem.provider:()Ljava/nio/file/spi/FileSystemProvider;
aload 0
ldc Ljava/nio/file/attribute/PosixFileAttributeView;
iconst_0
anewarray java.nio.file.LinkOption
invokevirtual java.nio.file.spi.FileSystemProvider.getFileAttributeView:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
checkcast java.nio.file.attribute.PosixFileAttributeView
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokeinterface java.nio.file.attribute.PosixFileAttributeView.getOwner:()Ljava/nio/file/attribute/UserPrincipal;
invokeinterface java.nio.file.attribute.UserPrincipal.getName:()Ljava/lang/String;
areturn
3: StackMap locals: java.nio.file.attribute.PosixFileAttributeView
StackMap stack:
aload 0
invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
invokevirtual java.nio.file.FileSystem.provider:()Ljava/nio/file/spi/FileSystemProvider;
aload 0
ldc Ljava/nio/file/attribute/AclFileAttributeView;
iconst_0
anewarray java.nio.file.LinkOption
invokevirtual java.nio.file.spi.FileSystemProvider.getFileAttributeView:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/FileAttributeView;
checkcast java.nio.file.attribute.AclFileAttributeView
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
invokeinterface java.nio.file.attribute.AclFileAttributeView.getOwner:()Ljava/nio/file/attribute/UserPrincipal;
invokeinterface java.nio.file.attribute.UserPrincipal.getName:()Ljava/lang/String;
areturn
6: StackMap locals: java.nio.file.attribute.AclFileAttributeView
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 file Ljava/nio/file/Path;
1 7 1 posix Ljava/nio/file/attribute/PosixFileAttributeView;
4 7 2 acl Ljava/nio/file/attribute/AclFileAttributeView;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
public static boolean isLicenseTrackingEnabled();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.graalvm.component.installer.SystemUtils.licenseTracking:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.String parseURLParameters(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=13, args_size=2
start local 0 start local 1 0: aload 0
bipush 63
invokevirtual java.lang.String.indexOf:(I)I
istore 2
start local 2 1: iload 2
iconst_m1
if_icmpne 3
2: aload 0
areturn
3: StackMap locals: int
StackMap stack:
aload 0
iload 2
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 4: aload 3
ldc "&"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 20
StackMap locals: java.lang.String java.util.Map int java.lang.String top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 4
ldc "="
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 8
start local 8 7: aload 8
iconst_0
aaload
ldc "UTF-8"
invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 9
start local 9 8: aload 9
invokevirtual java.lang.String.isEmpty:()Z
ifeq 10
9: goto 19
10: StackMap locals: java.lang.String java.util.Map int java.lang.String java.lang.String int int java.lang.String[] java.lang.String[] java.lang.String
StackMap stack:
aload 8
arraylength
iconst_1
if_icmple 11
aload 8
iconst_1
aaload
ldc "UTF-8"
invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
goto 12
StackMap locals:
StackMap stack:
11: ldc ""
StackMap locals:
StackMap stack: java.lang.String
12: astore 10
start local 10 13: aload 1
aload 9
aload 10
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: goto 19
end local 10 end local 9 StackMap locals: java.lang.String java.util.Map int java.lang.String java.lang.String int int java.lang.String[] java.lang.String[]
StackMap stack: java.io.UnsupportedEncodingException
15: astore 11
start local 11 16: new java.net.MalformedURLException
dup
aload 11
invokevirtual java.io.UnsupportedEncodingException.getLocalizedMessage:()Ljava/lang/String;
invokespecial java.net.MalformedURLException.<init>:(Ljava/lang/String;)V
astore 12
start local 12 17: aload 12
aload 11
invokevirtual java.net.MalformedURLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
18: aload 12
athrow
end local 12 end local 11 end local 8 end local 4 19: StackMap locals: java.lang.String java.util.Map int java.lang.String top int int java.lang.String[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
20: iload 5
iload 6
if_icmplt 5
21: aload 0
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 s Ljava/lang/String;
0 22 1 params Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
1 22 2 q I
4 22 3 queryString Ljava/lang/String;
6 19 4 parSpec Ljava/lang/String;
7 19 8 nameAndVal [Ljava/lang/String;
8 15 9 n Ljava/lang/String;
13 15 10 v Ljava/lang/String;
16 19 11 ex Ljava/io/UnsupportedEncodingException;
17 19 12 newEx Ljava/net/MalformedURLException;
Exception table:
from to target type
7 9 15 Class java.io.UnsupportedEncodingException
10 14 15 Class java.io.UnsupportedEncodingException
Exceptions:
throws java.net.MalformedURLException
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljava/lang/String;
MethodParameters:
Name Flags
s
params
public static int getJavaMajorVersion(org.graalvm.component.installer.CommandInput);
descriptor: (Lorg/graalvm/component/installer/CommandInput;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface org.graalvm.component.installer.CommandInput.getLocalRegistry:()Lorg/graalvm/component/installer/model/ComponentRegistry;
ifnull 1
aload 0
invokeinterface org.graalvm.component.installer.CommandInput.getLocalRegistry:()Lorg/graalvm/component/installer/model/ComponentRegistry;
invokevirtual org.graalvm.component.installer.model.ComponentRegistry.getJavaVersion:()Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: java.lang.String
2: astore 1
start local 1 3: aload 1
ifnonnull 5
4: aload 0
ldc "java.specification.version"
iconst_1
invokeinterface org.graalvm.component.installer.CommandInput.getParameter:(Ljava/lang/String;Z)Ljava/lang/String;
pop
5: StackMap locals: java.lang.String
StackMap stack:
aload 1
ifnull 7
6: aload 1
invokestatic org.graalvm.component.installer.SystemUtils.interpretJavaMajorVersion:(Ljava/lang/String;)I
ireturn
7: StackMap locals:
StackMap stack:
invokestatic org.graalvm.component.installer.SystemUtils.getJavaMajorVersion:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 cmd Lorg/graalvm/component/installer/CommandInput;
3 8 1 v Ljava/lang/String;
MethodParameters:
Name Flags
cmd
public static int getJavaMajorVersion();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: ldc "java.specification.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
invokestatic org.graalvm.component.installer.SystemUtils.interpretJavaMajorVersion:(Ljava/lang/String;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 2 0 v Ljava/lang/String;
public static int interpretJavaMajorVersion(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
ldc "1."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 3
1: aload 0
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
start local 1 2: goto 4
end local 1 3: StackMap locals:
StackMap stack:
aload 0
astore 1
start local 1 4: StackMap locals: java.lang.String
StackMap stack:
aload 1
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
5: ireturn
6: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 v Ljava/lang/String;
2 3 1 s Ljava/lang/String;
4 8 1 s Ljava/lang/String;
Exception table:
from to target type
4 5 6 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
v
public static java.nio.file.Path getRuntimeLibDir(java.nio.file.Path, boolean);
descriptor: (Ljava/nio/file/Path;Z)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.graalvm.component.installer.SystemUtils.getRuntimeBaseDir:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 3
start local 3 1: invokestatic org.graalvm.component.installer.SystemUtils.$SWITCH_TABLE$org$graalvm$component$installer$SystemUtils$OS:()[I
invokestatic org.graalvm.component.installer.SystemUtils$OS.get:()Lorg/graalvm/component/installer/SystemUtils$OS;
invokevirtual org.graalvm.component.installer.SystemUtils$OS.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 11
2: 2
3: 9
4: 13
default: 13
}
2: StackMap locals: java.nio.file.Path int top java.nio.file.Path
StackMap stack:
ldc "os.arch"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 3: aload 3
ldc "lib"
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.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 5
start local 5 4: iload 1
ifeq 5
invokestatic org.graalvm.component.installer.SystemUtils.getJavaMajorVersion:()I
bipush 10
if_icmplt 7
5: StackMap locals: java.lang.String java.nio.file.Path
StackMap stack:
aload 5
astore 2
start local 2 6: goto 14
end local 2 7: StackMap locals:
StackMap stack:
aload 5
aload 4
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.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 2
start local 2 8: goto 14
end local 5 end local 4 end local 2 9: StackMap locals:
StackMap stack:
aload 3
ldc "lib"
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.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 2
start local 2 10: goto 14
end local 2 11: StackMap locals:
StackMap stack:
aload 3
ldc "bin"
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.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 2
start local 2 12: goto 14
end local 2 13: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 2 14: StackMap locals: java.nio.file.Path int java.nio.file.Path java.nio.file.Path
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 graalPath Ljava/nio/file/Path;
0 15 1 archDir Z
6 7 2 newLibPath Ljava/nio/file/Path;
8 9 2 newLibPath Ljava/nio/file/Path;
10 11 2 newLibPath Ljava/nio/file/Path;
12 13 2 newLibPath Ljava/nio/file/Path;
14 15 2 newLibPath Ljava/nio/file/Path;
1 15 3 base Ljava/nio/file/Path;
3 9 4 arch Ljava/lang/String;
4 9 5 temp Ljava/nio/file/Path;
MethodParameters:
Name Flags
graalPath
archDir
public static java.nio.file.Path getRuntimeBaseDir(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic org.graalvm.component.installer.SystemUtils.getJavaMajorVersion:()I
istore 1
start local 1 1: iload 1
bipush 10
if_icmplt 3
2: aload 0
areturn
3: StackMap locals: int
StackMap stack:
iload 1
ifle 5
4: aload 0
ldc "jre"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
areturn
5: StackMap locals:
StackMap stack:
aload 0
ldc "jre"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 2
start local 2 6: aload 2
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 8
aload 2
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 8
7: aload 2
areturn
8: StackMap locals: java.nio.file.Path
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 jdkInstallDir Ljava/nio/file/Path;
1 9 1 v I
6 9 2 jre Ljava/nio/file/Path;
MethodParameters:
Name Flags
jdkInstallDir
public static java.nio.file.Path copySubtree(java.nio.file.Path, java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new org.graalvm.component.installer.SystemUtils$CopyDirVisitor
dup
aload 0
aload 1
invokespecial org.graalvm.component.installer.SystemUtils$CopyDirVisitor.<init>:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
pop
1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 from Ljava/nio/file/Path;
0 2 1 to Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
public static byte[] toHashBytes(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
invokevirtual java.lang.String.length:()I
iconst_4
if_icmpge 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_2
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 4: iload 2
bipush 48
if_icmplt 5
iload 2
bipush 57
if_icmple 7
StackMap locals: int
StackMap stack:
5: iload 2
bipush 65
if_icmplt 6
iload 2
bipush 70
if_icmple 7
StackMap locals:
StackMap stack:
6: iload 2
bipush 97
if_icmplt 8
iload 2
bipush 102
if_icmpgt 8
StackMap locals:
StackMap stack:
7: iconst_0
goto 9
StackMap locals:
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: istore 3
start local 3 10: iload 3
ifeq 16
11: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
iadd
iconst_3
irem
ifne 12
iconst_1
goto 13
StackMap locals: int
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 4
start local 4 14: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
iadd
iconst_3
idiv
istore 5
start local 5 15: goto 20
end local 5 end local 4 16: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
iconst_2
irem
ifne 17
iconst_1
goto 18
StackMap locals:
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 4
start local 4 19: aload 1
invokevirtual java.lang.String.length:()I
iconst_1
iadd
iconst_2
idiv
istore 5
start local 5 20: StackMap locals: int int
StackMap stack:
iload 4
ifne 22
21: aconst_null
areturn
22: StackMap locals:
StackMap stack:
iload 5
newarray 8
astore 6
start local 6 23: iconst_0
istore 7
start local 7 24: iconst_0
istore 8
start local 8 25: goto 36
26: StackMap locals: byte[] int int
StackMap stack:
aload 1
iload 8
iload 8
iconst_2
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
bipush 16
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
istore 9
start local 9 27: goto 30
end local 9 StackMap locals:
StackMap stack: java.lang.NumberFormatException
28: pop
29: aconst_null
areturn
start local 9 30: StackMap locals: int
StackMap stack:
iload 9
ifge 32
31: aconst_null
areturn
32: StackMap locals:
StackMap stack:
aload 6
iload 7
iinc 7 1
iload 9
i2b
bastore
33: iload 3
ifeq 35
34: iinc 8 1
end local 9 35: StackMap locals:
StackMap stack:
iinc 8 2
StackMap locals:
StackMap stack:
36: iload 8
iconst_1
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 26
end local 8 37: aload 6
areturn
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 38 0 hashS Ljava/lang/String;
1 38 1 val Ljava/lang/String;
4 38 2 c C
10 38 3 divided Z
14 16 4 lenOK Z
19 38 4 lenOK Z
15 16 5 s I
20 38 5 s I
23 38 6 digest [B
24 38 7 dI I
25 37 8 i I
27 28 9 b I
30 35 9 b I
Exception table:
from to target type
26 27 28 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
hashS
public static java.lang.String fingerPrint(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokestatic org.graalvm.component.installer.SystemUtils.fingerPrint:([BZ)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 digest [B
MethodParameters:
Name Flags
digest
public static java.lang.String fingerPrint(byte[], boolean);
descriptor: ([BZ)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
arraylength
iconst_3
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 9
5: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 1
ifeq 7
iload 3
ifle 7
6: aload 2
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: StackMap locals:
StackMap stack:
aload 2
ldc "%02x"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
iload 3
baload
sipush 255
iand
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
aload 0
arraylength
if_icmplt 5
end local 3 10: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 digest [B
0 11 1 delimiter Z
3 11 2 sb Ljava/lang/StringBuilder;
4 10 3 i I
MethodParameters:
Name Flags
digest
delimiter
public static java.lang.String digestString(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 2
start local 2 1: aload 2
aload 0
invokevirtual java.lang.String.getBytes:()[B
invokevirtual java.security.MessageDigest.update:([B)V
2: aload 2
invokevirtual java.security.MessageDigest.digest:()[B
astore 3
start local 3 3: aload 3
iload 1
invokestatic org.graalvm.component.installer.SystemUtils.fingerPrint:([BZ)Ljava/lang/String;
4: areturn
end local 3 end local 2 5: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 2
start local 2 6: new org.graalvm.component.installer.FailedOperationException
dup
aload 2
invokevirtual java.security.NoSuchAlgorithmException.getLocalizedMessage:()Ljava/lang/String;
aload 2
invokespecial org.graalvm.component.installer.FailedOperationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 s Ljava/lang/String;
0 7 1 delimiters Z
1 5 2 dg Ljava/security/MessageDigest;
3 5 3 digest [B
6 7 2 ex Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
0 4 5 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
s
delimiters
public static java.lang.String patternOsName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 1
start local 1 3: aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
-1338956761: 4
103652211: 5
default: 7
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
4: aload 2
ldc "darwin"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
StackMap locals:
StackMap stack:
5: aload 2
ldc "macos"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
6: StackMap locals:
StackMap stack:
ldc "(:?darwin|macos)"
areturn
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 os Ljava/lang/String;
3 8 1 lc Ljava/lang/String;
MethodParameters:
Name Flags
os
public static java.lang.String patternOsArch(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 1
start local 1 3: aload 1
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
-806050265: 4
92926582: 5
default: 7
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
4: aload 2
ldc "x86_64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
StackMap locals:
StackMap stack:
5: aload 2
ldc "amd64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
goto 7
6: StackMap locals:
StackMap stack:
ldc "(:?amd64|x86_64)"
areturn
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 arch Ljava/lang/String;
3 8 1 lc Ljava/lang/String;
MethodParameters:
Name Flags
arch
public static java.lang.String normalizeArchitecture(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
-806050265: 3
default: 5
}
StackMap locals: java.lang.String
StackMap stack:
3: aload 2
ldc "x86_64"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
goto 5
4: StackMap locals:
StackMap stack:
ldc "amd64"
areturn
5: StackMap locals:
StackMap stack:
aload 1
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 os Ljava/lang/String;
0 6 1 arch Ljava/lang/String;
MethodParameters:
Name Flags
os
arch
public static java.lang.String normalizeOSName(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
-1338956761: 3
default: 5
}
StackMap locals: java.lang.String
StackMap stack:
3: aload 2
ldc "darwin"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
goto 5
4: StackMap locals:
StackMap stack:
ldc "macos"
areturn
5: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 os Ljava/lang/String;
0 6 1 arch Ljava/lang/String;
MethodParameters:
Name Flags
os
arch
public static byte[] computeFileDigest(java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
iconst_1
anewarray java.nio.file.OpenOption
dup
iconst_0
getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
aastore
invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
astore 4
start local 4 2: sipush 4096
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 5
start local 5 3: aload 0
invokestatic java.nio.file.Files.size:(Ljava/nio/file/Path;)J
lstore 6
start local 6 4: ldc "SHA-256"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 8
start local 8 5: goto 15
6: StackMap locals: java.nio.file.Path java.lang.String java.lang.Throwable java.lang.Throwable java.nio.channels.SeekableByteChannel java.nio.ByteBuffer long java.security.MessageDigest
StackMap stack:
aload 5
invokevirtual java.nio.ByteBuffer.limit:()I
i2l
lload 6
lcmp
ifle 8
7: aload 5
lload 6
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
8: StackMap locals:
StackMap stack:
aload 4
aload 5
invokeinterface java.nio.channels.SeekableByteChannel.read:(Ljava/nio/ByteBuffer;)I
istore 9
start local 9 9: iload 9
ifge 11
10: goto 16
11: StackMap locals: int
StackMap stack:
aload 5
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
12: aload 8
aload 5
invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
13: aload 5
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
14: lload 6
iload 9
i2l
lsub
lstore 6
end local 9 15: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
ifgt 6
16: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.security.MessageDigest.digest:()[B
17: aload 4
ifnull 18
aload 4
invokeinterface java.nio.channels.SeekableByteChannel.close:()V
18: StackMap locals:
StackMap stack: byte[]
areturn
end local 8 end local 6 end local 5 StackMap locals: java.nio.file.Path java.lang.String java.lang.Throwable java.lang.Throwable java.nio.channels.SeekableByteChannel
StackMap stack: java.lang.Throwable
19: astore 2
20: aload 4
ifnull 21
aload 4
invokeinterface java.nio.channels.SeekableByteChannel.close:()V
end local 4 StackMap locals:
StackMap stack:
21: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 3
aload 2
ifnonnull 23
aload 3
astore 2
goto 24
StackMap locals:
StackMap stack:
23: aload 2
aload 3
if_acmpeq 24
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
24: aload 2
athrow
StackMap locals: java.nio.file.Path java.lang.String
StackMap stack: java.security.NoSuchAlgorithmException
25: astore 2
start local 2 26: new java.io.IOException
dup
aload 2
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 localFile Ljava/nio/file/Path;
0 27 1 digestAlgo Ljava/lang/String;
2 21 4 s Ljava/nio/channels/SeekableByteChannel;
3 19 5 bb Ljava/nio/ByteBuffer;
4 19 6 size J
5 19 8 dg Ljava/security/MessageDigest;
9 15 9 r I
26 27 2 ex Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
2 17 19 any
1 18 22 any
19 22 22 any
0 18 25 Class java.security.NoSuchAlgorithmException
19 25 25 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
localFile
digestAlgo
public static boolean isRemotePath(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.net.URL
dup
aload 0
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
astore 2
start local 2 2: ldc "file"
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: new java.lang.IllegalArgumentException
dup
ldc "Absolute file:// URLs are not permitted."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.net.URL java.lang.String
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 5: StackMap locals: java.lang.String
StackMap stack: java.net.MalformedURLException
pop
6: aload 0
invokestatic org.graalvm.component.installer.SystemUtils.fromCommonRelative:(Ljava/lang/String;)Ljava/nio/file/Path;
pop
7: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 pathOrURL Ljava/lang/String;
1 5 1 u Ljava/net/URL;
2 5 2 proto Ljava/lang/String;
Exception table:
from to target type
0 4 5 Class java.net.MalformedURLException
MethodParameters:
Name Flags
pathOrURL
static int[] $SWITCH_TABLE$org$graalvm$component$installer$SystemUtils$OS();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.graalvm.component.installer.SystemUtils.$SWITCH_TABLE$org$graalvm$component$installer$SystemUtils$OS:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.graalvm.component.installer.SystemUtils$OS.values:()[Lorg/graalvm/component/installer/SystemUtils$OS;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.graalvm.component.installer.SystemUtils$OS.LINUX:Lorg/graalvm/component/installer/SystemUtils$OS;
invokevirtual org.graalvm.component.installer.SystemUtils$OS.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.graalvm.component.installer.SystemUtils$OS.MAC:Lorg/graalvm/component/installer/SystemUtils$OS;
invokevirtual org.graalvm.component.installer.SystemUtils$OS.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.graalvm.component.installer.SystemUtils$OS.UNKNOWN:Lorg/graalvm/component/installer/SystemUtils$OS;
invokevirtual org.graalvm.component.installer.SystemUtils$OS.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.graalvm.component.installer.SystemUtils$OS.WINDOWS:Lorg/graalvm/component/installer/SystemUtils$OS;
invokevirtual org.graalvm.component.installer.SystemUtils$OS.ordinal:()I
iconst_1
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic org.graalvm.component.installer.SystemUtils.$SWITCH_TABLE$org$graalvm$component$installer$SystemUtils$OS:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
SourceFile: "SystemUtils.java"
NestMembers:
org.graalvm.component.installer.SystemUtils$CopyDirVisitor org.graalvm.component.installer.SystemUtils$OS
InnerClasses:
public CopyDirVisitor = org.graalvm.component.installer.SystemUtils$CopyDirVisitor of org.graalvm.component.installer.SystemUtils
public final OS = org.graalvm.component.installer.SystemUtils$OS of org.graalvm.component.installer.SystemUtils