public final class org.graalvm.component.installer.remote.FileDownloader
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.component.installer.remote.FileDownloader
super_class: java.lang.Object
{
private static final int TRANSFER_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2048
private static final long MIN_PROGRESS_THRESHOLD;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String fileDescription;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.net.URL sourceURL;
descriptor: Ljava/net/URL;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.component.installer.Feedback feedback;
descriptor: Lorg/graalvm/component/installer/Feedback;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.io.File downloadDir;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.io.File localFile;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private long size;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private static boolean deleteTemporary;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private boolean verbose;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static volatile java.io.File tempDir;
descriptor: Ljava/io/File;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private boolean displayProgress;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] shaDigest;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
long sizeThreshold;
descriptor: J
flags: (0x0000)
private final java.util.Map<java.lang.String, java.lang.String> ;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private java.util.function.Consumer<java.nio.channels.SeekableByteChannel> dataInterceptor;
descriptor: Ljava/util/function/Consumer;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/function/Consumer<Ljava/nio/channels/SeekableByteChannel;>;
private org.graalvm.component.installer.URLConnectionFactory connectionFactory;
descriptor: Lorg/graalvm/component/installer/URLConnectionFactory;
flags: (0x0002) ACC_PRIVATE
private boolean simpleOutput;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String digestAlgorithm;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
java.lang.StringBuilder progressString;
descriptor: Ljava/lang/StringBuilder;
flags: (0x0000)
java.lang.String backspaceString;
descriptor: Ljava/lang/String;
flags: (0x0000)
int startPos;
descriptor: I
flags: (0x0000)
int signCount;
descriptor: I
flags: (0x0000)
long received;
descriptor: J
flags: (0x0000)
char signChar;
descriptor: C
flags: (0x0000)
java.security.MessageDigest fileDigest;
descriptor: Ljava/security/MessageDigest;
flags: (0x0000)
byte[] receivedDigest;
descriptor: [B
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "org.graalvm.component.installer.minDownloadFeedback"
ldc 1048576
invokestatic java.lang.Long.getLong:(Ljava/lang/String;J)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
putstatic org.graalvm.component.installer.remote.FileDownloader.MIN_PROGRESS_THRESHOLD:J
1: getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.toString:()Ljava/lang/String;
ldc "org.graalvm.component.installer.deleteTemporary"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: putstatic org.graalvm.component.installer.remote.FileDownloader.deleteTemporary:Z
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, java.net.URL, org.graalvm.component.installer.Feedback);
descriptor: (Ljava/lang/String;Ljava/net/URL;Lorg/graalvm/component/installer/Feedback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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
getstatic org.graalvm.component.installer.remote.FileDownloader.MIN_PROGRESS_THRESHOLD:J
putfield org.graalvm.component.installer.remote.FileDownloader.sizeThreshold:J
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.graalvm.component.installer.remote.FileDownloader.requestHeaders:Ljava/util/Map;
3: aload 0
ldc "SHA-256"
putfield org.graalvm.component.installer.remote.FileDownloader.digestAlgorithm:Ljava/lang/String;
4: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.fileDescription:Ljava/lang/String;
5: aload 0
aload 2
putfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
6: aload 0
aload 3
ldc Lorg/graalvm/component/installer/remote/FileDownloader;
invokeinterface org.graalvm.component.installer.Feedback.withBundle:(Ljava/lang/Class;)Lorg/graalvm/component/installer/Feedback;
putfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 8 1 fileDescription Ljava/lang/String;
0 8 2 sourceURL Ljava/net/URL;
0 8 3 feedback Lorg/graalvm/component/installer/Feedback;
MethodParameters:
Name Flags
fileDescription
sourceURL
feedback
public void setShaDigest(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.shaDigest:[B
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 shaDigest [B
MethodParameters:
Name Flags
shaDigest
public java.io.File getDownloadDir();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.downloadDir:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
public void setDownloadDir(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.downloadDir:Ljava/io/File;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 downloadDir Ljava/io/File;
MethodParameters:
Name Flags
downloadDir
public static void setDeleteTemporary(boolean);
descriptor: (Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
putstatic org.graalvm.component.installer.remote.FileDownloader.deleteTemporary:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 deleteTemporary Z
MethodParameters:
Name Flags
deleteTemporary
public void setVerbose(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.graalvm.component.installer.remote.FileDownloader.verbose:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 verbose Z
MethodParameters:
Name Flags
verbose
public void setDisplayProgress(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 displayProgress Z
MethodParameters:
Name Flags
displayProgress
public void (java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.requestHeaders:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 header Ljava/lang/String;
0 2 2 val Ljava/lang/String;
MethodParameters:
Name Flags
header
val
public java.lang.String getDigestAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.digestAlgorithm:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
public void setDigestAlgorithm(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.digestAlgorithm:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 digestAlgorithm Ljava/lang/String;
MethodParameters:
Name Flags
digestAlgorithm
public static synchronized java.io.File createTempDir();
descriptor: ()Ljava/io/File;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=0
0: getstatic org.graalvm.component.installer.remote.FileDownloader.tempDir:Ljava/io/File;
ifnonnull 4
1: ldc "graalvm_install"
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempDirectory:(Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
astore 0
start local 0 2: aload 0
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
putstatic org.graalvm.component.installer.remote.FileDownloader.tempDir:Ljava/io/File;
3: getstatic org.graalvm.component.installer.remote.FileDownloader.tempDir:Ljava/io/File;
invokevirtual java.io.File.deleteOnExit:()V
end local 0 4: StackMap locals:
StackMap stack:
getstatic org.graalvm.component.installer.remote.FileDownloader.tempDir:Ljava/io/File;
areturn
LocalVariableTable:
Start End Slot Name Signature
2 4 0 p Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
private static java.io.File deleteOnExit(java.io.File);
descriptor: (Ljava/io/File;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.component.installer.remote.FileDownloader.deleteTemporary:Z
ifeq 2
1: aload 0
invokevirtual java.io.File.deleteOnExit:()V
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 f Ljava/io/File;
MethodParameters:
Name Flags
f
public java.lang.String getFileDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.fileDescription:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
public java.net.URL getSourceURL();
descriptor: ()Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
private static int toKB(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc 1023
ladd
l2i
sipush 1024
idiv
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 size J
MethodParameters:
Name Flags
size
public java.io.File getLocalFile();
descriptor: ()Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
void setupProgress();
descriptor: ()V
flags: (0x0000)
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifeq 3
1: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_ProgressStart_Simple@"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.size:J
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
aastore
invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
ifne 5
4: return
5: StackMap locals:
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_DownloadProgress@"
iconst_0
anewarray java.lang.Object
invokeinterface org.graalvm.component.installer.Feedback.l10n:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
putfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
6: aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_DownloadProgressSignChar@"
iconst_0
anewarray java.lang.Object
invokeinterface org.graalvm.component.installer.Feedback.l10n:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
iconst_0
invokevirtual java.lang.String.charAt:(I)C
putfield org.graalvm.component.installer.remote.FileDownloader.signChar:C
7: aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
putfield org.graalvm.component.installer.remote.FileDownloader.startPos:I
8: new java.lang.StringBuilder
dup
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.length:()I
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
start local 1 9: iconst_0
istore 2
start local 2 10: goto 13
11: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 1
bipush 8
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.length:()I
if_icmplt 11
end local 2 14: aload 0
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.graalvm.component.installer.remote.FileDownloader.backspaceString:Ljava/lang/String;
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
9 16 1 bs Ljava/lang/StringBuilder;
10 14 2 i I
int cnt(long);
descriptor: (J)I
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: lload 1
ldc 20
lmul
lload 1
ldc 2
ldiv
ladd
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.size:J
ldiv
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 1 1 rcvd J
MethodParameters:
Name Flags
rcvd
void makeProgress(boolean, int);
descriptor: (ZI)V
flags: (0x0000)
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.received:J
invokevirtual org.graalvm.component.installer.remote.FileDownloader.cnt:(J)I
istore 3
start local 3 3: aload 0
dup
getfield org.graalvm.component.installer.remote.FileDownloader.received:J
iload 2
i2l
ladd
putfield org.graalvm.component.installer.remote.FileDownloader.received:J
4: aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.received:J
invokevirtual org.graalvm.component.installer.remote.FileDownloader.cnt:(J)I
istore 4
start local 4 5: iload 3
iload 4
if_icmpge 14
6: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifeq 9
7: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_Progress_Simple@"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.received:J
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
aastore
invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
8: return
9: StackMap locals: int int
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
iload 4
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.startPos:I
iadd
iconst_1
isub
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.signChar:C
invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
10: aload 0
iload 4
putfield org.graalvm.component.installer.remote.FileDownloader.signCount:I
11: iload 1
ifne 13
12: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.backspaceString:Ljava/lang/String;
iconst_0
invokeinterface org.graalvm.component.installer.Feedback.verbatimPart:(Ljava/lang/String;Z)Z
pop
13: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
invokeinterface org.graalvm.component.installer.Feedback.verbatimPart:(Ljava/lang/String;Z)Z
pop
14: 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 15 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 15 1 first Z
0 15 2 chunk I
3 15 3 now I
5 15 4 next I
MethodParameters:
Name Flags
first
chunk
void stopProgress(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
ifeq 2
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifne 2
1: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.backspaceString:Ljava/lang/String;
iconst_0
invokeinterface org.graalvm.component.installer.Feedback.verbatimPart:(Ljava/lang/String;Z)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifeq 3
ldc "_Simple@"
goto 4
StackMap locals:
StackMap stack:
3: ldc ""
StackMap locals:
StackMap stack: java.lang.String
4: astore 2
start local 2 5: iload 1
ifeq 8
6: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
new java.lang.StringBuilder
dup
ldc "MSG_DownloadingDone"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
invokeinterface org.graalvm.component.installer.Feedback.verboseOutput:(Ljava/lang/String;[Ljava/lang/Object;)Z
pop
7: goto 9
8: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
new java.lang.StringBuilder
dup
ldc "MSG_DownloadingTerminated"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 10 1 success Z
5 10 2 simpleSuffix Ljava/lang/String;
MethodParameters:
Name Flags
success
void updateFileDigest(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.shaDigest:[B
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.fileDigest:Ljava/security/MessageDigest;
ifnonnull 10
3: aload 0
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getDigestAlgorithm:()Ljava/lang/String;
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield org.graalvm.component.installer.remote.FileDownloader.fileDigest:Ljava/security/MessageDigest;
4: goto 10
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
5: astore 2
start local 2 6: new java.io.IOException
dup
7: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "ERR_ComputeDigest"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual java.security.NoSuchAlgorithmException.getLocalizedMessage:()Ljava/lang/String;
aastore
invokeinterface org.graalvm.component.installer.Feedback.l10n:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
8: aload 2
9: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 10: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.fileDigest:Ljava/security/MessageDigest;
aload 1
invokevirtual java.security.MessageDigest.update:(Ljava/nio/ByteBuffer;)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 12 1 input Ljava/nio/ByteBuffer;
6 10 2 ex Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
3 4 5 Class java.security.NoSuchAlgorithmException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
input
static java.lang.String fingerPrint(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.component.installer.SystemUtils.fingerPrint:([B)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 digest [B
MethodParameters:
Name Flags
digest
byte[] getDigest();
descriptor: ()[B
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.fileDigest:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
public byte[] getReceivedDigest();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.receivedDigest:[B
ifnonnull 4
1: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getDigestAlgorithm:()Ljava/lang/String;
invokestatic org.graalvm.component.installer.SystemUtils.computeFileDigest:(Ljava/nio/file/Path;Ljava/lang/String;)[B
putfield org.graalvm.component.installer.remote.FileDownloader.receivedDigest:[B
4: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.receivedDigest:[B
ifnonnull 5
aconst_null
goto 6
StackMap locals:
StackMap stack:
5: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.receivedDigest:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
StackMap locals:
StackMap stack: byte[]
6: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
Exceptions:
throws java.io.IOException
void verifyDigest();
descriptor: ()V
flags: (0x0000)
Code:
stack=8, locals=2, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.shaDigest:[B
ifnull 1
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.shaDigest:[B
arraylength
ifne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.fileDigest:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 1
start local 1 3: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.receivedDigest:[B
4: aload 1
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.shaDigest:[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifeq 6
5: return
6: StackMap locals: byte[]
StackMap stack:
new java.io.IOException
dup
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "ERR_FileDigestError"
iconst_2
anewarray java.lang.Object
dup
iconst_0
7: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.shaDigest:[B
invokestatic org.graalvm.component.installer.remote.FileDownloader.fingerPrint:([B)Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokestatic org.graalvm.component.installer.remote.FileDownloader.fingerPrint:([B)Ljava/lang/String;
aastore
8: invokeinterface org.graalvm.component.installer.Feedback.l10n:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
3 9 1 computed [B
Exceptions:
throws java.io.IOException
void (java.net.URLConnection);
descriptor: (Ljava/net/URLConnection;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.requestHeaders:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.graalvm.component.installer.remote.FileDownloader java.net.URLConnection top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 2: aload 1
aload 2
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.requestHeaders:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.net.URLConnection.addRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 5 1 con Ljava/net/URLConnection;
2 3 2 h Ljava/lang/String;
MethodParameters:
Name Flags
con
protected void dataDownloaded(java.nio.channels.SeekableByteChannel);
descriptor: (Ljava/nio/channels/SeekableByteChannel;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.dataInterceptor:Ljava/util/function/Consumer;
ifnull 2
1: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.dataInterceptor:Ljava/util/function/Consumer;
aload 1
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 3 1 ch Ljava/nio/channels/SeekableByteChannel;
MethodParameters:
Name Flags
ch
public org.graalvm.component.installer.remote.FileDownloader setDataInterceptor(java.util.function.Consumer<java.nio.channels.SeekableByteChannel>);
descriptor: (Ljava/util/function/Consumer;)Lorg/graalvm/component/installer/remote/FileDownloader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.dataInterceptor:Ljava/util/function/Consumer;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 interceptor Ljava/util/function/Consumer<Ljava/nio/channels/SeekableByteChannel;>;
Signature: (Ljava/util/function/Consumer<Ljava/nio/channels/SeekableByteChannel;>;)Lorg/graalvm/component/installer/remote/FileDownloader;
MethodParameters:
Name Flags
interceptor
private void copySubtree(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: invokestatic org.graalvm.component.installer.remote.FileDownloader.createTempDir:()Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
ldc "download"
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempDirectory:(Ljava/nio/file/Path;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
astore 2
start local 2 1: aload 1
aload 2
invokestatic org.graalvm.component.installer.SystemUtils.copySubtree:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
pop
2: aload 0
aload 2
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
putfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 4 1 from Ljava/nio/file/Path;
1 4 2 to Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
public void download();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=16, args_size=1
start local 0 0: aload 0
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.toString:()Ljava/lang/String;
ldc "org.graalvm.component.installer.SimpleOutput"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
1: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
istore 1
start local 1 2: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifeq 10
3: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
4: ldc "MSG_Downloading_Simple@"
iconst_2
anewarray java.lang.Object
dup
iconst_0
5: aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getSourceURL:()Ljava/net/URL;
aastore
dup
iconst_1
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getFileDescription:()Ljava/lang/String;
ifnonnull 6
ldc ""
goto 7
StackMap locals: org.graalvm.component.installer.remote.FileDownloader int
StackMap stack: org.graalvm.component.installer.Feedback java.lang.String java.lang.Object[] java.lang.Object[] int
6: aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getFileDescription:()Ljava/lang/String;
StackMap locals: org.graalvm.component.installer.remote.FileDownloader int
StackMap stack: org.graalvm.component.installer.Feedback java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
7: aastore
8: invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
9: goto 17
10: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.fileDescription:Ljava/lang/String;
ifnull 16
11: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_DownloadingVerbose"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getFileDescription:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getSourceURL:()Ljava/net/URL;
aastore
invokeinterface org.graalvm.component.installer.Feedback.verboseOutput:(Ljava/lang/String;[Ljava/lang/Object;)Z
ifne 17
12: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
iload 1
ifeq 13
ldc "MSG_UsingFile"
goto 14
StackMap locals:
StackMap stack: org.graalvm.component.installer.Feedback
13: ldc "MSG_Downloading"
StackMap locals: org.graalvm.component.installer.remote.FileDownloader int
StackMap stack: org.graalvm.component.installer.Feedback java.lang.String
14: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getFileDescription:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getSourceURL:()Ljava/net/URL;
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
aastore
invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_DownloadingFrom"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getSourceURL:()Ljava/net/URL;
aastore
invokeinterface org.graalvm.component.installer.Feedback.output:(Ljava/lang/String;[Ljava/lang/Object;)V
17: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
invokeinterface org.graalvm.component.installer.Feedback.getLocalCache:(Ljava/net/URL;)Ljava/nio/file/Path;
astore 2
start local 2 18: aload 2
ifnull 21
19: aload 0
aload 2
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
putfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
20: return
21: StackMap locals: java.nio.file.Path
StackMap stack:
iload 1
ifeq 28
22: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokestatic java.nio.file.Paths.get:(Ljava/net/URI;)Ljava/nio/file/Path;
astore 3
start local 3 23: aload 3
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 28
24: aload 0
aload 3
invokevirtual org.graalvm.component.installer.remote.FileDownloader.copySubtree:(Ljava/nio/file/Path;)V
25: return
end local 3 26: StackMap locals:
StackMap stack: java.net.URISyntaxException
astore 3
start local 3 27: new java.io.IOException
dup
aload 3
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 28: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.getConnectionFactory:()Lorg/graalvm/component/installer/URLConnectionFactory;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
aload 0
invokedynamic accept(Lorg/graalvm/component/installer/remote/FileDownloader;)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
org/graalvm/component/installer/remote/FileDownloader.configureHeaders(Ljava/net/URLConnection;)V (5)
(Ljava/net/URLConnection;)V
invokeinterface org.graalvm.component.installer.URLConnectionFactory.createConnection:(Ljava/net/URL;Ljava/util/function/Consumer;)Ljava/net/URLConnection;
astore 3
start local 3 29: aload 0
aload 3
invokevirtual java.net.URLConnection.getContentLengthLong:()J
putfield org.graalvm.component.installer.remote.FileDownloader.size:J
30: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifeq 33
31: aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aconst_null
iconst_0
anewarray java.lang.Object
invokeinterface org.graalvm.component.installer.Feedback.verboseOutput:(Ljava/lang/String;[Ljava/lang/Object;)Z
putfield org.graalvm.component.installer.remote.FileDownloader.verbose:Z
32: goto 34
33: StackMap locals: java.net.URLConnection
StackMap stack:
aload 0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
ldc "MSG_DownloadReceivingBytes"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.size:J
invokestatic org.graalvm.component.installer.remote.FileDownloader.toKB:(J)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface org.graalvm.component.installer.Feedback.verbosePart:(Ljava/lang/String;[Ljava/lang/Object;)Z
putfield org.graalvm.component.installer.remote.FileDownloader.verbose:Z
34: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.verbose:Z
ifeq 36
35: aload 0
iconst_1
putfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
36: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.size:J
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sizeThreshold:J
lcmp
ifge 38
37: aload 0
iconst_0
putfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
38: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.setupProgress:()V
39: sipush 2048
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 5
start local 5 40: aload 0
ldc "download"
ldc ""
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.downloadDir:Ljava/io/File;
ifnonnull 41
invokestatic org.graalvm.component.installer.remote.FileDownloader.createTempDir:()Ljava/io/File;
goto 42
StackMap locals: org.graalvm.component.installer.remote.FileDownloader int java.nio.file.Path java.net.URLConnection top java.nio.ByteBuffer
StackMap stack: org.graalvm.component.installer.remote.FileDownloader java.lang.String java.lang.String
41: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.downloadDir:Ljava/io/File;
StackMap locals: org.graalvm.component.installer.remote.FileDownloader int java.nio.file.Path java.net.URLConnection top java.nio.ByteBuffer
StackMap stack: org.graalvm.component.installer.remote.FileDownloader java.lang.String java.lang.String java.io.File
42: invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
invokestatic org.graalvm.component.installer.remote.FileDownloader.deleteOnExit:(Ljava/io/File;)Ljava/io/File;
putfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
43: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.displayProgress:Z
istore 6
start local 6 44: iconst_0
istore 7
start local 7 45: aconst_null
astore 8
aconst_null
astore 9
46: aload 3
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
astore 10
start local 10 47: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_3
anewarray java.nio.file.OpenOption
dup
iconst_0
48: getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
aastore
dup
iconst_1
getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
aastore
dup
iconst_2
getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
aastore
49: invokestatic java.nio.file.Files.newByteChannel:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/SeekableByteChannel;
astore 11
start local 11 50: goto 65
start local 12 51: StackMap locals: org.graalvm.component.installer.remote.FileDownloader int java.nio.file.Path java.net.URLConnection top java.nio.ByteBuffer int int java.lang.Throwable java.lang.Throwable java.nio.channels.ReadableByteChannel java.nio.channels.SeekableByteChannel int
StackMap stack:
iload 6
ifeq 53
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.simpleOutput:Z
ifne 53
52: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.progressString:Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
invokeinterface org.graalvm.component.installer.Feedback.verbatimPart:(Ljava/lang/String;Z)Z
pop
53: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
54: goto 59
55: StackMap locals:
StackMap stack:
aload 11
aload 5
invokeinterface java.nio.channels.SeekableByteChannel.write:(Ljava/nio/ByteBuffer;)I
pop
56: aload 11
invokeinterface java.nio.channels.SeekableByteChannel.position:()J
lstore 13
start local 13 57: aload 0
aload 11
invokevirtual org.graalvm.component.installer.remote.FileDownloader.dataDownloaded:(Ljava/nio/channels/SeekableByteChannel;)V
58: aload 11
lload 13
invokeinterface java.nio.channels.SeekableByteChannel.position:(J)Ljava/nio/channels/SeekableByteChannel;
pop
end local 13 59: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 55
60: aload 5
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
61: aload 0
aload 5
invokevirtual org.graalvm.component.installer.remote.FileDownloader.updateFileDigest:(Ljava/nio/ByteBuffer;)V
62: aload 0
iload 6
iload 12
invokevirtual org.graalvm.component.installer.remote.FileDownloader.makeProgress:(ZI)V
63: aload 5
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
64: iconst_0
istore 6
end local 12 65: StackMap locals:
StackMap stack:
aload 10
aload 5
invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
dup
istore 12
start local 12 66: ifge 51
67: iconst_1
istore 7
end local 12 68: aload 11
ifnull 71
aload 11
invokeinterface java.nio.channels.SeekableByteChannel.close:()V
goto 71
StackMap locals:
StackMap stack: java.lang.Throwable
69: astore 8
aload 11
ifnull 70
aload 11
invokeinterface java.nio.channels.SeekableByteChannel.close:()V
end local 11 StackMap locals:
StackMap stack:
70: aload 8
athrow
StackMap locals:
StackMap stack:
71: aload 10
ifnull 86
aload 10
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
goto 86
StackMap locals:
StackMap stack: java.lang.Throwable
72: astore 9
aload 8
ifnonnull 73
aload 9
astore 8
goto 74
StackMap locals:
StackMap stack:
73: aload 8
aload 9
if_acmpeq 74
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
74: aload 10
ifnull 75
aload 10
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
end local 10 StackMap locals:
StackMap stack:
75: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
76: astore 9
aload 8
ifnonnull 77
aload 9
astore 8
goto 78
StackMap locals:
StackMap stack:
77: aload 8
aload 9
if_acmpeq 78
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
78: aload 8
athrow
StackMap locals: org.graalvm.component.installer.remote.FileDownloader int java.nio.file.Path java.net.URLConnection top java.nio.ByteBuffer int int
StackMap stack: java.io.UncheckedIOException
79: astore 8
start local 8 80: aload 8
invokevirtual java.io.UncheckedIOException.getCause:()Ljava/io/IOException;
athrow
end local 8 81: StackMap locals:
StackMap stack: java.io.IOException
astore 8
start local 8 82: aload 8
athrow
end local 8 83: StackMap locals:
StackMap stack: java.lang.Throwable
astore 15
84: aload 0
iload 7
invokevirtual org.graalvm.component.installer.remote.FileDownloader.stopProgress:(Z)V
85: aload 15
athrow
86: StackMap locals:
StackMap stack:
aload 0
iload 7
invokevirtual org.graalvm.component.installer.remote.FileDownloader.stopProgress:(Z)V
87: aload 0
invokevirtual org.graalvm.component.installer.remote.FileDownloader.verifyDigest:()V
88: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.localFile:Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokeinterface org.graalvm.component.installer.Feedback.addLocalFileCache:(Ljava/net/URL;Ljava/nio/file/Path;)V
89: return
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
2 90 1 fromFile Z
18 90 2 localCache Ljava/nio/file/Path;
23 26 3 p Ljava/nio/file/Path;
27 28 3 ex Ljava/net/URISyntaxException;
29 90 3 conn Ljava/net/URLConnection;
40 90 5 bb Ljava/nio/ByteBuffer;
44 90 6 first Z
45 90 7 success Z
47 75 10 rbc Ljava/nio/channels/ReadableByteChannel;
50 70 11 wbc Ljava/nio/channels/SeekableByteChannel;
51 65 12 read I
66 68 12 read I
57 59 13 pos J
80 81 8 ex Ljava/io/UncheckedIOException;
82 83 8 ex Ljava/io/IOException;
Exception table:
from to target type
22 25 26 Class java.net.URISyntaxException
50 68 69 any
47 71 72 any
46 76 76 any
45 79 79 Class java.io.UncheckedIOException
45 79 81 Class java.io.IOException
45 83 83 any
Exceptions:
throws java.io.IOException
public void setConnectionFactory(org.graalvm.component.installer.URLConnectionFactory);
descriptor: (Lorg/graalvm/component/installer/URLConnectionFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.graalvm.component.installer.remote.FileDownloader.connectionFactory:Lorg/graalvm/component/installer/URLConnectionFactory;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
0 2 1 connFactory Lorg/graalvm/component/installer/URLConnectionFactory;
MethodParameters:
Name Flags
connFactory
org.graalvm.component.installer.URLConnectionFactory getConnectionFactory();
descriptor: ()Lorg/graalvm/component/installer/URLConnectionFactory;
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.connectionFactory:Lorg/graalvm/component/installer/URLConnectionFactory;
ifnonnull 2
1: aload 0
new org.graalvm.component.installer.remote.ProxyConnectionFactory
dup
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.feedback:Lorg/graalvm/component/installer/Feedback;
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.sourceURL:Ljava/net/URL;
invokespecial org.graalvm.component.installer.remote.ProxyConnectionFactory.<init>:(Lorg/graalvm/component/installer/Feedback;Ljava/net/URL;)V
putfield org.graalvm.component.installer.remote.FileDownloader.connectionFactory:Lorg/graalvm/component/installer/URLConnectionFactory;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.component.installer.remote.FileDownloader.connectionFactory:Lorg/graalvm/component/installer/URLConnectionFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/component/installer/remote/FileDownloader;
}
SourceFile: "FileDownloader.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles