public class org.aspectj.util.UtilClassLoader extends java.net.URLClassLoader
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.aspectj.util.UtilClassLoader
super_class: java.net.URLClassLoader
{
java.util.List<java.io.File> dirs;
descriptor: Ljava/util/List;
flags: (0x0000)
Signature: Ljava/util/List<Ljava/io/File;>;
private java.net.URL[] urlsForDebugString;
descriptor: [Ljava/net/URL;
flags: (0x0002) ACC_PRIVATE
public void <init>(java.net.URL[], java.io.File[]);
descriptor: ([Ljava/net/URL;[Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;)V
1: aload 2
ldc Ljava/io/File;
ldc "dirs"
invokestatic org.aspectj.util.LangUtil.throwIaxIfNotAssignable:([Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/String;)V
2: aload 0
aload 1
putfield org.aspectj.util.UtilClassLoader.urlsForDebugString:[Ljava/net/URL;
3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: aload 2
invokestatic org.aspectj.util.LangUtil.isEmpty:([Ljava/lang/Object;)Z
ifne 6
5: aload 3
aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
6: StackMap locals: org.aspectj.util.UtilClassLoader java.net.URL[] java.io.File[] java.util.ArrayList
StackMap stack:
aload 0
aload 3
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
putfield org.aspectj.util.UtilClassLoader.dirs:Ljava/util/List;
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/aspectj/util/UtilClassLoader;
0 8 1 urls [Ljava/net/URL;
0 8 2 dirs [Ljava/io/File;
4 8 3 dcopy Ljava/util/ArrayList<Ljava/io/File;>;
MethodParameters:
Name Flags
urls
dirs
public java.net.URL getResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.lang.ClassLoader.getSystemResource:(Ljava/lang/String;)Ljava/net/URL;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/aspectj/util/UtilClassLoader;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public java.io.InputStream getResourceAsStream(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.lang.ClassLoader.getSystemResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/aspectj/util/UtilClassLoader;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public synchronized java.lang.Class<?> loadClass(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
aload 1
invokevirtual org.aspectj.util.UtilClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 2: aload 4
ifnull 5
3: iconst_0
istore 2
4: goto 9
5: StackMap locals: java.lang.ClassNotFoundException java.lang.Class
StackMap stack:
aload 0
aload 1
invokevirtual org.aspectj.util.UtilClassLoader.findSystemClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
6: goto 9
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
7: astore 5
start local 5 8: aload 5
astore 3
end local 5 9: StackMap locals:
StackMap stack:
aload 4
ifnonnull 16
10: aload 0
aload 1
iload 2
invokespecial java.net.URLClassLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
astore 4
11: goto 14
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
12: astore 5
start local 5 13: aload 5
astore 3
end local 5 14: StackMap locals:
StackMap stack:
aload 4
ifnull 16
15: aload 4
areturn
16: StackMap locals:
StackMap stack:
aload 4
ifnonnull 20
17: aload 0
aload 1
invokevirtual org.aspectj.util.UtilClassLoader.readClass:(Ljava/lang/String;)[B
astore 5
start local 5 18: aload 5
ifnull 20
19: aload 0
aload 1
aload 5
iconst_0
aload 5
arraylength
invokevirtual org.aspectj.util.UtilClassLoader.defineClass:(Ljava/lang/String;[BII)Ljava/lang/Class;
astore 4
end local 5 20: StackMap locals:
StackMap stack:
aload 4
ifnonnull 24
21: aload 3
ifnull 22
aload 3
goto 23
StackMap locals:
StackMap stack:
22: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
23: athrow
24: StackMap locals:
StackMap stack:
iload 2
ifeq 26
25: aload 0
aload 4
invokevirtual org.aspectj.util.UtilClassLoader.resolveClass:(Ljava/lang/Class;)V
26: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/aspectj/util/UtilClassLoader;
0 27 1 name Ljava/lang/String;
0 27 2 resolve Z
1 27 3 thrown Ljava/lang/ClassNotFoundException;
2 27 4 result Ljava/lang/Class<*>;
8 9 5 e Ljava/lang/ClassNotFoundException;
13 14 5 e Ljava/lang/ClassNotFoundException;
18 20 5 data [B
Exception table:
from to target type
5 6 7 Class java.lang.ClassNotFoundException
10 11 12 Class java.lang.ClassNotFoundException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
resolve
private byte[] readClass(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, 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 org.aspectj.util.UtilClassLoader.dirs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 2: goto 6
3: StackMap locals: java.lang.String java.util.Iterator
StackMap stack:
new java.io.File
dup
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.File
aload 2
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 4
start local 4 4: aload 4
invokevirtual java.io.File.canRead:()Z
ifeq 6
5: aload 0
aload 4
invokevirtual org.aspectj.util.UtilClassLoader.getClassData:(Ljava/io/File;)[B
areturn
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 3 7: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/aspectj/util/UtilClassLoader;
0 8 1 className Ljava/lang/String;
1 8 2 fileName Ljava/lang/String;
2 7 3 iter Ljava/util/Iterator<Ljava/io/File;>;
4 6 4 file Ljava/io/File;
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
className
private byte[] getClassData(java.io.File);
descriptor: (Ljava/io/File;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 2
start local 2 1: new java.io.ByteArrayOutputStream
dup
sipush 1000
invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
astore 3
start local 3 2: sipush 4096
newarray 8
astore 4
start local 4 3: goto 5
start local 5 4: StackMap locals: org.aspectj.util.UtilClassLoader java.io.File java.io.FileInputStream java.io.ByteArrayOutputStream byte[] int
StackMap stack:
aload 3
aload 4
iconst_0
iload 5
invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
end local 5 5: StackMap locals:
StackMap stack:
aload 2
aload 4
invokevirtual java.io.FileInputStream.read:([B)I
dup
istore 5
start local 5 6: iconst_m1
if_icmpne 4
7: aload 2
invokevirtual java.io.FileInputStream.close:()V
8: aload 3
invokevirtual java.io.ByteArrayOutputStream.close:()V
9: aload 3
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
10: areturn
end local 5 end local 4 end local 3 end local 2 11: StackMap locals: org.aspectj.util.UtilClassLoader java.io.File
StackMap stack: java.io.IOException
pop
12: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/aspectj/util/UtilClassLoader;
0 13 1 f Ljava/io/File;
1 11 2 stream Ljava/io/FileInputStream;
2 11 3 out Ljava/io/ByteArrayOutputStream;
3 11 4 b [B
4 5 5 n I
6 11 5 n I
Exception table:
from to target type
0 10 11 Class java.io.IOException
MethodParameters:
Name Flags
f
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "UtilClassLoader(urls="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
getfield org.aspectj.util.UtilClassLoader.urlsForDebugString:[Ljava/net/URL;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: ldc ", dirs="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 0
getfield org.aspectj.util.UtilClassLoader.dirs:Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/aspectj/util/UtilClassLoader;
}
SourceFile: "UtilClassLoader.java"