public abstract class java.lang.ClassLoader
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: java.lang.ClassLoader
super_class: java.lang.Object
{
private final java.lang.ClassLoader parent;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentHashMap<java.lang.String, java.lang.Object> parallelLockMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Ljava/lang/Object;>;
private final java.util.Map<java.lang.String, java.security.cert.Certificate[]> package2certs;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;[Ljava/security/cert/Certificate;>;
private static final java.security.cert.Certificate[] nocerts;
descriptor: [Ljava/security/cert/Certificate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Vector<java.lang.Class<?>> classes;
descriptor: Ljava/util/Vector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Vector<Ljava/lang/Class<*>;>;
private final java.security.ProtectionDomain defaultDomain;
descriptor: Ljava/security/ProtectionDomain;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.HashMap<java.lang.String, java.lang.Package> packages;
descriptor: Ljava/util/HashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Package;>;
private static java.lang.ClassLoader scl;
descriptor: Ljava/lang/ClassLoader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static boolean sclSet;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.util.Vector<java.lang.String> loadedLibraryNames;
descriptor: Ljava/util/Vector;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Vector<Ljava/lang/String;>;
private static java.util.Vector<java.lang.ClassLoader$NativeLibrary> systemNativeLibraries;
descriptor: Ljava/util/Vector;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Vector<Ljava/lang/ClassLoader$NativeLibrary;>;
private java.util.Vector<java.lang.ClassLoader$NativeLibrary> nativeLibraries;
descriptor: Ljava/util/Vector;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Vector<Ljava/lang/ClassLoader$NativeLibrary;>;
private static java.util.Stack<java.lang.ClassLoader$NativeLibrary> nativeLibraryContext;
descriptor: Ljava/util/Stack;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Stack<Ljava/lang/ClassLoader$NativeLibrary;>;
private static java.lang.String[] usr_paths;
descriptor: [Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.String[] sys_paths;
descriptor: [Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
final java.lang.Object assertionLock;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
private boolean defaultAssertionStatus;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.lang.String, java.lang.Boolean> packageAssertionStatus;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Boolean;>;
java.util.Map<java.lang.String, java.lang.Boolean> classAssertionStatus;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Boolean;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic java.lang.ClassLoader.registerNatives:()V
1: iconst_0
anewarray java.security.cert.Certificate
putstatic java.lang.ClassLoader.nocerts:[Ljava/security/cert/Certificate;
2: new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putstatic java.lang.ClassLoader.loadedLibraryNames:Ljava/util/Vector;
3: new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
4: putstatic java.lang.ClassLoader.systemNativeLibraries:Ljava/util/Vector;
5: new java.util.Stack
dup
invokespecial java.util.Stack.<init>:()V
putstatic java.lang.ClassLoader.nativeLibraryContext:Ljava/util/Stack;
6: return
LocalVariableTable:
Start End Slot Name Signature
private static native void registerNatives();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
void addClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.ClassLoader.classes:Ljava/util/Vector;
aload 1
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ClassLoader;
0 2 1 c Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
c
private static java.lang.Void checkCreateClassLoader();
descriptor: ()Ljava/lang/Void;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
invokevirtual java.lang.SecurityManager.checkCreateClassLoader:()V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 security Ljava/lang/SecurityManager;
private void <init>(java.lang.Void, java.lang.ClassLoader);
descriptor: (Ljava/lang/Void;Ljava/lang/ClassLoader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putfield java.lang.ClassLoader.classes:Ljava/util/Vector;
2: aload 0
3: new java.security.ProtectionDomain
dup
new java.security.CodeSource
dup
aconst_null
aconst_null
invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
4: aconst_null
aload 0
aconst_null
5: invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;Ljava/lang/ClassLoader;[Ljava/security/Principal;)V
putfield java.lang.ClassLoader.defaultDomain:Ljava/security/ProtectionDomain;
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
7: aload 0
new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putfield java.lang.ClassLoader.nativeLibraries:Ljava/util/Vector;
8: aload 0
iconst_0
putfield java.lang.ClassLoader.defaultAssertionStatus:Z
9: aload 0
aconst_null
putfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
10: aload 0
aconst_null
putfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
11: aload 0
aload 2
putfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
12: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader$ParallelLoaders.isRegistered:(Ljava/lang/Class;)Z
ifeq 17
13: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
14: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
15: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
16: goto 20
17: StackMap locals: java.lang.ClassLoader java.lang.Void java.lang.ClassLoader
StackMap stack:
aload 0
aconst_null
putfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
18: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
19: aload 0
aload 0
putfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljava/lang/ClassLoader;
0 21 1 unused Ljava/lang/Void;
0 21 2 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
unused
parent
protected void <init>(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.lang.ClassLoader.checkCreateClassLoader:()Ljava/lang/Void;
aload 1
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/Void;Ljava/lang/ClassLoader;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ClassLoader;
0 2 1 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
parent
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.ClassLoader.checkCreateClassLoader:()Ljava/lang/Void;
invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/Void;Ljava/lang/ClassLoader;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ClassLoader;
public java.lang.Class<?> loadClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 name Ljava/lang/String;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
protected java.lang.Class<?> loadClass(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.ClassLoader.getClassLoadingLock:(Ljava/lang/String;)Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
aload 1
invokevirtual java.lang.ClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 2: aload 4
ifnonnull 16
3: invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 4: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 7
5: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
aload 1
iconst_0
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
astore 4
6: goto 10
7: StackMap locals: java.lang.Object java.lang.Class long
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.ClassLoader.findBootstrapClassOrNull:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
8: goto 10
StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
9: pop
10: StackMap locals:
StackMap stack:
aload 4
ifnonnull 16
11: invokestatic java.lang.System.nanoTime:()J
lstore 7
start local 7 12: aload 0
aload 1
invokevirtual java.lang.ClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
13: invokestatic sun.misc.PerfCounter.getParentDelegationTime:()Lsun/misc/PerfCounter;
lload 7
lload 5
lsub
invokevirtual sun.misc.PerfCounter.addTime:(J)V
14: invokestatic sun.misc.PerfCounter.getFindClassTime:()Lsun/misc/PerfCounter;
lload 7
invokevirtual sun.misc.PerfCounter.addElapsedTimeFrom:(J)V
15: invokestatic sun.misc.PerfCounter.getFindClasses:()Lsun/misc/PerfCounter;
invokevirtual sun.misc.PerfCounter.increment:()V
end local 7 end local 5 16: StackMap locals:
StackMap stack:
iload 2
ifeq 18
17: aload 0
aload 4
invokevirtual java.lang.ClassLoader.resolveClass:(Ljava/lang/Class;)V
18: StackMap locals:
StackMap stack:
aload 4
aload 3
monitorexit
19: areturn
end local 4 20: StackMap locals: java.lang.ClassLoader java.lang.String int java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
21: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/lang/ClassLoader;
0 22 1 name Ljava/lang/String;
0 22 2 resolve Z
2 20 4 c Ljava/lang/Class<*>;
4 16 5 t0 J
12 16 7 t1 J
Exception table:
from to target type
4 8 9 Class java.lang.ClassNotFoundException
1 19 20 any
20 21 20 any
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
resolve
protected java.lang.Object getClassLoadingLock(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: aload 0
getfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
ifnull 6
2: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
astore 3
start local 3 3: aload 0
getfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 3
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 2
4: aload 2
ifnonnull 6
5: aload 3
astore 2
end local 3 6: StackMap locals: java.lang.Object
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/ClassLoader;
0 7 1 className Ljava/lang/String;
1 7 2 lock Ljava/lang/Object;
3 6 3 newLock Ljava/lang/Object;
MethodParameters:
Name Flags
className
private java.lang.Class<?> loadClassInternal(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
ifnonnull 6
1: aload 0
dup
astore 2
monitorenter
2: aload 0
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
aload 2
monitorexit
3: areturn
4: StackMap locals: java.lang.ClassLoader java.lang.String java.lang.ClassLoader
StackMap stack: java.lang.Throwable
aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/ClassLoader;
0 7 1 name Ljava/lang/String;
Exception table:
from to target type
2 3 4 any
4 5 4 any
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
private void checkPackageAccess(java.lang.Class<?>, java.security.ProtectionDomain);
descriptor: (Ljava/lang/Class;Ljava/security/ProtectionDomain;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 1: aload 3
ifnull 15
2: aload 1
invokestatic sun.reflect.misc.ReflectUtil.isNonPublicProxyClass:(Ljava/lang/Class;)Z
ifeq 9
3: aload 1
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 7
StackMap locals: java.lang.ClassLoader java.lang.Class java.security.ProtectionDomain java.lang.SecurityManager top int int java.lang.Class[]
StackMap stack:
4: aload 7
iload 5
aaload
astore 4
start local 4 5: aload 0
aload 4
aload 2
invokevirtual java.lang.ClassLoader.checkPackageAccess:(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V
end local 4 6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
iload 6
if_icmplt 4
8: return
9: StackMap locals: java.lang.ClassLoader java.lang.Class java.security.ProtectionDomain java.lang.SecurityManager
StackMap stack:
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 4
start local 4 10: aload 4
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 5
start local 5 11: iload 5
iconst_m1
if_icmpeq 15
12: new java.lang.ClassLoader$1
dup
aload 0
aload 3
aload 4
iload 5
invokespecial java.lang.ClassLoader$1.<init>:(Ljava/lang/ClassLoader;Ljava/lang/SecurityManager;Ljava/lang/String;I)V
13: new java.security.AccessControlContext
dup
iconst_1
anewarray java.security.ProtectionDomain
dup
iconst_0
aload 2
aastore
invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
14: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
pop
end local 5 end local 4 15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/lang/ClassLoader;
0 16 1 cls Ljava/lang/Class<*>;
0 16 2 pd Ljava/security/ProtectionDomain;
1 16 3 sm Ljava/lang/SecurityManager;
5 6 4 intf Ljava/lang/Class<*>;
10 15 4 name Ljava/lang/String;
11 15 5 i I
Signature: (Ljava/lang/Class<*>;Ljava/security/ProtectionDomain;)V
MethodParameters:
Name Flags
cls
pd
protected java.lang.Class<?> findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 name Ljava/lang/String;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
protected final java.lang.Class<?> defineClass(byte[], int, int);
descriptor: ([BII)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
aload 1
iload 2
iload 3
aconst_null
invokevirtual java.lang.ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 b [B
0 1 2 off I
0 1 3 len I
Exceptions:
throws java.lang.ClassFormatError
Signature: ([BII)Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
b
off
len
protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int);
descriptor: (Ljava/lang/String;[BII)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
iload 3
iload 4
aconst_null
invokevirtual java.lang.ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 name Ljava/lang/String;
0 1 2 b [B
0 1 3 off I
0 1 4 len I
Exceptions:
throws java.lang.ClassFormatError
Signature: (Ljava/lang/String;[BII)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
off
len
private java.security.ProtectionDomain preDefineClass(java.lang.String, java.security.ProtectionDomain);
descriptor: (Ljava/lang/String;Ljava/security/ProtectionDomain;)Ljava/security/ProtectionDomain;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.ClassLoader.checkName:(Ljava/lang/String;)Z
ifne 2
1: new java.lang.NoClassDefFoundError
dup
new java.lang.StringBuilder
dup
ldc "IllegalName: "
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.NoClassDefFoundError.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnull 8
aload 1
ldc "java."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
3: new java.lang.SecurityException
dup
4: new java.lang.StringBuilder
dup
ldc "Prohibited package name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
5: aload 1
iconst_0
aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 2
ifnonnull 10
9: aload 0
getfield java.lang.ClassLoader.defaultDomain:Ljava/security/ProtectionDomain;
astore 2
10: StackMap locals:
StackMap stack:
aload 1
ifnull 11
aload 0
aload 1
aload 2
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.lang.ClassLoader.checkCerts:(Ljava/lang/String;Ljava/security/CodeSource;)V
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 Ljava/lang/ClassLoader;
0 12 1 name Ljava/lang/String;
0 12 2 pd Ljava/security/ProtectionDomain;
MethodParameters:
Name Flags
name
pd
private java.lang.String defineClassSourceLocation(java.security.ProtectionDomain);
descriptor: (Ljava/security/ProtectionDomain;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 2
ifnull 4
aload 2
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
ifnull 4
3: aload 2
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
invokevirtual java.net.URL.toString:()Ljava/lang/String;
astore 3
4: StackMap locals: java.security.CodeSource java.lang.String
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/ClassLoader;
0 5 1 pd Ljava/security/ProtectionDomain;
1 5 2 cs Ljava/security/CodeSource;
2 5 3 source Ljava/lang/String;
MethodParameters:
Name Flags
pd
private void postDefineClass(java.lang.Class<?>, java.security.ProtectionDomain);
descriptor: (Ljava/lang/Class;Ljava/security/ProtectionDomain;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
ifnull 4
1: aload 2
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getCertificates:()[Ljava/security/cert/Certificate;
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 0
aload 1
aload 3
invokevirtual java.lang.ClassLoader.setSigners:(Ljava/lang/Class;[Ljava/lang/Object;)V
end local 3 4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/ClassLoader;
0 5 1 c Ljava/lang/Class<*>;
0 5 2 pd Ljava/security/ProtectionDomain;
2 4 3 certs [Ljava/security/cert/Certificate;
Signature: (Ljava/lang/Class<*>;Ljava/security/ProtectionDomain;)V
MethodParameters:
Name Flags
c
pd
protected final java.lang.Class<?> defineClass(java.lang.String, byte[], int, int, java.security.ProtectionDomain);
descriptor: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 5
invokevirtual java.lang.ClassLoader.preDefineClass:(Ljava/lang/String;Ljava/security/ProtectionDomain;)Ljava/security/ProtectionDomain;
astore 5
1: aload 0
aload 5
invokevirtual java.lang.ClassLoader.defineClassSourceLocation:(Ljava/security/ProtectionDomain;)Ljava/lang/String;
astore 6
start local 6 2: aload 0
aload 1
aload 2
iload 3
iload 4
aload 5
aload 6
invokevirtual java.lang.ClassLoader.defineClass1:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
astore 7
start local 7 3: aload 0
aload 7
aload 5
invokevirtual java.lang.ClassLoader.postDefineClass:(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V
4: aload 7
areturn
end local 7 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 5 0 this Ljava/lang/ClassLoader;
0 5 1 name Ljava/lang/String;
0 5 2 b [B
0 5 3 off I
0 5 4 len I
0 5 5 protectionDomain Ljava/security/ProtectionDomain;
2 5 6 source Ljava/lang/String;
3 5 7 c Ljava/lang/Class<*>;
Exceptions:
throws java.lang.ClassFormatError
Signature: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
off
len
protectionDomain
protected final java.lang.Class<?> defineClass(java.lang.String, java.nio.ByteBuffer, java.security.ProtectionDomain);
descriptor: (Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 1: aload 2
invokevirtual java.nio.ByteBuffer.isDirect:()Z
ifne 10
2: aload 2
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 7
3: aload 0
aload 1
aload 2
invokevirtual java.nio.ByteBuffer.array:()[B
4: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
aload 2
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iadd
iload 4
5: aload 3
6: invokevirtual java.lang.ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
areturn
7: StackMap locals: int
StackMap stack:
iload 4
newarray 8
astore 5
start local 5 8: aload 2
aload 5
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
9: aload 0
aload 1
aload 5
iconst_0
iload 4
aload 3
invokevirtual java.lang.ClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
areturn
end local 5 10: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual java.lang.ClassLoader.preDefineClass:(Ljava/lang/String;Ljava/security/ProtectionDomain;)Ljava/security/ProtectionDomain;
astore 3
11: aload 0
aload 3
invokevirtual java.lang.ClassLoader.defineClassSourceLocation:(Ljava/security/ProtectionDomain;)Ljava/lang/String;
astore 5
start local 5 12: aload 0
aload 1
aload 2
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
iload 4
aload 3
aload 5
invokevirtual java.lang.ClassLoader.defineClass2:(Ljava/lang/String;Ljava/nio/ByteBuffer;IILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
astore 6
start local 6 13: aload 0
aload 6
aload 3
invokevirtual java.lang.ClassLoader.postDefineClass:(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V
14: 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 15 0 this Ljava/lang/ClassLoader;
0 15 1 name Ljava/lang/String;
0 15 2 b Ljava/nio/ByteBuffer;
0 15 3 protectionDomain Ljava/security/ProtectionDomain;
1 15 4 len I
8 10 5 tb [B
12 15 5 source Ljava/lang/String;
13 15 6 c Ljava/lang/Class<*>;
Exceptions:
throws java.lang.ClassFormatError
Signature: (Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
protectionDomain
private native java.lang.Class<?> defineClass0(java.lang.String, byte[], int, int, java.security.ProtectionDomain);
descriptor: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
off
len
pd
private native java.lang.Class<?> defineClass1(java.lang.String, byte[], int, int, java.security.ProtectionDomain, java.lang.String);
descriptor: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
off
len
pd
source
private native java.lang.Class<?> defineClass2(java.lang.String, java.nio.ByteBuffer, int, int, java.security.ProtectionDomain, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/nio/ByteBuffer;IILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (Ljava/lang/String;Ljava/nio/ByteBuffer;IILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
off
len
pd
source
private boolean checkName(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.length:()I
ifne 2
1: StackMap locals:
StackMap stack:
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 4
3: invokestatic sun.misc.VM.allowArraySyntax:()Z
ifne 5
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 91
if_icmpne 5
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ClassLoader;
0 6 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private void checkCerts(java.lang.String, java.security.CodeSource);
descriptor: (Ljava/lang/String;Ljava/security/CodeSource;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 3
start local 3 1: iload 3
iconst_m1
if_icmpne 2
ldc ""
goto 3
StackMap locals: int
StackMap stack:
2: aload 1
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
3: astore 4
start local 4 4: aconst_null
astore 5
start local 5 5: aload 2
ifnull 7
6: aload 2
invokevirtual java.security.CodeSource.getCertificates:()[Ljava/security/cert/Certificate;
astore 5
7: StackMap locals: java.lang.String java.security.cert.Certificate[]
StackMap stack:
aconst_null
astore 6
start local 6 8: aload 0
getfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
ifnonnull 19
9: aload 0
dup
astore 7
monitorenter
10: aload 0
getfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
astore 6
11: aload 6
ifnonnull 15
12: aload 0
getfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
aload 4
aload 5
ifnonnull 13
getstatic java.lang.ClassLoader.nocerts:[Ljava/security/cert/Certificate;
goto 14
StackMap locals: java.lang.ClassLoader java.lang.String java.security.CodeSource int java.lang.String java.security.cert.Certificate[] java.security.cert.Certificate[] java.lang.ClassLoader
StackMap stack: java.util.Map java.lang.String
13: aload 5
StackMap locals: java.lang.ClassLoader java.lang.String java.security.CodeSource int java.lang.String java.security.cert.Certificate[] java.security.cert.Certificate[] java.lang.ClassLoader
StackMap stack: java.util.Map java.lang.String java.security.cert.Certificate[]
14: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: StackMap locals:
StackMap stack:
aload 7
monitorexit
16: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 7
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
checkcast java.util.concurrent.ConcurrentHashMap
20: aload 4
aload 5
ifnonnull 21
getstatic java.lang.ClassLoader.nocerts:[Ljava/security/cert/Certificate;
goto 22
StackMap locals: java.lang.ClassLoader java.lang.String java.security.CodeSource int java.lang.String java.security.cert.Certificate[] java.security.cert.Certificate[]
StackMap stack: java.util.concurrent.ConcurrentHashMap java.lang.String
21: aload 5
StackMap locals: java.lang.ClassLoader java.lang.String java.security.CodeSource int java.lang.String java.security.cert.Certificate[] java.security.cert.Certificate[]
StackMap stack: java.util.concurrent.ConcurrentHashMap java.lang.String java.security.cert.Certificate[]
22: invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
23: astore 6
24: StackMap locals:
StackMap stack:
aload 6
ifnull 28
aload 0
aload 6
aload 5
invokevirtual java.lang.ClassLoader.compareCerts:([Ljava/security/cert/Certificate;[Ljava/security/cert/Certificate;)Z
ifne 28
25: new java.lang.SecurityException
dup
new java.lang.StringBuilder
dup
ldc "class \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: ldc "\"'s signer information does not match signer information of other classes in the same package"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
return
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 29 0 this Ljava/lang/ClassLoader;
0 29 1 name Ljava/lang/String;
0 29 2 cs Ljava/security/CodeSource;
1 29 3 i I
4 29 4 pname Ljava/lang/String;
5 29 5 certs [Ljava/security/cert/Certificate;
8 29 6 pcerts [Ljava/security/cert/Certificate;
Exception table:
from to target type
10 16 17 any
17 18 17 any
MethodParameters:
Name Flags
name
cs
private boolean compareCerts(java.security.cert.Certificate[], java.security.cert.Certificate[]);
descriptor: ([Ljava/security/cert/Certificate;[Ljava/security/cert/Certificate;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
aload 2
arraylength
ifne 3
1: StackMap locals:
StackMap stack:
aload 1
arraylength
ifne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 2
arraylength
aload 1
arraylength
if_icmpeq 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 6: goto 17
7: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] top int
StackMap stack:
iconst_0
istore 3
start local 3 8: iconst_0
istore 5
start local 5 9: goto 14
10: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] int int int
StackMap stack:
aload 2
iload 4
aaload
aload 1
iload 5
aaload
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 13
11: iconst_1
istore 3
12: goto 15
13: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
aload 1
arraylength
if_icmplt 10
end local 5 15: StackMap locals:
StackMap stack:
iload 3
ifne 16
iconst_0
ireturn
16: StackMap locals:
StackMap stack:
iinc 4 1
end local 3 StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] top int
StackMap stack:
17: iload 4
aload 2
arraylength
if_icmplt 7
end local 4 18: iconst_0
istore 4
start local 4 19: goto 30
20: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 21: iconst_0
istore 5
start local 5 22: goto 27
23: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] int int int
StackMap stack:
aload 1
iload 4
aaload
aload 2
iload 5
aaload
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 26
24: iconst_1
istore 3
25: goto 28
26: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
27: iload 5
aload 2
arraylength
if_icmplt 23
end local 5 28: StackMap locals:
StackMap stack:
iload 3
ifne 29
iconst_0
ireturn
29: StackMap locals:
StackMap stack:
iinc 4 1
end local 3 StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] top int
StackMap stack:
30: iload 4
aload 1
arraylength
if_icmplt 20
end local 4 31: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Ljava/lang/ClassLoader;
0 32 1 pcerts [Ljava/security/cert/Certificate;
0 32 2 certs [Ljava/security/cert/Certificate;
8 17 3 match Z
21 30 3 match Z
6 18 4 i I
9 15 5 j I
19 31 4 i I
22 28 5 j I
MethodParameters:
Name Flags
pcerts
certs
protected final void resolveClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.ClassLoader.resolveClass0:(Ljava/lang/Class;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ClassLoader;
0 2 1 c Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
c
private native void resolveClass0(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
c
protected final java.lang.Class<?> findSystemClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 2
start local 2 1: aload 2
ifnonnull 8
2: aload 0
aload 1
invokevirtual java.lang.ClassLoader.checkName:(Ljava/lang/String;)Z
ifne 4
3: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.ClassLoader.findBootstrapClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 3
start local 3 5: aload 3
ifnonnull 7
6: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.lang.Class
StackMap stack:
aload 3
areturn
end local 3 8: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ClassLoader;
0 9 1 name Ljava/lang/String;
1 9 2 system Ljava/lang/ClassLoader;
5 8 3 cls Ljava/lang/Class<*>;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
private java.lang.Class<?> findBootstrapClassOrNull(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.ClassLoader.checkName:(Ljava/lang/String;)Z
ifne 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.ClassLoader.findBootstrapClass:(Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ClassLoader;
0 2 1 name Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
private native java.lang.Class<?> findBootstrapClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
protected final java.lang.Class<?> findLoadedClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.ClassLoader.checkName:(Ljava/lang/String;)Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.ClassLoader.findLoadedClass0:(Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ClassLoader;
0 3 1 name Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
private final native java.lang.Class<?> findLoadedClass0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
protected final void setSigners(java.lang.Class<?>, []);
descriptor: (Ljava/lang/Class;[Ljava/lang/Object;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.lang.Class.setSigners:([Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ClassLoader;
0 2 1 c Ljava/lang/Class<*>;
0 2 2 signers [Ljava/lang/Object;
Signature: (Ljava/lang/Class<*>;[Ljava/lang/Object;)V
MethodParameters:
Name Flags
c
signers
public java.net.URL getResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 3
1: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.ClassLoader.getBootstrapResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 4: StackMap locals: java.net.URL
StackMap stack:
aload 2
ifnonnull 6
5: aload 0
aload 1
invokevirtual java.lang.ClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
6: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/ClassLoader;
0 7 1 name Ljava/lang/String;
2 3 2 url Ljava/net/URL;
4 7 2 url Ljava/net/URL;
MethodParameters:
Name Flags
name
public java.util.Enumeration<java.net.URL> getResources(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iconst_2
anewarray java.util.Enumeration
astore 2
start local 2 1: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 4
2: aload 2
iconst_0
aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
aastore
3: goto 5
4: StackMap locals: java.util.Enumeration[]
StackMap stack:
aload 2
iconst_0
aload 1
invokestatic java.lang.ClassLoader.getBootstrapResources:(Ljava/lang/String;)Ljava/util/Enumeration;
aastore
5: StackMap locals:
StackMap stack:
aload 2
iconst_1
aload 0
aload 1
invokevirtual java.lang.ClassLoader.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
aastore
6: new sun.misc.CompoundEnumeration
dup
aload 2
invokespecial sun.misc.CompoundEnumeration.<init>:([Ljava/util/Enumeration;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/ClassLoader;
0 7 1 name Ljava/lang/String;
1 7 2 tmp [Ljava/util/Enumeration;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
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=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 name Ljava/lang/String;
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=1, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.util.Collections.emptyEnumeration:()Ljava/util/Enumeration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 name Ljava/lang/String;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
protected static boolean registerAsParallelCapable();
descriptor: ()Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
ldc Ljava/lang/ClassLoader;
invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
1: astore 0
start local 0 2: aload 0
invokestatic java.lang.ClassLoader$ParallelLoaders.register:(Ljava/lang/Class;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 3 0 callerClass Ljava/lang/Class<+Ljava/lang/ClassLoader;>;
RuntimeVisibleAnnotations:
sun.reflect.CallerSensitive()
public static java.net.URL getSystemResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
invokestatic java.lang.ClassLoader.getBootstrapResource:(Ljava/lang/String;)Ljava/net/URL;
areturn
3: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 name Ljava/lang/String;
1 4 1 system Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
name
public static java.util.Enumeration<java.net.URL> getSystemResources(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aload 0
invokestatic java.lang.ClassLoader.getBootstrapResources:(Ljava/lang/String;)Ljava/util/Enumeration;
areturn
3: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 name Ljava/lang/String;
1 4 1 system Ljava/lang/ClassLoader;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
private static java.net.URL getBootstrapResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic java.lang.ClassLoader.getBootstrapClassPath:()Lsun/misc/URLClassPath;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual sun.misc.URLClassPath.getResource:(Ljava/lang/String;)Lsun/misc/Resource;
astore 2
start local 2 2: aload 2
ifnull 3
aload 2
invokevirtual sun.misc.Resource.getURL:()Ljava/net/URL;
goto 4
StackMap locals: sun.misc.URLClassPath sun.misc.Resource
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.net.URL
4: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 name Ljava/lang/String;
1 5 1 ucp Lsun/misc/URLClassPath;
2 5 2 res Lsun/misc/Resource;
MethodParameters:
Name Flags
name
private static java.util.Enumeration<java.net.URL> getBootstrapResources(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic java.lang.ClassLoader.getBootstrapClassPath:()Lsun/misc/URLClassPath;
aload 0
invokevirtual sun.misc.URLClassPath.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
1: astore 1
start local 1 2: new java.lang.ClassLoader$2
dup
aload 1
invokespecial java.lang.ClassLoader$2.<init>:(Ljava/util/Enumeration;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 name Ljava/lang/String;
2 3 1 e Ljava/util/Enumeration<Lsun/misc/Resource;>;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
static sun.misc.URLClassPath getBootstrapClassPath();
descriptor: ()Lsun/misc/URLClassPath;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic sun.misc.Launcher.getBootstrapClassPath:()Lsun/misc/URLClassPath;
areturn
LocalVariableTable:
Start End Slot Name Signature
public java.io.InputStream getResourceAsStream(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
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
goto 3
StackMap locals: java.net.URL
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.io.InputStream
3: areturn
4: StackMap locals:
StackMap stack: java.io.IOException
pop
5: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ClassLoader;
0 6 1 name Ljava/lang/String;
1 6 2 url Ljava/net/URL;
Exception table:
from to target type
1 3 4 Class java.io.IOException
MethodParameters:
Name Flags
name
public static java.io.InputStream getSystemResourceAsStream(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokestatic java.lang.ClassLoader.getSystemResource:(Ljava/lang/String;)Ljava/net/URL;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
goto 3
StackMap locals: java.net.URL
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.io.InputStream
3: areturn
4: StackMap locals:
StackMap stack: java.io.IOException
pop
5: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 name Ljava/lang/String;
1 6 1 url Ljava/net/URL;
Exception table:
from to target type
1 3 4 Class java.io.IOException
MethodParameters:
Name Flags
name
public final java.lang.ClassLoader getParent();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 3: aload 1
ifnull 5
4: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader.checkClassLoaderPermission:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
5: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ClassLoader;
3 6 1 sm Ljava/lang/SecurityManager;
RuntimeVisibleAnnotations:
sun.reflect.CallerSensitive()
public static java.lang.ClassLoader getSystemClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.ClassLoader.initSystemClassLoader:()V
1: getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 4: aload 0
ifnull 6
5: getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
invokestatic sun.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader.checkClassLoaderPermission:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
6: StackMap locals: java.lang.SecurityManager
StackMap stack:
getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
4 7 0 sm Ljava/lang/SecurityManager;
RuntimeVisibleAnnotations:
sun.reflect.CallerSensitive()
private static synchronized void initSystemClassLoader();
descriptor: ()V
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=0
0: getstatic java.lang.ClassLoader.sclSet:Z
ifne 19
1: getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
ifnull 3
2: new java.lang.IllegalStateException
dup
ldc "recursive invocation"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
invokestatic sun.misc.Launcher.getLauncher:()Lsun/misc/Launcher;
astore 0
start local 0 4: aload 0
ifnull 18
5: aconst_null
astore 1
start local 1 6: aload 0
invokevirtual sun.misc.Launcher.getClassLoader:()Ljava/lang/ClassLoader;
putstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
7: new java.lang.SystemClassLoaderAction
dup
getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
invokespecial java.lang.SystemClassLoaderAction.<init>:(Ljava/lang/ClassLoader;)V
8: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.lang.ClassLoader
putstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
9: goto 14
StackMap locals: sun.misc.Launcher java.lang.Throwable
StackMap stack: java.security.PrivilegedActionException
10: astore 2
start local 2 11: aload 2
invokevirtual java.security.PrivilegedActionException.getCause:()Ljava/lang/Throwable;
astore 1
12: aload 1
instanceof java.lang.reflect.InvocationTargetException
ifeq 14
13: aload 1
invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
astore 1
end local 2 14: StackMap locals:
StackMap stack:
aload 1
ifnull 18
15: aload 1
instanceof java.lang.Error
ifeq 17
16: aload 1
checkcast java.lang.Error
athrow
17: StackMap locals:
StackMap stack:
new java.lang.Error
dup
aload 1
invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 18: StackMap locals:
StackMap stack:
iconst_1
putstatic java.lang.ClassLoader.sclSet:Z
end local 0 19: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
4 19 0 l Lsun/misc/Launcher;
6 18 1 oops Ljava/lang/Throwable;
11 14 2 pae Ljava/security/PrivilegedActionException;
Exception table:
from to target type
7 9 10 Class java.security.PrivilegedActionException
boolean isAncestor(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
astore 2
start local 2 1: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 2
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
astore 2
2: aload 1
aload 2
if_acmpne 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 2
ifnonnull 1
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ClassLoader;
0 6 1 cl Ljava/lang/ClassLoader;
1 6 2 acl Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
cl
private static boolean needsClassLoaderPermissionCheck(java.lang.ClassLoader, java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.ClassLoader.isAncestor:(Ljava/lang/ClassLoader;)Z
ifeq 5
iconst_0
goto 6
StackMap locals:
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 from Ljava/lang/ClassLoader;
0 7 1 to Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
from
to
static java.lang.ClassLoader getClassLoader(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/ClassLoader;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 caller Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
caller
static void checkClassLoaderPermission(java.lang.ClassLoader, java.lang.Class<?>);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/Class;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 1
invokestatic java.lang.ClassLoader.getClassLoader:(Ljava/lang/Class;)Ljava/lang/ClassLoader;
astore 3
start local 3 3: aload 3
aload 0
invokestatic java.lang.ClassLoader.needsClassLoaderPermissionCheck:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
ifeq 5
4: aload 2
getstatic sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
end local 3 5: StackMap locals: java.lang.SecurityManager
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 cl Ljava/lang/ClassLoader;
0 6 1 caller Ljava/lang/Class<*>;
1 6 2 sm Ljava/lang/SecurityManager;
3 5 3 ccl Ljava/lang/ClassLoader;
Signature: (Ljava/lang/ClassLoader;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
cl
caller
protected java.lang.Package definePackage(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.net.URL);
descriptor: (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;
flags: (0x0004) ACC_PROTECTED
Code:
stack=11, locals=11, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
dup
astore 9
monitorenter
1: aload 0
aload 1
invokevirtual java.lang.ClassLoader.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 10
start local 10 2: aload 10
ifnull 4
3: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.util.HashMap java.lang.Package
StackMap stack:
new java.lang.Package
dup
aload 1
aload 2
aload 3
aload 4
5: aload 5
aload 6
aload 7
6: aload 8
aload 0
7: invokespecial java.lang.Package.<init>:(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/ClassLoader;)V
astore 10
8: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
aload 1
aload 10
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 10
aload 9
monitorexit
10: areturn
end local 10 11: StackMap locals: java.lang.ClassLoader java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.net.URL java.util.HashMap
StackMap stack: java.lang.Throwable
aload 9
monitorexit
12: athrow
end local 8 end local 7 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 13 0 this Ljava/lang/ClassLoader;
0 13 1 name Ljava/lang/String;
0 13 2 specTitle Ljava/lang/String;
0 13 3 specVersion Ljava/lang/String;
0 13 4 specVendor Ljava/lang/String;
0 13 5 implTitle Ljava/lang/String;
0 13 6 implVersion Ljava/lang/String;
0 13 7 implVendor Ljava/lang/String;
0 13 8 sealBase Ljava/net/URL;
2 11 10 pkg Ljava/lang/Package;
Exception table:
from to target type
1 10 11 any
11 12 11 any
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
name
specTitle
specVersion
specVendor
implTitle
implVersion
implVendor
sealBase
protected java.lang.Package getPackage(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Package;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
dup
astore 3
monitorenter
1: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Package
astore 2
start local 2 2: aload 3
monitorexit
3: goto 6
end local 2 StackMap locals: java.lang.ClassLoader java.lang.String top java.util.HashMap
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 2 6: StackMap locals: java.lang.ClassLoader java.lang.String java.lang.Package
StackMap stack:
aload 2
ifnonnull 22
7: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 10
8: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 2
9: goto 11
10: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.Package.getSystemPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 2
11: StackMap locals:
StackMap stack:
aload 2
ifnull 22
12: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
dup
astore 3
monitorenter
13: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Package
astore 4
start local 4 14: aload 4
ifnonnull 17
15: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
aload 1
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: goto 18
17: StackMap locals: java.util.HashMap java.lang.Package
StackMap stack:
aload 4
astore 2
end local 4 18: StackMap locals:
StackMap stack:
aload 3
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 3
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/lang/ClassLoader;
0 23 1 name Ljava/lang/String;
2 4 2 pkg Ljava/lang/Package;
6 23 2 pkg Ljava/lang/Package;
14 18 4 pkg2 Ljava/lang/Package;
Exception table:
from to target type
1 3 4 any
4 5 4 any
13 19 20 any
20 21 20 any
MethodParameters:
Name Flags
name
protected java.lang.Package[] getPackages();
descriptor: ()[Ljava/lang/Package;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
dup
astore 2
monitorenter
1: new java.util.HashMap
dup
aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/HashMap;
invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
astore 1
start local 1 2: aload 2
monitorexit
3: goto 6
end local 1 StackMap locals: java.lang.ClassLoader top java.util.HashMap
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
start local 1 6: StackMap locals: java.lang.ClassLoader java.util.Map
StackMap stack:
aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 9
7: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.ClassLoader.getPackages:()[Ljava/lang/Package;
astore 2
start local 2 8: goto 10
end local 2 9: StackMap locals:
StackMap stack:
invokestatic java.lang.Package.getSystemPackages:()[Ljava/lang/Package;
astore 2
start local 2 10: StackMap locals: java.lang.Package[]
StackMap stack:
aload 2
ifnull 18
11: iconst_0
istore 3
start local 3 12: goto 17
13: StackMap locals: int
StackMap stack:
aload 2
iload 3
aaload
invokevirtual java.lang.Package.getName:()Ljava/lang/String;
astore 4
start local 4 14: aload 1
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 16
15: aload 1
aload 4
aload 2
iload 3
aaload
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 16: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
aload 2
arraylength
if_icmplt 13
end local 3 18: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Map.values:()Ljava/util/Collection;
aload 1
invokeinterface java.util.Map.size:()I
anewarray java.lang.Package
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Package[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/lang/ClassLoader;
2 4 1 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Package;>;
6 19 1 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Package;>;
8 9 2 pkgs [Ljava/lang/Package;
10 19 2 pkgs [Ljava/lang/Package;
12 18 3 i I
14 16 4 pkgName Ljava/lang/String;
Exception table:
from to target type
1 3 4 any
4 5 4 any
protected java.lang.String findLibrary(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
0 1 1 libname Ljava/lang/String;
MethodParameters:
Name Flags
libname
private static java.lang.String[] initializePath(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
ldc ""
invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: getstatic java.io.File.pathSeparator:Ljava/lang/String;
astore 2
start local 2 2: aload 1
invokevirtual java.lang.String.length:()I
istore 3
start local 3 3: aload 1
aload 2
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 4
start local 4 4: iconst_0
istore 6
start local 6 5: goto 8
6: StackMap locals: java.lang.String java.lang.String java.lang.String int int top int
StackMap stack:
iinc 6 1
7: aload 1
aload 2
iload 4
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 4
8: StackMap locals:
StackMap stack:
iload 4
ifge 6
9: iload 6
iconst_1
iadd
anewarray java.lang.String
astore 7
start local 7 10: iconst_0
dup
istore 4
istore 6
11: aload 1
aload 2
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 5
start local 5 12: goto 20
13: StackMap locals: java.lang.String java.lang.String java.lang.String int int int int java.lang.String[]
StackMap stack:
iload 5
iload 4
isub
ifle 16
14: aload 7
iload 6
iinc 6 1
aload 1
iload 4
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
aastore
15: goto 18
StackMap locals:
StackMap stack:
16: iload 5
iload 4
isub
ifne 18
17: aload 7
iload 6
iinc 6 1
ldc "."
aastore
18: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
istore 4
19: aload 1
aload 2
iload 4
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 5
20: StackMap locals:
StackMap stack:
iload 5
ifge 13
21: aload 7
iload 6
aload 1
iload 4
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
aastore
22: aload 7
areturn
end local 7 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 propname Ljava/lang/String;
1 23 1 ldpath Ljava/lang/String;
2 23 2 ps Ljava/lang/String;
3 23 3 ldlen I
4 23 4 i I
12 23 5 j I
5 23 6 n I
10 23 7 paths [Ljava/lang/String;
MethodParameters:
Name Flags
propname
static void loadLibrary(java.lang.Class<?>, java.lang.String, );
descriptor: (Ljava/lang/Class;Ljava/lang/String;Z)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
2: StackMap locals:
StackMap stack: java.lang.ClassLoader
astore 3
start local 3 3: getstatic java.lang.ClassLoader.sys_paths:[Ljava/lang/String;
ifnonnull 6
4: ldc "java.library.path"
invokestatic java.lang.ClassLoader.initializePath:(Ljava/lang/String;)[Ljava/lang/String;
putstatic java.lang.ClassLoader.usr_paths:[Ljava/lang/String;
5: ldc "sun.boot.library.path"
invokestatic java.lang.ClassLoader.initializePath:(Ljava/lang/String;)[Ljava/lang/String;
putstatic java.lang.ClassLoader.sys_paths:[Ljava/lang/String;
6: StackMap locals: java.lang.ClassLoader
StackMap stack:
iload 2
ifeq 10
7: aload 0
new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic java.lang.ClassLoader.loadLibrary0:(Ljava/lang/Class;Ljava/io/File;)Z
ifeq 9
8: return
9: StackMap locals:
StackMap stack:
new java.lang.UnsatisfiedLinkError
dup
new java.lang.StringBuilder
dup
ldc "Can't load library: "
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.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 3
ifnull 21
11: aload 3
aload 1
invokevirtual java.lang.ClassLoader.findLibrary:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 12: aload 4
ifnull 21
13: new java.io.File
dup
aload 4
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 5
start local 5 14: aload 5
invokevirtual java.io.File.isAbsolute:()Z
ifne 18
15: new java.lang.UnsatisfiedLinkError
dup
16: new java.lang.StringBuilder
dup
ldc "ClassLoader.findLibrary failed to return an absolute path: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: java.lang.String java.io.File
StackMap stack:
aload 0
aload 5
invokestatic java.lang.ClassLoader.loadLibrary0:(Ljava/lang/Class;Ljava/io/File;)Z
ifeq 20
19: return
20: StackMap locals:
StackMap stack:
new java.lang.UnsatisfiedLinkError
dup
new java.lang.StringBuilder
dup
ldc "Can't load "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 21: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 22: goto 30
23: StackMap locals: int
StackMap stack:
new java.io.File
dup
getstatic java.lang.ClassLoader.sys_paths:[Ljava/lang/String;
iload 4
aaload
aload 1
invokestatic java.lang.System.mapLibraryName:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 5
start local 5 24: aload 0
aload 5
invokestatic java.lang.ClassLoader.loadLibrary0:(Ljava/lang/Class;Ljava/io/File;)Z
ifeq 26
25: return
26: StackMap locals: java.io.File
StackMap stack:
aload 5
invokestatic java.lang.ClassLoaderHelper.mapAlternativeName:(Ljava/io/File;)Ljava/io/File;
astore 5
27: aload 5
ifnull 29
aload 0
aload 5
invokestatic java.lang.ClassLoader.loadLibrary0:(Ljava/lang/Class;Ljava/io/File;)Z
ifeq 29
28: return
end local 5 29: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
30: iload 4
getstatic java.lang.ClassLoader.sys_paths:[Ljava/lang/String;
arraylength
if_icmplt 23
end local 4 31: aload 3
ifnull 44
32: iconst_0
istore 4
start local 4 33: goto 43
34: StackMap locals:
StackMap stack:
new java.io.File
dup
getstatic java.lang.ClassLoader.usr_paths:[Ljava/lang/String;
iload 4
aaload
35: aload 1
invokestatic java.lang.System.mapLibraryName:(Ljava/lang/String;)Ljava/lang/String;
36: invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 5
start local 5 37: aload 0
aload 5
invokestatic java.lang.ClassLoader.loadLibrary0:(Ljava/lang/Class;Ljava/io/File;)Z
ifeq 39
38: return
39: StackMap locals: java.io.File
StackMap stack:
aload 5
invokestatic java.lang.ClassLoaderHelper.mapAlternativeName:(Ljava/io/File;)Ljava/io/File;
astore 5
40: aload 5
ifnull 42
aload 0
aload 5
invokestatic java.lang.ClassLoader.loadLibrary0:(Ljava/lang/Class;Ljava/io/File;)Z
ifeq 42
41: return
end local 5 42: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
43: iload 4
getstatic java.lang.ClassLoader.usr_paths:[Ljava/lang/String;
arraylength
if_icmplt 34
end local 4 44: StackMap locals:
StackMap stack:
new java.lang.UnsatisfiedLinkError
dup
new java.lang.StringBuilder
dup
ldc "no "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " in java.library.path"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 fromClass Ljava/lang/Class<*>;
0 45 1 name Ljava/lang/String;
0 45 2 isAbsolute Z
3 45 3 loader Ljava/lang/ClassLoader;
12 21 4 libfilename Ljava/lang/String;
14 21 5 libfile Ljava/io/File;
22 31 4 i I
24 29 5 libfile Ljava/io/File;
33 44 4 i I
37 42 5 libfile Ljava/io/File;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Z)V
MethodParameters:
Name Flags
fromClass
name
isAbsolute
private static native java.lang.String findBuiltinLib(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
name
private static boolean loadLibrary0(java.lang.Class<?>, java.io.File);
descriptor: (Ljava/lang/Class;Ljava/io/File;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.getName:()Ljava/lang/String;
invokestatic java.lang.ClassLoader.findBuiltinLib:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.String
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: iload 3
ifne 15
5: new java.lang.ClassLoader$3
dup
aload 1
invokespecial java.lang.ClassLoader$3.<init>:(Ljava/io/File;)V
6: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
ifnull 7
iconst_1
goto 8
StackMap locals: int
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: iload 4
ifne 11
10: iconst_0
ireturn
11: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
astore 2
12: goto 15
StackMap locals:
StackMap stack: java.io.IOException
13: pop
14: iconst_0
ireturn
end local 4 15: StackMap locals:
StackMap stack:
aload 0
ifnonnull 16
aconst_null
goto 17
StackMap locals:
StackMap stack:
16: aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
17: StackMap locals:
StackMap stack: java.lang.ClassLoader
astore 4
start local 4 18: aload 4
ifnull 19
aload 4
getfield java.lang.ClassLoader.nativeLibraries:Ljava/util/Vector;
goto 20
StackMap locals: java.lang.ClassLoader
StackMap stack:
19: getstatic java.lang.ClassLoader.systemNativeLibraries:Ljava/util/Vector;
20: StackMap locals:
StackMap stack: java.util.Vector
astore 5
start local 5 21: aload 5
dup
astore 6
monitorenter
22: aload 5
invokevirtual java.util.Vector.size:()I
istore 7
start local 7 23: iconst_0
istore 8
start local 8 24: goto 30
25: StackMap locals: java.lang.Class java.io.File java.lang.String int java.lang.ClassLoader java.util.Vector java.util.Vector int int
StackMap stack:
aload 5
iload 8
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast java.lang.ClassLoader$NativeLibrary
astore 9
start local 9 26: aload 2
aload 9
getfield java.lang.ClassLoader$NativeLibrary.name:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 29
27: aload 6
monitorexit
28: iconst_1
ireturn
end local 9 29: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
30: iload 8
iload 7
if_icmplt 25
end local 8 31: getstatic java.lang.ClassLoader.loadedLibraryNames:Ljava/util/Vector;
dup
astore 8
monitorenter
32: getstatic java.lang.ClassLoader.loadedLibraryNames:Ljava/util/Vector;
aload 2
invokevirtual java.util.Vector.contains:(Ljava/lang/Object;)Z
ifeq 39
33: new java.lang.UnsatisfiedLinkError
dup
34: new java.lang.StringBuilder
dup
ldc "Native Library "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
35: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: ldc " already loaded in another classloader"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
37: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
38: invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals: java.lang.Class java.io.File java.lang.String int java.lang.ClassLoader java.util.Vector java.util.Vector int java.util.Vector
StackMap stack:
getstatic java.lang.ClassLoader.nativeLibraryContext:Ljava/util/Stack;
invokevirtual java.util.Stack.size:()I
istore 9
start local 9 40: iconst_0
istore 10
start local 10 41: goto 55
42: StackMap locals: int int
StackMap stack:
getstatic java.lang.ClassLoader.nativeLibraryContext:Ljava/util/Stack;
iload 10
invokevirtual java.util.Stack.elementAt:(I)Ljava/lang/Object;
checkcast java.lang.ClassLoader$NativeLibrary
astore 11
start local 11 43: aload 2
aload 11
getfield java.lang.ClassLoader$NativeLibrary.name:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 54
44: aload 4
aload 11
getfield java.lang.ClassLoader$NativeLibrary.fromClass:Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpne 48
45: aload 8
monitorexit
46: aload 6
monitorexit
47: iconst_1
ireturn
48: StackMap locals: java.lang.ClassLoader$NativeLibrary
StackMap stack:
new java.lang.UnsatisfiedLinkError
dup
49: new java.lang.StringBuilder
dup
ldc "Native Library "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
50: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
51: ldc " is being loaded in another classloader"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
52: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
53: invokespecial java.lang.UnsatisfiedLinkError.<init>:(Ljava/lang/String;)V
athrow
end local 11 54: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
55: iload 10
iload 9
if_icmplt 42
end local 10 56: new java.lang.ClassLoader$NativeLibrary
dup
aload 0
aload 2
iload 3
invokespecial java.lang.ClassLoader$NativeLibrary.<init>:(Ljava/lang/Class;Ljava/lang/String;Z)V
astore 10
start local 10 57: getstatic java.lang.ClassLoader.nativeLibraryContext:Ljava/util/Stack;
aload 10
invokevirtual java.util.Stack.push:(Ljava/lang/Object;)Ljava/lang/Object;
pop
58: aload 10
aload 2
iload 3
invokevirtual java.lang.ClassLoader$NativeLibrary.load:(Ljava/lang/String;Z)V
59: goto 63
StackMap locals: java.lang.Class java.io.File java.lang.String int java.lang.ClassLoader java.util.Vector java.util.Vector int java.util.Vector int java.lang.ClassLoader$NativeLibrary
StackMap stack: java.lang.Throwable
60: astore 11
61: getstatic java.lang.ClassLoader.nativeLibraryContext:Ljava/util/Stack;
invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
pop
62: aload 11
athrow
63: StackMap locals:
StackMap stack:
getstatic java.lang.ClassLoader.nativeLibraryContext:Ljava/util/Stack;
invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
pop
64: aload 10
getfield java.lang.ClassLoader$NativeLibrary.loaded:Z
ifeq 70
65: getstatic java.lang.ClassLoader.loadedLibraryNames:Ljava/util/Vector;
aload 2
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
66: aload 5
aload 10
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
67: aload 8
monitorexit
68: aload 6
monitorexit
69: iconst_1
ireturn
70: StackMap locals:
StackMap stack:
aload 8
monitorexit
71: aload 6
monitorexit
72: iconst_0
ireturn
end local 10 end local 9 73: StackMap locals: java.lang.Class java.io.File java.lang.String int java.lang.ClassLoader java.util.Vector java.util.Vector int java.util.Vector
StackMap stack: java.lang.Throwable
aload 8
monitorexit
74: athrow
end local 7 75: StackMap locals: java.lang.Class java.io.File java.lang.String int java.lang.ClassLoader java.util.Vector java.util.Vector
StackMap stack: java.lang.Throwable
aload 6
monitorexit
76: 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 77 0 fromClass Ljava/lang/Class<*>;
0 77 1 file Ljava/io/File;
1 77 2 name Ljava/lang/String;
4 77 3 isBuiltin Z
9 15 4 exists Z
18 77 4 loader Ljava/lang/ClassLoader;
21 77 5 libs Ljava/util/Vector<Ljava/lang/ClassLoader$NativeLibrary;>;
23 75 7 size I
24 31 8 i I
26 29 9 lib Ljava/lang/ClassLoader$NativeLibrary;
40 73 9 n I
41 56 10 i I
43 54 11 lib Ljava/lang/ClassLoader$NativeLibrary;
57 73 10 lib Ljava/lang/ClassLoader$NativeLibrary;
Exception table:
from to target type
11 12 13 Class java.io.IOException
58 60 60 any
32 46 73 any
48 68 73 any
70 71 73 any
73 74 73 any
22 28 75 any
29 47 75 any
48 69 75 any
70 72 75 any
73 76 75 any
Signature: (Ljava/lang/Class<*>;Ljava/io/File;)Z
MethodParameters:
Name Flags
fromClass
file final
static long findNative(java.lang.ClassLoader, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 0
getfield java.lang.ClassLoader.nativeLibraries:Ljava/util/Vector;
goto 2
StackMap locals:
StackMap stack:
1: getstatic java.lang.ClassLoader.systemNativeLibraries:Ljava/util/Vector;
2: StackMap locals:
StackMap stack: java.util.Vector
astore 2
start local 2 3: aload 2
dup
astore 3
monitorenter
4: aload 2
invokevirtual java.util.Vector.size:()I
istore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 13
7: StackMap locals: java.lang.ClassLoader java.lang.String java.util.Vector java.util.Vector int int
StackMap stack:
aload 2
iload 5
invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
checkcast java.lang.ClassLoader$NativeLibrary
astore 6
start local 6 8: aload 6
aload 1
invokevirtual java.lang.ClassLoader$NativeLibrary.find:(Ljava/lang/String;)J
lstore 7
start local 7 9: lload 7
lconst_0
lcmp
ifeq 12
10: lload 7
aload 3
monitorexit
11: lreturn
end local 7 end local 6 12: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
13: iload 5
iload 4
if_icmplt 7
end local 5 end local 4 14: aload 3
monitorexit
15: goto 18
StackMap locals: java.lang.ClassLoader java.lang.String java.util.Vector java.util.Vector
StackMap stack: java.lang.Throwable
16: aload 3
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 loader Ljava/lang/ClassLoader;
0 19 1 name Ljava/lang/String;
3 19 2 libs Ljava/util/Vector<Ljava/lang/ClassLoader$NativeLibrary;>;
5 14 4 size I
6 14 5 i I
8 12 6 lib Ljava/lang/ClassLoader$NativeLibrary;
9 12 7 entry J
Exception table:
from to target type
4 11 16 any
12 15 16 any
16 17 16 any
MethodParameters:
Name Flags
loader
name
public void setDefaultAssertionStatus(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
ifnonnull 3
2: aload 0
invokevirtual java.lang.ClassLoader.initializeJavaAssertionMaps:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iload 1
putfield java.lang.ClassLoader.defaultAssertionStatus:Z
4: aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ClassLoader;
0 9 1 enabled Z
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
enabled
public void setPackageAssertionStatus(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)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
getfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
ifnonnull 3
2: aload 0
invokevirtual java.lang.ClassLoader.initializeJavaAssertionMaps:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
aload 1
iload 2
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 3
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ClassLoader;
0 9 1 packageName Ljava/lang/String;
0 9 2 enabled Z
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
packageName
enabled
public void setClassAssertionStatus(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)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
getfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
ifnonnull 3
2: aload 0
invokevirtual java.lang.ClassLoader.initializeJavaAssertionMaps:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
aload 1
iload 2
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 3
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ClassLoader;
0 9 1 className Ljava/lang/String;
0 9 2 enabled Z
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
className
enabled
public void clearAssertionStatus();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
3: aload 0
iconst_0
putfield java.lang.ClassLoader.defaultAssertionStatus:Z
4: aload 1
monitorexit
5: goto 8
StackMap locals: java.lang.ClassLoader java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ClassLoader;
Exception table:
from to target type
1 5 6 any
6 7 6 any
boolean desiredAssertionStatus(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 3
start local 3 2: aload 3
ifnull 5
3: aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
aload 2
monitorexit
4: ireturn
5: StackMap locals: java.lang.Object java.lang.Boolean
StackMap stack:
aload 1
ldc "."
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 4
start local 4 6: iload 4
ifge 17
7: aload 0
getfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
aconst_null
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 3
8: aload 3
ifnull 17
9: aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
aload 2
monitorexit
10: ireturn
11: StackMap locals: int
StackMap stack:
aload 1
iconst_0
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
12: aload 0
getfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 3
13: aload 3
ifnull 16
14: aload 3
invokevirtual java.lang.Boolean.booleanValue:()Z
aload 2
monitorexit
15: ireturn
16: StackMap locals:
StackMap stack:
aload 1
ldc "."
iload 4
iconst_1
isub
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;I)I
istore 4
17: StackMap locals:
StackMap stack:
iload 4
ifgt 11
18: aload 0
getfield java.lang.ClassLoader.defaultAssertionStatus:Z
aload 2
monitorexit
19: ireturn
end local 4 end local 3 20: StackMap locals: java.lang.ClassLoader java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
21: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/lang/ClassLoader;
0 22 1 className Ljava/lang/String;
2 20 3 result Ljava/lang/Boolean;
6 20 4 dotIndex I
Exception table:
from to target type
1 4 20 any
5 10 20 any
11 15 20 any
16 19 20 any
20 21 20 any
MethodParameters:
Name Flags
className
private void initializeJavaAssertionMaps();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
2: invokestatic java.lang.ClassLoader.retrieveDirectives:()Ljava/lang/AssertionStatusDirectives;
astore 1
start local 1 3: iconst_0
istore 2
start local 2 4: goto 9
5: StackMap locals: java.lang.AssertionStatusDirectives int
StackMap stack:
aload 0
getfield java.lang.ClassLoader.classAssertionStatus:Ljava/util/Map;
aload 1
getfield java.lang.AssertionStatusDirectives.classes:[Ljava/lang/String;
iload 2
aaload
6: aload 1
getfield java.lang.AssertionStatusDirectives.classEnabled:[Z
iload 2
baload
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
7: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
getfield java.lang.AssertionStatusDirectives.classes:[Ljava/lang/String;
arraylength
if_icmplt 5
end local 2 10: iconst_0
istore 2
start local 2 11: goto 16
12: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ClassLoader.packageAssertionStatus:Ljava/util/Map;
aload 1
getfield java.lang.AssertionStatusDirectives.packages:[Ljava/lang/String;
iload 2
aaload
13: aload 1
getfield java.lang.AssertionStatusDirectives.packageEnabled:[Z
iload 2
baload
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
14: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: iinc 2 1
StackMap locals:
StackMap stack:
16: iload 2
aload 1
getfield java.lang.AssertionStatusDirectives.packages:[Ljava/lang/String;
arraylength
if_icmplt 12
end local 2 17: aload 0
aload 1
getfield java.lang.AssertionStatusDirectives.deflt:Z
putfield java.lang.ClassLoader.defaultAssertionStatus:Z
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/lang/ClassLoader;
3 19 1 directives Ljava/lang/AssertionStatusDirectives;
4 10 2 i I
11 17 2 i I
private static native java.lang.AssertionStatusDirectives retrieveDirectives();
descriptor: ()Ljava/lang/AssertionStatusDirectives;
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
}
SourceFile: "ClassLoader.java"
NestMembers:
java.lang.ClassLoader$1 java.lang.ClassLoader$2 java.lang.ClassLoader$3 java.lang.ClassLoader$NativeLibrary java.lang.ClassLoader$ParallelLoaders
InnerClasses:
java.lang.ClassLoader$1
java.lang.ClassLoader$2
java.lang.ClassLoader$3
NativeLibrary = java.lang.ClassLoader$NativeLibrary of java.lang.ClassLoader
private ParallelLoaders = java.lang.ClassLoader$ParallelLoaders of java.lang.ClassLoader