public class org.apache.tomcat.util.scan.JarFileUrlJar implements org.apache.tomcat.Jar
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.scan.JarFileUrlJar
super_class: java.lang.Object
{
private final java.util.jar.JarFile jarFile;
descriptor: Ljava/util/jar/JarFile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.net.URL jarFileURL;
descriptor: Ljava/net/URL;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean multiRelease;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.Enumeration<java.util.jar.JarEntry> entries;
descriptor: Ljava/util/Enumeration;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Enumeration<Ljava/util/jar/JarEntry;>;
private java.util.Set<java.lang.String> entryNamesSeen;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Ljava/lang/String;>;
private java.util.jar.JarEntry entry;
descriptor: Ljava/util/jar/JarEntry;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.net.URL, boolean);
descriptor: (Ljava/net/URL;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
2: iload 2
ifeq 8
3: aload 1
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
checkcast java.net.JarURLConnection
astore 3
start local 3 4: aload 3
iconst_0
invokevirtual java.net.JarURLConnection.setUseCaches:(Z)V
5: aload 0
aload 3
invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
putfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
6: aload 0
aload 3
invokevirtual java.net.JarURLConnection.getJarFileURL:()Ljava/net/URL;
putfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFileURL:Ljava/net/URL;
end local 3 7: goto 14
8: StackMap locals: org.apache.tomcat.util.scan.JarFileUrlJar java.net.URL int
StackMap stack:
new java.io.File
dup
aload 1
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
astore 3
start local 3 9: goto 12
end local 3 StackMap locals:
StackMap stack: java.net.URISyntaxException
10: astore 4
start local 4 11: new java.io.IOException
dup
aload 4
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 12: StackMap locals: java.io.File
StackMap stack:
aload 0
invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
aload 3
invokevirtual org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance:(Ljava/io/File;)Ljava/util/jar/JarFile;
putfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
13: aload 0
aload 1
putfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFileURL:Ljava/net/URL;
end local 3 14: StackMap locals:
StackMap stack:
aload 0
invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
invokevirtual org.apache.tomcat.util.compat.JreCompat.jarFileIsMultiRelease:(Ljava/util/jar/JarFile;)Z
putfield org.apache.tomcat.util.scan.JarFileUrlJar.multiRelease:Z
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
0 16 1 url Ljava/net/URL;
0 16 2 startsWithJar Z
4 7 3 jarConn Ljava/net/JarURLConnection;
9 10 3 f Ljava/io/File;
12 14 3 f Ljava/io/File;
11 12 4 e Ljava/net/URISyntaxException;
Exception table:
from to target type
8 9 10 Class java.net.URISyntaxException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
url
startsWithJar
public java.net.URL getJarFileURL();
descriptor: ()Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFileURL:Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
public java.io.InputStream getInputStream(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
aload 1
invokevirtual java.util.jar.JarFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
aload 2
invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
0 4 1 name Ljava/lang/String;
1 4 2 entry Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
name
public long getLastModified(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
aload 1
invokevirtual java.util.jar.JarFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: ldc -1
lreturn
3: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 2
invokevirtual java.util.zip.ZipEntry.getTime:()J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
0 4 1 name Ljava/lang/String;
1 4 2 entry Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
name
public boolean exists(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
aload 1
invokevirtual java.util.jar.JarFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
astore 2
start local 2 1: aload 2
ifnull 2
iconst_1
ireturn
StackMap locals: java.util.zip.ZipEntry
StackMap stack:
2: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
0 3 1 name Ljava/lang/String;
1 3 2 entry Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
name
public java.lang.String getURL(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
ldc "jar:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 1: aload 2
aload 0
invokevirtual org.apache.tomcat.util.scan.JarFileUrlJar.getJarFileURL:()Ljava/net/URL;
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 2
ldc "!/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 2
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
0 5 1 entry Ljava/lang/String;
1 5 2 result Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
entry
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
ifnull 4
1: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.close:()V
2: goto 4
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
Exception table:
from to target type
1 2 3 Class java.io.IOException
public void nextEntry();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
ifnonnull 4
1: aload 0
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
2: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.multiRelease:Z
ifeq 4
3: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entryNamesSeen:Ljava/util/Set;
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.multiRelease:Z
ifeq 21
5: aconst_null
astore 1
start local 1 6: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifeq 19
7: aload 0
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.jar.JarEntry
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
8: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
astore 1
9: aload 1
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
10: aload 1
bipush 47
bipush 18
invokevirtual java.lang.String.indexOf:(II)I
istore 2
start local 2 11: iload 2
iconst_m1
if_icmpne 13
12: goto 6
13: StackMap locals: int
StackMap stack:
aload 1
iload 2
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
end local 2 14: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
ifeq 6
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entryNamesSeen:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 16
15: goto 6
16: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entryNamesSeen:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
17: aload 0
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
18: goto 25
19: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
end local 1 20: goto 25
21: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifeq 24
22: aload 0
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.jar.JarEntry
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
23: goto 25
24: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
25: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
6 20 1 name Ljava/lang/String;
11 14 2 i I
public java.lang.String getEntryName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
public java.io.InputStream getEntryInputStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
Exceptions:
throws java.io.IOException
public java.util.jar.Manifest getManifest();
descriptor: ()Ljava/util/jar/Manifest;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.tomcat.util.scan.JarFileUrlJar.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
Exceptions:
throws java.io.IOException
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entries:Ljava/util/Enumeration;
1: aload 0
aconst_null
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entryNamesSeen:Ljava/util/Set;
2: aload 0
aconst_null
putfield org.apache.tomcat.util.scan.JarFileUrlJar.entry:Ljava/util/jar/JarEntry;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/tomcat/util/scan/JarFileUrlJar;
Exceptions:
throws java.io.IOException
}
SourceFile: "JarFileUrlJar.java"