public class io.vertx.core.file.impl.FileResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.core.file.impl.FileResolver
super_class: java.lang.Object
{
public static final java.lang.String DISABLE_FILE_CACHING_PROP_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "vertx.disableFileCaching"
public static final java.lang.String DISABLE_CP_RESOLVING_PROP_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "vertx.disableFileCPResolving"
public static final java.lang.String CACHE_DIR_BASE_PROP_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "vertx.cacheDirBase"
private static final java.lang.String FILE_SEP;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean NON_UNIX_FILE_SEP;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String JAR_URL_SEP;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "!/"
private static final java.util.regex.Pattern JAR_URL_SEP_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.io.File cwd;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.io.File cacheDir;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.lang.Thread shutdownHook;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private final boolean enableCaching;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean enableCpResolving;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String fileCacheDir;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "file.separator"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
putstatic io.vertx.core.file.impl.FileResolver.FILE_SEP:Ljava/lang/String;
1: getstatic io.vertx.core.file.impl.FileResolver.FILE_SEP:Ljava/lang/String;
ldc "/"
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 io.vertx.core.file.impl.FileResolver.NON_UNIX_FILE_SEP:Z
4: ldc "!/"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic io.vertx.core.file.impl.FileResolver.JAR_URL_SEP_PATTERN:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new io.vertx.core.file.FileSystemOptions
dup
invokespecial io.vertx.core.file.FileSystemOptions.<init>:()V
invokespecial io.vertx.core.file.impl.FileResolver.<init>:(Lio/vertx/core/file/FileSystemOptions;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/file/impl/FileResolver;
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new io.vertx.core.file.FileSystemOptions
dup
invokespecial io.vertx.core.file.FileSystemOptions.<init>:()V
iload 1
invokevirtual io.vertx.core.file.FileSystemOptions.setFileCachingEnabled:(Z)Lio/vertx/core/file/FileSystemOptions;
invokespecial io.vertx.core.file.impl.FileResolver.<init>:(Lio/vertx/core/file/FileSystemOptions;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/core/file/impl/FileResolver;
0 2 1 enableCaching Z
MethodParameters:
Name Flags
enableCaching
public void <init>(io.vertx.core.file.FileSystemOptions);
descriptor: (Lio/vertx/core/file/FileSystemOptions;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokevirtual io.vertx.core.file.FileSystemOptions.isFileCachingEnabled:()Z
putfield io.vertx.core.file.impl.FileResolver.enableCaching:Z
2: aload 0
aload 1
invokevirtual io.vertx.core.file.FileSystemOptions.isClassPathResolvingEnabled:()Z
putfield io.vertx.core.file.impl.FileResolver.enableCpResolving:Z
3: aload 0
aload 1
invokevirtual io.vertx.core.file.FileSystemOptions.getFileCacheDir:()Ljava/lang/String;
putfield io.vertx.core.file.impl.FileResolver.fileCacheDir:Ljava/lang/String;
4: ldc "vertx.cwd"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 5: aload 2
ifnull 8
6: aload 0
new java.io.File
dup
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
putfield io.vertx.core.file.impl.FileResolver.cwd:Ljava/io/File;
7: goto 9
8: StackMap locals: io.vertx.core.file.impl.FileResolver io.vertx.core.file.FileSystemOptions java.lang.String
StackMap stack:
aload 0
aconst_null
putfield io.vertx.core.file.impl.FileResolver.cwd:Ljava/io/File;
9: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.file.impl.FileResolver.enableCpResolving:Z
ifeq 11
10: aload 0
invokevirtual io.vertx.core.file.impl.FileResolver.setupCacheDir:()V
11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/core/file/impl/FileResolver;
0 12 1 fileSystemOptions Lio/vertx/core/file/FileSystemOptions;
5 12 2 cwdOverride Ljava/lang/String;
MethodParameters:
Name Flags
fileSystemOptions
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield io.vertx.core.file.impl.FileResolver.shutdownHook:Ljava/lang/Thread;
ifnull 5
2: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
aload 0
getfield io.vertx.core.file.impl.FileResolver.shutdownHook:Ljava/lang/Thread;
invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
pop
3: goto 5
StackMap locals: io.vertx.core.file.impl.FileResolver io.vertx.core.file.impl.FileResolver
StackMap stack: java.lang.IllegalStateException
4: pop
5: StackMap locals:
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.core.file.impl.FileResolver.deleteCacheDir:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/vertx/core/file/impl/FileResolver;
Exception table:
from to target type
2 3 4 Class java.lang.IllegalStateException
1 6 7 any
7 8 7 any
Exceptions:
throws java.io.IOException
public java.io.File resolveFile(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/File;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: aload 0
getfield io.vertx.core.file.impl.FileResolver.cwd:Ljava/io/File;
ifnull 3
aload 2
invokevirtual java.io.File.isAbsolute:()Z
ifne 3
2: new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cwd:Ljava/io/File;
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 2
3: StackMap locals: java.io.File
StackMap stack:
aload 0
getfield io.vertx.core.file.impl.FileResolver.enableCpResolving:Z
ifne 5
4: aload 2
areturn
5: StackMap locals:
StackMap stack:
aload 0
dup
astore 3
monitorenter
6: aload 2
invokevirtual java.io.File.exists:()Z
ifne 23
7: new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
start local 4 8: aload 0
getfield io.vertx.core.file.impl.FileResolver.enableCaching:Z
ifeq 11
aload 4
invokevirtual java.io.File.exists:()Z
ifeq 11
9: aload 4
aload 3
monitorexit
10: areturn
11: StackMap locals: io.vertx.core.file.impl.FileResolver java.io.File
StackMap stack:
aload 0
invokevirtual io.vertx.core.file.impl.FileResolver.getClassLoader:()Ljava/lang/ClassLoader;
astore 5
start local 5 12: getstatic io.vertx.core.file.impl.FileResolver.NON_UNIX_FILE_SEP:Z
ifeq 14
13: aload 1
getstatic io.vertx.core.file.impl.FileResolver.FILE_SEP:Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 1
14: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 2
invokevirtual java.io.File.getParent:()Ljava/lang/String;
astore 6
start local 6 15: aload 6
ifnull 19
16: aload 5
aload 6
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 7
start local 7 17: aload 7
ifnull 19
18: aload 0
aload 7
aload 6
aload 5
iconst_1
invokevirtual io.vertx.core.file.impl.FileResolver.unpackUrlResource:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/io/File;
pop
end local 7 19: StackMap locals: java.lang.String
StackMap stack:
aload 5
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 7
start local 7 20: aload 7
ifnull 23
21: aload 0
aload 7
aload 1
aload 5
iconst_0
invokevirtual io.vertx.core.file.impl.FileResolver.unpackUrlResource:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/io/File;
aload 3
monitorexit
22: areturn
end local 7 end local 6 end local 5 end local 4 23: StackMap locals:
StackMap stack:
aload 3
monitorexit
24: goto 27
StackMap locals:
StackMap stack: java.lang.Throwable
25: aload 3
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/vertx/core/file/impl/FileResolver;
0 28 1 fileName Ljava/lang/String;
1 28 2 file Ljava/io/File;
8 23 4 cacheFile Ljava/io/File;
12 23 5 cl Ljava/lang/ClassLoader;
15 23 6 parentFileName Ljava/lang/String;
17 19 7 directoryContents Ljava/net/URL;
20 23 7 url Ljava/net/URL;
Exception table:
from to target type
6 10 25 any
11 22 25 any
23 24 25 any
25 26 25 any
MethodParameters:
Name Flags
fileName
private java.io.File unpackUrlResource(java.net.URL, java.lang.String, java.lang.ClassLoader, boolean);
descriptor: (Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
astore 5
start local 5 1: aload 5
dup
astore 6
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 6
-1377881982: 2
-341064690: 3
-239609552: 4
104987: 5
3143036: 6
1780175504: 7
default: 11
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
2: aload 6
ldc "bundle"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
3: aload 6
ldc "resource"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
4: aload 6
ldc "bundleentry"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
StackMap locals:
StackMap stack:
5: aload 6
ldc "jar"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 11
StackMap locals:
StackMap stack:
6: aload 6
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 11
StackMap locals:
StackMap stack:
7: aload 6
ldc "bundleresource"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 11
8: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual io.vertx.core.file.impl.FileResolver.unpackFromFileURL:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/io/File;
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual io.vertx.core.file.impl.FileResolver.unpackFromJarURL:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/io/File;
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual io.vertx.core.file.impl.FileResolver.unpackFromBundleURL:(Ljava/net/URL;Z)Ljava/io/File;
areturn
11: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Invalid url protocol: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/core/file/impl/FileResolver;
0 12 1 url Ljava/net/URL;
0 12 2 fileName Ljava/lang/String;
0 12 3 cl Ljava/lang/ClassLoader;
0 12 4 isDir Z
1 12 5 prot Ljava/lang/String;
MethodParameters:
Name Flags
url
fileName
cl
isDir
private synchronized java.io.File unpackFromFileURL(java.net.URL, java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/io/File;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.io.File
dup
aload 1
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
iconst_0
invokestatic io.vertx.core.net.impl.URIDecoder.decodeURIComponent:(Ljava/lang/String;Z)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: aload 4
invokevirtual java.io.File.isDirectory:()Z
istore 5
start local 5 2: new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
aload 2
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 6
start local 6 3: iload 5
ifne 13
4: aload 6
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
invokevirtual java.io.File.mkdirs:()Z
pop
5: aload 0
getfield io.vertx.core.file.impl.FileResolver.enableCaching:Z
ifeq 8
6: aload 4
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
aload 6
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
7: goto 22
8: StackMap locals: java.io.File int java.io.File
StackMap stack:
aload 4
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
aload 6
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
9: goto 22
StackMap locals:
StackMap stack: java.nio.file.FileAlreadyExistsException
10: pop
goto 22
11: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 12: new io.vertx.core.VertxException
dup
aload 7
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 13: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.io.File.mkdirs:()Z
pop
14: aload 4
invokevirtual java.io.File.list:()[Ljava/lang/String;
astore 7
start local 7 15: aload 7
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 21
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.io.File int java.io.File java.lang.String[] top int int java.lang.String[]
StackMap stack:
16: aload 11
iload 9
aaload
astore 8
start local 8 17: 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 "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 12
start local 12 18: aload 3
aload 12
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 13
start local 13 19: aload 0
aload 13
aload 12
aload 3
invokevirtual io.vertx.core.file.impl.FileResolver.unpackFromFileURL:(Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/io/File;
pop
end local 13 end local 12 end local 8 20: iinc 9 1
StackMap locals:
StackMap stack:
21: iload 9
iload 10
if_icmplt 16
end local 7 22: StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.io.File int java.io.File
StackMap stack:
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 23 0 this Lio/vertx/core/file/impl/FileResolver;
0 23 1 url Ljava/net/URL;
0 23 2 fileName Ljava/lang/String;
0 23 3 cl Ljava/lang/ClassLoader;
1 23 4 resource Ljava/io/File;
2 23 5 isDirectory Z
3 23 6 cacheFile Ljava/io/File;
12 13 7 e Ljava/io/IOException;
15 22 7 listing [Ljava/lang/String;
17 20 8 file Ljava/lang/String;
18 20 12 subResource Ljava/lang/String;
19 20 13 url2 Ljava/net/URL;
Exception table:
from to target type
5 9 10 Class java.nio.file.FileAlreadyExistsException
5 9 11 Class java.io.IOException
MethodParameters:
Name Flags
url
fileName
cl
private synchronized java.io.File unpackFromJarURL(java.net.URL, java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/net/URL;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/io/File;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=20, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 1
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
astore 5
start local 5 2: aload 5
ldc ".jar!"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 6
start local 6 3: iload 6
iconst_m1
if_icmpne 5
4: aload 5
ldc ".zip!"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 6
5: StackMap locals: java.util.zip.ZipFile java.lang.String int
StackMap stack:
aload 5
ldc ".jar!"
iload 6
iconst_1
isub
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
istore 7
start local 7 6: iload 7
iconst_m1
if_icmpne 8
7: aload 5
ldc ".zip!"
iload 6
iconst_1
isub
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
istore 7
8: StackMap locals: int
StackMap stack:
iload 7
iconst_m1
if_icmpne 12
9: new java.io.File
dup
aload 5
iconst_5
iload 6
iconst_4
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
iconst_0
invokestatic io.vertx.core.net.impl.URIDecoder.decodeURIComponent:(Ljava/lang/String;Z)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 8
start local 8 10: new java.util.zip.ZipFile
dup
aload 8
invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
astore 4
end local 8 11: goto 15
12: StackMap locals:
StackMap stack:
aload 5
iload 7
bipush 6
iadd
iload 6
iconst_4
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 8
start local 8 13: aload 0
aload 8
invokevirtual io.vertx.core.file.impl.FileResolver.resolveFile:(Ljava/lang/String;)Ljava/io/File;
astore 9
start local 9 14: new java.util.zip.ZipFile
dup
aload 9
invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
astore 4
end local 9 end local 8 15: StackMap locals:
StackMap stack:
aload 5
iload 6
bipush 6
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 8
start local 8 16: getstatic io.vertx.core.file.impl.FileResolver.JAR_URL_SEP_PATTERN:Ljava/util/regex/Pattern;
aload 8
invokevirtual java.util.regex.Pattern.split:(Ljava/lang/CharSequence;)[Ljava/lang/String;
astore 9
start local 9 17: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 10
start local 10 18: iconst_0
istore 11
start local 11 19: goto 22
20: StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder int
StackMap stack:
aload 10
aload 9
iload 11
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: iinc 11 1
StackMap locals:
StackMap stack:
22: iload 11
aload 9
arraylength
iconst_1
isub
if_icmplt 20
end local 11 23: aload 10
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 11
start local 11 24: aload 4
invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
astore 12
start local 12 25: goto 51
26: StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String java.util.Enumeration
StackMap stack:
aload 12
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
astore 13
start local 13 27: aload 13
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 14
start local 14 28: aload 14
aload 11
invokevirtual java.lang.String.isEmpty:()Z
ifeq 29
aload 2
goto 30
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String java.util.Enumeration java.util.zip.ZipEntry java.lang.String
StackMap stack: java.lang.String
29: new java.lang.StringBuilder
dup
aload 11
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
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;
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String java.util.Enumeration java.util.zip.ZipEntry java.lang.String
StackMap stack: java.lang.String java.lang.String
30: invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 51
31: new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
aload 11
invokevirtual java.lang.String.isEmpty:()Z
ifeq 32
aload 14
goto 33
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String java.util.Enumeration java.util.zip.ZipEntry java.lang.String
StackMap stack: new 31 new 31 java.io.File
32: aload 14
aload 11
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String java.util.Enumeration java.util.zip.ZipEntry java.lang.String
StackMap stack: new 31 new 31 java.io.File java.lang.String
33: invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 15
start local 15 34: aload 14
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 37
35: aload 15
invokevirtual java.io.File.mkdirs:()Z
pop
36: goto 51
37: StackMap locals: java.io.File
StackMap stack:
aload 15
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
invokevirtual java.io.File.mkdirs:()Z
pop
38: aconst_null
astore 16
aconst_null
astore 17
39: aload 4
aload 13
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
astore 18
start local 18 40: aload 0
getfield io.vertx.core.file.impl.FileResolver.enableCaching:Z
ifeq 43
41: aload 18
aload 15
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
42: goto 44
43: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 18
aload 15
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
44: StackMap locals:
StackMap stack:
aload 18
ifnull 51
aload 18
invokevirtual java.io.InputStream.close:()V
goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
45: astore 16
aload 18
ifnull 46
aload 18
invokevirtual java.io.InputStream.close:()V
end local 18 StackMap locals:
StackMap stack:
46: aload 16
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
47: astore 17
aload 16
ifnonnull 48
aload 17
astore 16
goto 49
StackMap locals:
StackMap stack:
48: aload 16
aload 17
if_acmpeq 49
aload 16
aload 17
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
49: aload 16
athrow
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile java.lang.String int int java.lang.String java.lang.String[] java.lang.StringBuilder java.lang.String java.util.Enumeration java.util.zip.ZipEntry java.lang.String java.io.File
StackMap stack: java.nio.file.FileAlreadyExistsException
50: pop
end local 15 end local 14 end local 13 51: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 26
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 52: goto 58
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL java.lang.String java.lang.ClassLoader java.util.zip.ZipFile
StackMap stack: java.io.IOException
53: astore 5
start local 5 54: new io.vertx.core.VertxException
dup
aload 5
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 55: StackMap locals:
StackMap stack: java.lang.Throwable
astore 19
56: aload 0
aload 4
invokevirtual io.vertx.core.file.impl.FileResolver.closeQuietly:(Ljava/io/Closeable;)V
57: aload 19
athrow
58: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual io.vertx.core.file.impl.FileResolver.closeQuietly:(Ljava/io/Closeable;)V
59: new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
aload 2
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lio/vertx/core/file/impl/FileResolver;
0 60 1 url Ljava/net/URL;
0 60 2 fileName Ljava/lang/String;
0 60 3 cl Ljava/lang/ClassLoader;
1 60 4 zip Ljava/util/zip/ZipFile;
2 52 5 path Ljava/lang/String;
3 52 6 idx1 I
6 52 7 idx2 I
10 11 8 file Ljava/io/File;
13 15 8 s Ljava/lang/String;
14 15 9 file Ljava/io/File;
16 52 8 inJarPath Ljava/lang/String;
17 52 9 parts [Ljava/lang/String;
18 52 10 prefixBuilder Ljava/lang/StringBuilder;
19 23 11 i I
24 52 11 prefix Ljava/lang/String;
25 52 12 entries Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
27 51 13 entry Ljava/util/zip/ZipEntry;
28 51 14 name Ljava/lang/String;
34 51 15 file Ljava/io/File;
40 46 18 is Ljava/io/InputStream;
54 55 5 e Ljava/io/IOException;
Exception table:
from to target type
40 44 45 any
39 47 47 any
38 50 50 Class java.nio.file.FileAlreadyExistsException
1 52 53 Class java.io.IOException
1 55 55 any
MethodParameters:
Name Flags
url
fileName
cl
private void closeQuietly(java.io.Closeable);
descriptor: (Ljava/io/Closeable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 4
1: aload 1
invokeinterface java.io.Closeable.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/core/file/impl/FileResolver;
0 5 1 zip Ljava/io/Closeable;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
zip
private boolean isBundleUrlDirectory(java.net.URL);
descriptor: (Ljava/net/URL;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 3
1: aload 0
invokevirtual io.vertx.core.file.impl.FileResolver.getClassLoader:()Ljava/lang/ClassLoader;
new java.lang.StringBuilder
dup
aload 1
invokevirtual java.net.URL.getPath:()Ljava/lang/String;
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
ifnonnull 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/core/file/impl/FileResolver;
0 4 1 url Ljava/net/URL;
MethodParameters:
Name Flags
url
private synchronized java.io.File unpackFromBundleURL(java.net.URL, boolean);
descriptor: (Ljava/net/URL;Z)Ljava/io/File;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
new java.lang.StringBuilder
dup
aload 1
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
invokevirtual java.io.File.mkdirs:()Z
pop
2: aload 0
invokevirtual io.vertx.core.file.impl.FileResolver.getClassLoader:()Ljava/lang/ClassLoader;
ifnull 3
aload 0
aload 1
invokevirtual io.vertx.core.file.impl.FileResolver.isBundleUrlDirectory:(Ljava/net/URL;)Z
ifne 4
StackMap locals: java.io.File
StackMap stack:
3: iload 2
ifeq 6
4: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.File.mkdirs:()Z
pop
5: goto 23
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
invokevirtual java.io.File.mkdirs:()Z
pop
7: aconst_null
astore 4
aconst_null
astore 5
8: aload 1
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 6
start local 6 9: aload 0
getfield io.vertx.core.file.impl.FileResolver.enableCaching:Z
ifeq 12
10: aload 6
aload 3
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
11: goto 13
12: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 6
aload 3
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
13: StackMap locals:
StackMap stack:
aload 6
ifnull 23
aload 6
invokevirtual java.io.InputStream.close:()V
goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 4
aload 6
ifnull 15
aload 6
invokevirtual java.io.InputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
15: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 5
aload 4
ifnonnull 17
aload 5
astore 4
goto 18
StackMap locals:
StackMap stack:
17: aload 4
aload 5
if_acmpeq 18
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 4
athrow
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL int java.io.File
StackMap stack: java.nio.file.FileAlreadyExistsException
19: pop
end local 3 20: goto 23
StackMap locals: io.vertx.core.file.impl.FileResolver java.net.URL int
StackMap stack: java.io.IOException
21: astore 3
start local 3 22: new io.vertx.core.VertxException
dup
aload 3
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 23: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
new java.lang.StringBuilder
dup
aload 1
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/vertx/core/file/impl/FileResolver;
0 24 1 url Ljava/net/URL;
0 24 2 isDir Z
1 20 3 file Ljava/io/File;
9 15 6 is Ljava/io/InputStream;
22 23 3 e Ljava/io/IOException;
Exception table:
from to target type
9 13 14 any
8 16 16 any
7 19 19 Class java.nio.file.FileAlreadyExistsException
0 20 21 Class java.io.IOException
MethodParameters:
Name Flags
url
isDir
private java.lang.ClassLoader getClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 1
3: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 1
ifnonnull 5
4: ldc Ljava/lang/Object;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 1
5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/core/file/impl/FileResolver;
1 6 1 cl Ljava/lang/ClassLoader;
private void setupCacheDir();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield io.vertx.core.file.impl.FileResolver.fileCacheDir:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/file-cache-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
invokevirtual java.util.UUID.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
start local 1 1: aload 0
new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
putfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
2: aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
invokevirtual java.io.File.mkdirs:()Z
ifne 4
3: new java.lang.IllegalStateException
dup
ldc "Failed to create cache dir"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.String
StackMap stack:
aload 0
dup
astore 2
monitorenter
5: aload 0
new java.lang.Thread
dup
aload 0
invokedynamic run(Lio/vertx/core/file/impl/FileResolver;)Ljava/lang/Runnable;
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:
()V
io/vertx/core/file/impl/FileResolver.lambda$0()V (7)
()V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
putfield io.vertx.core.file.impl.FileResolver.shutdownHook:Ljava/lang/Thread;
6: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
aload 0
getfield io.vertx.core.file.impl.FileResolver.shutdownHook:Ljava/lang/Thread;
invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
7: aload 2
monitorexit
8: goto 11
StackMap locals: io.vertx.core.file.impl.FileResolver java.lang.String io.vertx.core.file.impl.FileResolver
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/core/file/impl/FileResolver;
1 12 1 cacheDirName Ljava/lang/String;
Exception table:
from to target type
5 8 9 any
9 10 9 any
private void deleteCacheDir();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
ifnull 2
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
invokevirtual java.io.File.exists:()Z
ifne 4
2: StackMap locals: io.vertx.core.file.impl.FileResolver top io.vertx.core.file.impl.FileResolver
StackMap stack:
aload 2
monitorexit
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
astore 1
start local 1 5: aload 0
aconst_null
putfield io.vertx.core.file.impl.FileResolver.cacheDir:Ljava/io/File;
6: aload 2
monitorexit
7: goto 10
end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
start local 1 10: StackMap locals: io.vertx.core.file.impl.FileResolver java.nio.file.Path
StackMap stack:
aload 1
iconst_1
invokestatic io.vertx.core.file.impl.FileSystemImpl.delete:(Ljava/nio/file/Path;Z)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/core/file/impl/FileResolver;
5 8 1 path Ljava/nio/file/Path;
10 12 1 path Ljava/nio/file/Path;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
private void lambda$0();
descriptor: ()V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 1
start local 1 1: new java.lang.Thread
dup
aload 0
aload 1
invokedynamic run(Lio/vertx/core/file/impl/FileResolver;Ljava/util/concurrent/CountDownLatch;)Ljava/lang/Runnable;
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:
()V
io/vertx/core/file/impl/FileResolver.lambda$1(Ljava/util/concurrent/CountDownLatch;)V (7)
()V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
2: invokevirtual java.lang.Thread.run:()V
3: aload 1
ldc 10
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
pop
4: goto 7
StackMap locals: io.vertx.core.file.impl.FileResolver java.util.concurrent.CountDownLatch
StackMap stack: java.lang.InterruptedException
5: pop
6: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/vertx/core/file/impl/FileResolver;
1 7 1 latch Ljava/util/concurrent/CountDownLatch;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
private void lambda$1(java.util.concurrent.CountDownLatch);
descriptor: (Ljava/util/concurrent/CountDownLatch;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 0: aload 0
invokevirtual io.vertx.core.file.impl.FileResolver.deleteCacheDir:()V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/core/file/impl/FileResolver;
Exception table:
from to target type
0 1 2 Class java.io.IOException
}
SourceFile: "FileResolver.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles