final class javassist.JarClassPath implements javassist.ClassPath
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: javassist.JarClassPath
super_class: java.lang.Object
{
java.util.List<java.lang.String> jarfileEntries;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Ljava/lang/String;>;
java.lang.String jarfileURL;
descriptor: Ljava/lang/String;
flags: (0x0000)
void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aconst_null
astore 2
start local 2 2: new java.util.jar.JarFile
dup
aload 1
invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
astore 2
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield javassist.JarClassPath.jarfileEntries:Ljava/util/List;
4: aload 2
invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
invokestatic java.util.Collections.list:(Ljava/util/Enumeration;)Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.jar.JarEntry
astore 3
start local 3 6: aload 3
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 8
7: aload 0
getfield javassist.JarClassPath.jarfileEntries:Ljava/util/List;
aload 3
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: aload 0
new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
10: invokevirtual java.io.File.toURI:()Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
invokevirtual java.net.URL.toString:()Ljava/lang/String;
11: putfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
12: aload 2
ifnull 16
13: aload 2
invokevirtual java.util.jar.JarFile.close:()V
14: goto 16
StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile
StackMap stack: java.io.IOException
15: pop
16: StackMap locals:
StackMap stack:
return
17: StackMap locals:
StackMap stack: java.io.IOException
pop
18: aload 2
ifnull 28
19: aload 2
invokevirtual java.util.jar.JarFile.close:()V
20: goto 28
StackMap locals:
StackMap stack: java.io.IOException
21: pop
goto 28
22: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
23: aload 2
ifnull 27
24: aload 2
invokevirtual java.util.jar.JarFile.close:()V
25: goto 27
StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile top top java.lang.Throwable
StackMap stack: java.io.IOException
26: pop
27: StackMap locals:
StackMap stack:
aload 5
athrow
28: StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile
StackMap stack:
new javassist.NotFoundException
dup
aload 1
invokespecial javassist.NotFoundException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljavassist/JarClassPath;
0 29 1 pathname Ljava/lang/String;
2 29 2 jarfile Ljava/util/jar/JarFile;
6 8 3 je Ljava/util/jar/JarEntry;
Exception table:
from to target type
13 14 15 Class java.io.IOException
2 12 17 Class java.io.IOException
19 20 21 Class java.io.IOException
2 12 22 any
17 18 22 any
24 25 26 Class java.io.IOException
Exceptions:
throws javassist.NotFoundException
MethodParameters:
Name Flags
pathname
public java.io.InputStream openClassfile(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual javassist.JarClassPath.find:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 1: aload 2
ifnull 13
2: getstatic javassist.ClassPool.cacheOpenedJarFile:Z
ifeq 5
3: aload 2
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
4: areturn
5: StackMap locals: java.net.URL
StackMap stack:
aload 2
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 3
start local 3 6: aload 3
iconst_0
invokevirtual java.net.URLConnection.setUseCaches:(Z)V
7: aload 3
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
8: areturn
end local 3 9: StackMap locals:
StackMap stack: java.io.IOException
pop
10: new javassist.NotFoundException
dup
new java.lang.StringBuilder
dup
ldc "broken jar file?: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
11: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial javassist.NotFoundException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljavassist/JarClassPath;
0 14 1 classname Ljava/lang/String;
1 14 2 jarURL Ljava/net/URL;
6 9 3 con Ljava/net/URLConnection;
Exception table:
from to target type
2 4 9 Class java.io.IOException
5 8 9 Class java.io.IOException
Exceptions:
throws javassist.NotFoundException
MethodParameters:
Name Flags
classname
public java.net.URL find(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield javassist.JarClassPath.jarfileEntries:Ljava/util/List;
aload 2
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 5
2: new java.net.URL
dup
ldc "jar:%s!/%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
3: areturn
4: StackMap locals: javassist.JarClassPath java.lang.String java.lang.String
StackMap stack: java.net.MalformedURLException
pop
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavassist/JarClassPath;
0 6 1 classname Ljava/lang/String;
1 6 2 jarname Ljava/lang/String;
Exception table:
from to target type
2 3 4 Class java.net.MalformedURLException
MethodParameters:
Name Flags
classname
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
ifnonnull 1
ldc "<null>"
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
invokevirtual java.lang.String.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljavassist/JarClassPath;
}
SourceFile: "ClassPoolTail.java"