public class com.sun.istack.internal.tools.ParallelWorldClassLoader extends java.lang.ClassLoader implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.istack.internal.tools.ParallelWorldClassLoader
super_class: java.lang.ClassLoader
{
private final java.lang.String prefix;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.util.jar.JarFile> jars;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/util/jar/JarFile;>;
public void <init>(java.lang.ClassLoader, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;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
aload 1
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/ClassLoader;)V
1: aload 0
aload 2
putfield com.sun.istack.internal.tools.ParallelWorldClassLoader.prefix:Ljava/lang/String;
2: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
putfield com.sun.istack.internal.tools.ParallelWorldClassLoader.jars:Ljava/util/Set;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
0 4 1 parent Ljava/lang/ClassLoader;
0 4 2 prefix Ljava/lang/String;
MethodParameters:
Name Flags
parent
prefix
protected java.lang.Class findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=14, args_size=2
start local 0 start local 1 0: new java.lang.StringBuffer
dup
aload 1
invokevirtual java.lang.String.length:()I
aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.prefix:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iadd
bipush 6
iadd
invokespecial java.lang.StringBuffer.<init>:(I)V
astore 2
start local 2 1: aload 2
aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.prefix:Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
ldc ".class"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
2: aload 0
invokevirtual com.sun.istack.internal.tools.ParallelWorldClassLoader.getParent:()Ljava/lang/ClassLoader;
aload 2
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.StringBuffer java.net.URL
StackMap stack:
aconst_null
astore 4
start local 4 6: aconst_null
astore 5
start local 5 7: aload 3
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 5
8: aload 5
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
astore 4
9: goto 12
StackMap locals: com.sun.istack.internal.tools.ParallelWorldClassLoader java.lang.String java.lang.StringBuffer java.net.URL java.io.InputStream java.net.URLConnection
StackMap stack: java.io.IOException
10: pop
11: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 4
ifnonnull 14
13: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 6
start local 6 15: sipush 1024
newarray 8
astore 7
start local 7 16: goto 18
start local 8 17: StackMap locals: java.io.ByteArrayOutputStream byte[] int
StackMap stack:
aload 6
aload 7
iconst_0
iload 8
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
end local 8 18: StackMap locals:
StackMap stack:
aload 4
aload 7
invokevirtual java.io.InputStream.read:([B)I
dup
istore 8
start local 8 19: ifge 17
20: aload 6
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 7
21: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 9
start local 9 22: iload 9
iconst_m1
if_icmpeq 27
23: aload 1
iconst_0
iload 9
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 10
start local 10 24: aload 0
aload 10
invokevirtual com.sun.istack.internal.tools.ParallelWorldClassLoader.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 11
start local 11 25: aload 11
ifnonnull 27
26: aload 0
aload 10
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
invokevirtual com.sun.istack.internal.tools.ParallelWorldClassLoader.definePackage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;
pop
end local 11 end local 10 27: StackMap locals: int int
StackMap stack:
aload 0
aload 1
aload 7
iconst_0
aload 7
arraylength
invokevirtual com.sun.istack.internal.tools.ParallelWorldClassLoader.defineClass:(Ljava/lang/String;[BII)Ljava/lang/Class;
astore 13
28: aload 5
ifnull 32
aload 5
instanceof java.net.JarURLConnection
ifeq 32
29: aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.jars:Ljava/util/Set;
aload 5
checkcast java.net.JarURLConnection
invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
30: goto 32
StackMap locals: com.sun.istack.internal.tools.ParallelWorldClassLoader java.lang.String java.lang.StringBuffer java.net.URL java.io.InputStream java.net.URLConnection java.io.ByteArrayOutputStream byte[] int int top top top java.lang.Class
StackMap stack: java.io.IOException
31: pop
32: StackMap locals:
StackMap stack:
aload 4
ifnull 36
33: aload 4
invokevirtual java.io.InputStream.close:()V
34: goto 36
StackMap locals:
StackMap stack: java.io.IOException
35: pop
36: StackMap locals:
StackMap stack:
aload 13
areturn
end local 9 end local 8 end local 7 end local 6 37: StackMap locals: com.sun.istack.internal.tools.ParallelWorldClassLoader java.lang.String java.lang.StringBuffer java.net.URL java.io.InputStream java.net.URLConnection
StackMap stack: java.io.IOException
astore 6
start local 6 38: new java.lang.ClassNotFoundException
dup
aload 1
aload 6
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 39: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
40: aload 5
ifnull 44
aload 5
instanceof java.net.JarURLConnection
ifeq 44
41: aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.jars:Ljava/util/Set;
aload 5
checkcast java.net.JarURLConnection
invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
42: goto 44
StackMap locals: com.sun.istack.internal.tools.ParallelWorldClassLoader java.lang.String java.lang.StringBuffer java.net.URL java.io.InputStream java.net.URLConnection top top top top top top java.lang.Throwable
StackMap stack: java.io.IOException
43: pop
44: StackMap locals:
StackMap stack:
aload 4
ifnull 48
45: aload 4
invokevirtual java.io.InputStream.close:()V
46: goto 48
StackMap locals:
StackMap stack: java.io.IOException
47: pop
48: StackMap locals:
StackMap stack:
aload 12
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 49 0 this Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
0 49 1 name Ljava/lang/String;
1 49 2 sb Ljava/lang/StringBuffer;
3 49 3 u Ljava/net/URL;
6 49 4 is Ljava/io/InputStream;
7 49 5 con Ljava/net/URLConnection;
15 37 6 baos Ljava/io/ByteArrayOutputStream;
16 37 7 buf [B
17 18 8 len I
19 37 8 len I
22 37 9 packIndex I
24 27 10 pkgname Ljava/lang/String;
25 27 11 pkg Ljava/lang/Package;
38 39 6 e Ljava/io/IOException;
Exception table:
from to target type
7 9 10 Class java.io.IOException
28 30 31 Class java.io.IOException
33 34 35 Class java.io.IOException
14 28 37 Class java.io.IOException
14 28 39 any
37 39 39 any
40 42 43 Class java.io.IOException
45 46 47 Class java.io.IOException
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
name
protected java.net.URL findResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.sun.istack.internal.tools.ParallelWorldClassLoader.getParent:()Ljava/lang/ClassLoader;
new java.lang.StringBuilder
dup
aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.prefix:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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;
astore 2
start local 2 1: aload 2
ifnull 11
2: aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.jars:Ljava/util/Set;
new java.util.jar.JarFile
dup
new java.io.File
dup
aload 2
invokestatic com.sun.istack.internal.tools.ParallelWorldClassLoader.toJarUrl:(Ljava/net/URL;)Ljava/net/URL;
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;)V
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: goto 11
StackMap locals: com.sun.istack.internal.tools.ParallelWorldClassLoader java.lang.String java.net.URL
StackMap stack: java.net.URISyntaxException
4: astore 3
start local 3 5: ldc Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
aconst_null
aload 3
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 6: goto 11
7: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 8: ldc Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
aconst_null
aload 3
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 9: goto 11
10: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
0 12 1 name Ljava/lang/String;
1 12 2 u Ljava/net/URL;
5 6 3 ex Ljava/net/URISyntaxException;
8 9 3 ex Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.net.URISyntaxException
2 3 7 Class java.io.IOException
2 3 10 Class java.lang.ClassNotFoundException
MethodParameters:
Name Flags
name
protected java.util.Enumeration<java.net.URL> findResources(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.sun.istack.internal.tools.ParallelWorldClassLoader.getParent:()Ljava/lang/ClassLoader;
new java.lang.StringBuilder
dup
aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.prefix:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 2
start local 2 1: goto 11
2: StackMap locals: java.util.Enumeration
StackMap stack:
aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.jars:Ljava/util/Set;
new java.util.jar.JarFile
dup
new java.io.File
dup
aload 2
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.net.URL
invokestatic com.sun.istack.internal.tools.ParallelWorldClassLoader.toJarUrl:(Ljava/net/URL;)Ljava/net/URL;
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;)V
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: goto 11
StackMap locals:
StackMap stack: java.net.URISyntaxException
4: astore 3
start local 3 5: ldc Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
aconst_null
aload 3
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 6: goto 11
7: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 8: ldc Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
aconst_null
aload 3
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 9: goto 11
10: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
11: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 2
12: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
0 13 1 name Ljava/lang/String;
1 13 2 en Ljava/util/Enumeration<Ljava/net/URL;>;
5 6 3 ex Ljava/net/URISyntaxException;
8 9 3 ex Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.net.URISyntaxException
2 3 7 Class java.io.IOException
2 3 10 Class java.lang.ClassNotFoundException
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.istack.internal.tools.ParallelWorldClassLoader.jars:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: com.sun.istack.internal.tools.ParallelWorldClassLoader top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.jar.JarFile
astore 1
start local 1 2: aload 1
invokevirtual java.util.jar.JarFile.close:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/istack/internal/tools/ParallelWorldClassLoader;
2 3 1 jar Ljava/util/jar/JarFile;
Exceptions:
throws java.io.IOException
public static java.net.URL toJarUrl(java.net.URL);
descriptor: (Ljava/net/URL;)Ljava/net/URL;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ldc "jar:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 3
2: new java.lang.ClassNotFoundException
dup
new java.lang.StringBuilder
dup
ldc "Loaded outside a jar "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
4: aload 1
iconst_0
aload 1
bipush 33
invokevirtual java.lang.String.lastIndexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
5: aload 1
ldc " "
ldc "%20"
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
6: new java.net.URL
dup
aload 1
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 res Ljava/net/URL;
1 7 1 url Ljava/lang/String;
Exceptions:
throws java.lang.ClassNotFoundException, java.net.MalformedURLException
MethodParameters:
Name Flags
res
}
SourceFile: "ParallelWorldClassLoader.java"