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.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Module unnamedModule;
descriptor: Ljava/lang/Module;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String nameAndId;
descriptor: Ljava/lang/String;
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.concurrent.ConcurrentHashMap<java.lang.String, java.lang.NamedPackage> packages;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Ljava/lang/NamedPackage;>;
private static volatile java.lang.ClassLoader scl;
descriptor: Ljava/lang/ClassLoader;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
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
private static final java.util.Set<java.lang.String> loadedLibraryNames;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static volatile java.util.Map<java.lang.String, java.lang.ClassLoader$NativeLibrary> systemNativeLibraries;
descriptor: Ljava/util/Map;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/ClassLoader$NativeLibrary;>;
private volatile java.util.Map<java.lang.String, java.lang.ClassLoader$NativeLibrary> nativeLibraries;
descriptor: Ljava/util/Map;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/ClassLoader$NativeLibrary;>;
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;>;
private volatile java.util.concurrent.ConcurrentHashMap<?, ?> classLoaderValueMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/concurrent/ConcurrentHashMap<**>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljava/lang/ClassLoader;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.lang.ClassLoader.$assertionsDisabled:Z
3: invokestatic java.lang.ClassLoader.registerNatives:()V
4: iconst_0
anewarray java.security.cert.Certificate
putstatic java.lang.ClassLoader.nocerts:[Ljava/security/cert/Certificate;
5: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic java.lang.ClassLoader.loadedLibraryNames:Ljava/util/Set;
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 java.lang.NamedPackage getNamedPackage(java.lang.String, java.lang.Module);
descriptor: (Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/NamedPackage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.NamedPackage
astore 3
start local 3 1: aload 3
ifnonnull 7
2: new java.lang.NamedPackage
dup
aload 1
aload 2
invokespecial java.lang.NamedPackage.<init>:(Ljava/lang/String;Ljava/lang/Module;)V
astore 3
3: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 3
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.NamedPackage
astore 4
start local 4 4: aload 4
ifnull 7
5: aload 4
astore 3
6: getstatic java.lang.ClassLoader.$assertionsDisabled:Z
ifne 7
aload 4
invokevirtual java.lang.NamedPackage.module:()Ljava/lang/Module;
aload 2
if_acmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 4 7: StackMap locals: java.lang.NamedPackage
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/ClassLoader;
0 8 1 pn Ljava/lang/String;
0 8 2 m Ljava/lang/Module;
1 8 3 p Ljava/lang/NamedPackage;
4 7 4 value Ljava/lang/NamedPackage;
MethodParameters:
Name Flags
pn
m
private static java.lang.Void checkCreateClassLoader();
descriptor: ()Ljava/lang/Void;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: aconst_null
invokestatic java.lang.ClassLoader.checkCreateClassLoader:(Ljava/lang/String;)Ljava/lang/Void;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.Void checkCreateClassLoader(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Void;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 2
aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "name must be non-empty or null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
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 1
invokevirtual java.lang.SecurityManager.checkCreateClassLoader:()V
5: StackMap locals: java.lang.SecurityManager
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 name Ljava/lang/String;
3 6 1 security Ljava/lang/SecurityManager;
MethodParameters:
Name Flags
name
private void <init>(java.lang.Void, java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/lang/Void;Ljava/lang/String;Ljava/lang/ClassLoader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 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
7: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
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.name:Ljava/lang/String;
12: aload 0
aload 3
putfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
13: aload 0
new java.lang.Module
dup
aload 0
invokespecial java.lang.Module.<init>:(Ljava/lang/ClassLoader;)V
putfield java.lang.ClassLoader.unnamedModule:Ljava/lang/Module;
14: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader$ParallelLoaders.isRegistered:(Ljava/lang/Class;)Z
ifeq 19
15: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
16: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
17: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
18: goto 22
19: StackMap locals: java.lang.ClassLoader java.lang.Void java.lang.String java.lang.ClassLoader
StackMap stack:
aload 0
aconst_null
putfield java.lang.ClassLoader.parallelLockMap:Ljava/util/concurrent/ConcurrentHashMap;
20: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield java.lang.ClassLoader.package2certs:Ljava/util/Map;
21: aload 0
aload 0
putfield java.lang.ClassLoader.assertionLock:Ljava/lang/Object;
22: StackMap locals:
StackMap stack:
aload 0
aload 0
invokestatic java.lang.ClassLoader.nameAndId:(Ljava/lang/ClassLoader;)Ljava/lang/String;
putfield java.lang.ClassLoader.nameAndId:Ljava/lang/String;
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljava/lang/ClassLoader;
0 24 1 unused Ljava/lang/Void;
0 24 2 name Ljava/lang/String;
0 24 3 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
unused
name
parent
private static java.lang.String nameAndId(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.ClassLoader.getName:()Ljava/lang/String;
ifnull 1
new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.ClassLoader.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
2: StackMap locals:
StackMap stack: java.lang.String
astore 1
start local 1 3: aload 0
instanceof jdk.internal.loader.BuiltinClassLoader
ifne 6
4: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
astore 2
start local 2 5: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " @"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
end local 2 6: StackMap locals: java.lang.String
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 ld Ljava/lang/ClassLoader;
3 7 1 nid Ljava/lang/String;
5 6 2 id Ljava/lang/String;
MethodParameters:
Name Flags
ld
protected void <init>(java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic java.lang.ClassLoader.checkCreateClassLoader:(Ljava/lang/String;)Ljava/lang/Void;
aload 1
aload 2
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/Void;Ljava/lang/String;Ljava/lang/ClassLoader;)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 name Ljava/lang/String;
0 2 2 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
name
parent
protected void <init>(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.lang.ClassLoader.checkCreateClassLoader:()Ljava/lang/Void;
aconst_null
aload 1
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/Void;Ljava/lang/String;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=4, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.ClassLoader.checkCreateClassLoader:()Ljava/lang/Void;
aconst_null
invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
invokespecial java.lang.ClassLoader.<init>:(Ljava/lang/Void;Ljava/lang/String;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.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
final java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 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 jdk.internal.perf.PerfCounter.getParentDelegationTime:()Ljdk/internal/perf/PerfCounter;
lload 7
lload 5
lsub
invokevirtual jdk.internal.perf.PerfCounter.addTime:(J)V
14: invokestatic jdk.internal.perf.PerfCounter.getFindClassTime:()Ljdk/internal/perf/PerfCounter;
lload 7
invokevirtual jdk.internal.perf.PerfCounter.addElapsedTimeFrom:(J)V
15: invokestatic jdk.internal.perf.PerfCounter.getFindClasses:()Ljdk/internal/perf/PerfCounter;
invokevirtual jdk.internal.perf.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
final java.lang.Class<?> loadClass(java.lang.Module, java.lang.String);
descriptor: (Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual java.lang.ClassLoader.getClassLoadingLock:(Ljava/lang/String;)Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
aload 2
invokevirtual java.lang.ClassLoader.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 2: aload 4
ifnonnull 4
3: aload 0
aload 1
invokevirtual java.lang.Module.getName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.ClassLoader.findClass:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;
astore 4
4: StackMap locals: java.lang.Object java.lang.Class
StackMap stack:
aload 4
ifnull 7
aload 4
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
aload 1
if_acmpne 7
5: aload 4
aload 3
monitorexit
6: areturn
7: StackMap locals:
StackMap stack:
aload 3
monitorexit
8: aconst_null
areturn
end local 4 9: StackMap locals: java.lang.ClassLoader java.lang.Module java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
10: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/ClassLoader;
0 11 1 module Ljava/lang/Module;
0 11 2 name Ljava/lang/String;
2 9 4 c Ljava/lang/Class<*>;
Exception table:
from to target type
1 6 9 any
7 8 9 any
9 10 9 any
Signature: (Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
module
name
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 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 14
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.getPackageName:()Ljava/lang/String;
astore 4
start local 4 10: aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifne 14
11: new java.lang.ClassLoader$1
dup
aload 0
aload 3
aload 4
invokespecial java.lang.ClassLoader$1.<init>:(Ljava/lang/ClassLoader;Ljava/lang/SecurityManager;Ljava/lang/String;)V
12: 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
13: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
pop
end local 4 14: StackMap locals:
StackMap stack:
return
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 cls Ljava/lang/Class<*>;
0 15 2 pd Ljava/security/ProtectionDomain;
1 15 3 sm Ljava/lang/SecurityManager;
5 6 4 intf Ljava/lang/Class<*>;
10 14 4 packageName Ljava/lang/String;
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 java.lang.Class<?> findClass(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 4
1: aload 0
aload 2
invokevirtual java.lang.ClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
4: StackMap locals:
StackMap stack:
aconst_null
areturn
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 moduleName Ljava/lang/String;
0 5 2 name Ljava/lang/String;
Exception table:
from to target type
1 2 3 Class java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
moduleName
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(since = "1.1")
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 9
aload 1
ldc "java."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
3: aload 0
invokestatic java.lang.ClassLoader.getBuiltinPlatformClassLoader:()Ljava/lang/ClassLoader;
if_acmpeq 9
4: new java.lang.SecurityException
dup
5: new java.lang.StringBuilder
dup
ldc "Prohibited package name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: 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;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
10: aload 0
getfield java.lang.ClassLoader.defaultDomain:Ljava/security/ProtectionDomain;
astore 2
11: StackMap locals:
StackMap stack:
aload 1
ifnull 13
12: 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
13: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/lang/ClassLoader;
0 14 1 name Ljava/lang/String;
0 14 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 0
aload 1
invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
invokevirtual java.lang.ClassLoader.getNamedPackage:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/NamedPackage;
pop
1: aload 2
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
ifnull 5
2: aload 2
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getCertificates:()[Ljava/security/cert/Certificate;
astore 3
start local 3 3: aload 3
ifnull 5
4: aload 0
aload 1
aload 3
invokevirtual java.lang.ClassLoader.setSigners:(Ljava/lang/Class;[Ljava/lang/Object;)V
end local 3 5: StackMap locals:
StackMap stack:
return
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 c Ljava/lang/Class<*>;
0 6 2 pd Ljava/security/ProtectionDomain;
3 5 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
invokestatic java.lang.ClassLoader.defineClass1:(Ljava/lang/ClassLoader;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
invokestatic java.lang.ClassLoader.defineClass2:(Ljava/lang/ClassLoader;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
static native java.lang.Class<?> defineClass1(java.lang.ClassLoader, java.lang.String, byte[], int, int, java.security.ProtectionDomain, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0108) ACC_STATIC, ACC_NATIVE
Signature: (Ljava/lang/ClassLoader;Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
loader
name
b
off
len
pd
source
static native java.lang.Class<?> defineClass2(java.lang.ClassLoader, java.lang.String, java.nio.ByteBuffer, int, int, java.security.ProtectionDomain, java.lang.String);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/nio/ByteBuffer;IILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0108) ACC_STATIC, ACC_NATIVE
Signature: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/nio/ByteBuffer;IILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
loader
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.isEmpty:()Z
ifeq 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 3
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 91
if_icmpne 4
3: StackMap locals:
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
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;
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 29
aload 0
aload 6
aload 5
invokevirtual java.lang.ClassLoader.compareCerts:([Ljava/security/cert/Certificate;[Ljava/security/cert/Certificate;)Z
ifne 29
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"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: ldc " 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;
28: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
29: 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 30 0 this Ljava/lang/ClassLoader;
0 30 1 name Ljava/lang/String;
0 30 2 cs Ljava/security/CodeSource;
1 30 3 i I
4 30 4 pname Ljava/lang/String;
5 30 5 certs [Ljava/security/cert/Certificate;
8 30 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=2, locals=12, 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:
aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 17
StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] top top int int java.security.cert.Certificate[]
StackMap stack:
6: aload 7
iload 5
aaload
astore 4
start local 4 7: iconst_0
istore 3
start local 3 8: aload 1
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 14
StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] int java.security.cert.Certificate int int java.security.cert.Certificate[] top int int java.security.cert.Certificate[]
StackMap stack:
9: aload 11
iload 9
aaload
astore 8
start local 8 10: aload 4
aload 8
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 13
11: iconst_1
istore 3
12: goto 15
end local 8 13: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
14: iload 9
iload 10
if_icmplt 9
15: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] int java.security.cert.Certificate int int java.security.cert.Certificate[]
StackMap stack:
iload 3
ifne 16
iconst_0
ireturn
end local 4 end local 3 16: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] top top int int java.security.cert.Certificate[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 6
if_icmplt 6
18: aload 1
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 30
StackMap locals:
StackMap stack:
19: aload 7
iload 5
aaload
astore 4
start local 4 20: iconst_0
istore 3
start local 3 21: aload 2
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 27
StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] int java.security.cert.Certificate int int java.security.cert.Certificate[] top int int java.security.cert.Certificate[]
StackMap stack:
22: aload 11
iload 9
aaload
astore 8
start local 8 23: aload 4
aload 8
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 26
24: iconst_1
istore 3
25: goto 28
end local 8 26: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
27: iload 9
iload 10
if_icmplt 22
28: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] int java.security.cert.Certificate int int java.security.cert.Certificate[]
StackMap stack:
iload 3
ifne 29
iconst_0
ireturn
end local 4 end local 3 29: StackMap locals: java.lang.ClassLoader java.security.cert.Certificate[] java.security.cert.Certificate[] top top int int java.security.cert.Certificate[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
30: iload 5
iload 6
if_icmplt 19
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 16 3 match Z
21 29 3 match Z
7 16 4 cert Ljava/security/cert/Certificate;
10 13 8 pcert Ljava/security/cert/Certificate;
20 29 4 pcert Ljava/security/cert/Certificate;
23 26 8 cert Ljava/security/cert/Certificate;
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 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ClassLoader;
0 3 1 c Ljava/lang/Class<*>;
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=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
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 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
java.lang.Class<?> findBootstrapClassOrNull(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0000)
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
protected java.net.URL findResource(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/net/URL;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aload 0
aload 2
invokevirtual java.lang.ClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ClassLoader;
0 3 1 moduleName Ljava/lang/String;
0 3 2 name Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
moduleName
name
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 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 4
2: 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 3: goto 5
end local 2 4: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.internal.loader.BootLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 5: StackMap locals: java.net.URL
StackMap stack:
aload 2
ifnonnull 7
6: aload 0
aload 1
invokevirtual java.lang.ClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
7: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/ClassLoader;
0 8 1 name Ljava/lang/String;
3 4 2 url Ljava/net/URL;
5 8 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: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: iconst_2
anewarray java.util.Enumeration
astore 2
start local 2 2: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 5
3: 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
4: goto 6
5: StackMap locals: java.util.Enumeration[]
StackMap stack:
aload 2
iconst_0
aload 1
invokestatic jdk.internal.loader.BootLoader.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
aastore
6: StackMap locals:
StackMap stack:
aload 2
iconst_1
aload 0
aload 1
invokevirtual java.lang.ClassLoader.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
aastore
7: new java.lang.CompoundEnumeration
dup
aload 2
invokespecial java.lang.CompoundEnumeration.<init>:([Ljava/util/Enumeration;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/lang/ClassLoader;
0 8 1 name Ljava/lang/String;
2 8 2 tmp [Ljava/util/Enumeration;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
public java.util.stream.Stream<java.net.URL> resources(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/stream/Stream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: sipush 1280
istore 2
start local 2 2: aload 0
aload 1
iload 2
invokedynamic get(Ljava/lang/ClassLoader;Ljava/lang/String;I)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
java/lang/ClassLoader.lambda$0(Ljava/lang/String;I)Ljava/util/Spliterator; (7)
()Ljava/util/Spliterator;
astore 3
start local 3 3: aload 3
iload 2
iconst_0
invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/function/Supplier;IZ)Ljava/util/stream/Stream;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/ClassLoader;
0 4 1 name Ljava/lang/String;
2 4 2 characteristics I
3 4 3 si Ljava/util/function/Supplier<Ljava/util/Spliterator<Ljava/net/URL;>;>;
Signature: (Ljava/lang/String;)Ljava/util/stream/Stream<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 jdk.internal.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:
jdk.internal.reflect.CallerSensitive()
public final boolean isRegisteredAsParallelCapable();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader$ParallelLoaders.isRegistered:(Ljava/lang/Class;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
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=1, args_size=1
start local 0 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
aload 0
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
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=1, args_size=1
start local 0 0: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
aload 0
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Ljava/lang/String;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
public java.io.InputStream getResourceAsStream(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 2: aload 2
ifnull 3
aload 2
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
goto 4
StackMap locals: java.net.URL
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.io.InputStream
4: areturn
5: StackMap locals:
StackMap stack: java.io.IOException
pop
6: aconst_null
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 7 2 url Ljava/net/URL;
Exception table:
from to target type
2 4 5 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 jdk.internal.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:
jdk.internal.reflect.CallerSensitive()
public final java.lang.Module getUnnamedModule();
descriptor: ()Ljava/lang/Module;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.unnamedModule:Ljava/lang/Module;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
public static java.lang.ClassLoader getPlatformClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: invokestatic java.lang.ClassLoader.getBuiltinPlatformClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 2: aload 0
ifnull 4
3: aload 1
invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader.checkClassLoaderPermission:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
4: StackMap locals: java.lang.SecurityManager java.lang.ClassLoader
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 sm Ljava/lang/SecurityManager;
2 5 1 loader Ljava/lang/ClassLoader;
RuntimeVisibleAnnotations:
jdk.internal.reflect.CallerSensitive()
public static java.lang.ClassLoader getSystemClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=0
0: invokestatic jdk.internal.misc.VM.initLevel:()I
tableswitch { // 0 - 3
0: 1
1: 1
2: 1
3: 2
default: 4
}
1: StackMap locals:
StackMap stack:
invokestatic java.lang.ClassLoader.getBuiltinAppClassLoader:()Ljava/lang/ClassLoader;
areturn
2: StackMap locals:
StackMap stack:
ldc "getSystemClassLoader cannot be called during the system class loader instantiation"
astore 0
start local 0 3: new java.lang.IllegalStateException
dup
aload 0
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 0 4: StackMap locals:
StackMap stack:
getstatic java.lang.ClassLoader.$assertionsDisabled:Z
ifne 6
invokestatic jdk.internal.misc.VM.isBooted:()Z
ifeq 5
getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
ifnonnull 6
StackMap locals:
StackMap stack:
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 7: aload 1
ifnull 9
8: getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
invokestatic java.lang.ClassLoader.checkClassLoaderPermission:(Ljava/lang/ClassLoader;Ljava/lang/Class;)V
9: StackMap locals: top java.lang.SecurityManager
StackMap stack:
getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
3 4 0 msg Ljava/lang/String;
7 10 1 sm Ljava/lang/SecurityManager;
RuntimeVisibleAnnotations:
jdk.internal.reflect.CallerSensitive()
static java.lang.ClassLoader getBuiltinPlatformClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic jdk.internal.loader.ClassLoaders.platformClassLoader:()Ljava/lang/ClassLoader;
areturn
LocalVariableTable:
Start End Slot Name Signature
static java.lang.ClassLoader getBuiltinAppClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic jdk.internal.loader.ClassLoaders.appClassLoader:()Ljava/lang/ClassLoader;
areturn
LocalVariableTable:
Start End Slot Name Signature
static synchronized java.lang.ClassLoader initSystemClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0028) ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=4, args_size=0
0: invokestatic jdk.internal.misc.VM.initLevel:()I
iconst_3
if_icmpeq 4
1: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "system class loader cannot be set at initLevel "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: invokestatic jdk.internal.misc.VM.initLevel:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
ifnull 6
5: new java.lang.IllegalStateException
dup
ldc "recursive invocation"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
invokestatic java.lang.ClassLoader.getBuiltinAppClassLoader:()Ljava/lang/ClassLoader;
astore 0
start local 0 7: ldc "java.system.class.loader"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 8: aload 1
ifnull 23
9: aload 1
iconst_0
aload 0
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
10: ldc Ljava/lang/ClassLoader;
aastore
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
11: astore 2
start local 2 12: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.ClassLoader
putstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
end local 2 13: goto 24
StackMap locals: java.lang.ClassLoader java.lang.String
StackMap stack: java.lang.Exception
14: astore 2
start local 2 15: aload 2
astore 3
start local 3 16: aload 2
instanceof java.lang.reflect.InvocationTargetException
ifeq 20
17: aload 2
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
astore 3
18: aload 3
instanceof java.lang.Error
ifeq 20
19: aload 3
checkcast java.lang.Error
athrow
20: StackMap locals: java.lang.Exception java.lang.Throwable
StackMap stack:
aload 3
instanceof java.lang.RuntimeException
ifeq 22
21: aload 3
checkcast java.lang.RuntimeException
athrow
22: StackMap locals:
StackMap stack:
new java.lang.Error
dup
aload 3
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
aload 3
invokespecial java.lang.Error.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 23: StackMap locals:
StackMap stack:
aload 0
putstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
24: StackMap locals:
StackMap stack:
getstatic java.lang.ClassLoader.scl:Ljava/lang/ClassLoader;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
7 25 0 builtinLoader Ljava/lang/ClassLoader;
8 25 1 cn Ljava/lang/String;
12 13 2 ctor Ljava/lang/reflect/Constructor<*>;
15 23 2 e Ljava/lang/Exception;
16 23 3 cause Ljava/lang/Throwable;
Exception table:
from to target type
9 13 14 Class java.lang.Exception
static void initLibraryPaths();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "java.library.path"
invokestatic java.lang.ClassLoader.initializePath:(Ljava/lang/String;)[Ljava/lang/String;
putstatic java.lang.ClassLoader.usr_paths:[Ljava/lang/String;
1: 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;
2: return
LocalVariableTable:
Start End Slot Name Signature
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
java.lang.Package definePackage(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Package;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 1
aload 1
invokevirtual java.lang.Class.isArray:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
invokevirtual java.lang.ClassLoader.definePackage:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ClassLoader;
0 3 1 c Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Package;
MethodParameters:
Name Flags
c
java.lang.Package definePackage(java.lang.String, java.lang.Module);
descriptor: (Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 2
aload 2
invokevirtual java.lang.Module.isNamed:()Z
ifeq 2
1: new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unnamed package in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.NamedPackage
astore 3
start local 3 3: aload 3
instanceof java.lang.Package
ifeq 5
4: aload 3
checkcast java.lang.Package
areturn
5: StackMap locals: java.lang.NamedPackage
StackMap stack:
aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 0
aload 2
invokedynamic apply(Ljava/lang/ClassLoader;Ljava/lang/Module;)Ljava/util/function/BiFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/ClassLoader.lambda$1(Ljava/lang/Module;Ljava/lang/String;Ljava/lang/NamedPackage;)Ljava/lang/NamedPackage; (7)
(Ljava/lang/String;Ljava/lang/NamedPackage;)Ljava/lang/NamedPackage;
invokevirtual java.util.concurrent.ConcurrentHashMap.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
checkcast java.lang.Package
areturn
end local 3 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;
0 6 2 m Ljava/lang/Module;
3 6 3 pkg Ljava/lang/NamedPackage;
MethodParameters:
Name Flags
name
m
private java.lang.Package toPackage(java.lang.String, java.lang.NamedPackage, java.lang.Module);
descriptor: (Ljava/lang/String;Ljava/lang/NamedPackage;Ljava/lang/Module;)Ljava/lang/Package;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnonnull 2
1: aload 1
aload 3
invokestatic java.lang.NamedPackage.toPackage:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;
areturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.Package
ifeq 4
3: aload 2
checkcast java.lang.Package
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.NamedPackage.packageName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.NamedPackage.module:()Ljava/lang/Module;
invokestatic java.lang.NamedPackage.toPackage:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;
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 name Ljava/lang/String;
0 5 2 p Ljava/lang/NamedPackage;
0 5 3 m Ljava/lang/Module;
MethodParameters:
Name Flags
name
p
m
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=10, 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 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new java.lang.Package
dup
aload 1
aload 2
aload 3
aload 4
2: aload 5
aload 6
aload 7
3: aload 8
aload 0
4: 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 9
start local 9 5: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
aload 9
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnull 7
6: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.lang.Package
StackMap stack:
aload 9
areturn
end local 9 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 8 0 this Ljava/lang/ClassLoader;
0 8 1 name Ljava/lang/String;
0 8 2 specTitle Ljava/lang/String;
0 8 3 specVersion Ljava/lang/String;
0 8 4 specVendor Ljava/lang/String;
0 8 5 implTitle Ljava/lang/String;
0 8 6 implVersion Ljava/lang/String;
0 8 7 implVendor Ljava/lang/String;
0 8 8 sealBase Ljava/net/URL;
5 8 9 p Ljava/lang/Package;
MethodParameters:
Name Flags
name
specTitle
specVersion
specVendor
implTitle
implVersion
implVendor
sealBase
public final java.lang.Package getDefinedPackage(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Package;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "name cannot be null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.NamedPackage
astore 2
start local 2 2: aload 2
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.lang.NamedPackage
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual java.lang.NamedPackage.module:()Ljava/lang/Module;
invokevirtual java.lang.ClassLoader.definePackage:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Package;
areturn
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;
2 5 2 p Ljava/lang/NamedPackage;
MethodParameters:
Name Flags
name
public final java.lang.Package[] getDefinedPackages();
descriptor: ()[Ljava/lang/Package;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.ClassLoader.packages:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
java/lang/ClassLoader.lambda$2(I)[Ljava/lang/Package; (6)
(I)[Ljava/lang/Package;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.lang.Package[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ClassLoader;
protected java.lang.Package getPackage(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Package;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.ClassLoader.getDefinedPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 2
start local 2 1: aload 2
ifnonnull 6
2: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
ifnull 5
3: 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
4: goto 6
5: StackMap locals: java.lang.Package
StackMap stack:
aload 1
invokestatic jdk.internal.loader.BootLoader.getDefinedPackage:(Ljava/lang/String;)Ljava/lang/Package;
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;
1 7 2 pkg Ljava/lang/Package;
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
MethodParameters:
Name Flags
name
protected java.lang.Package[] getPackages();
descriptor: ()[Ljava/lang/Package;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.ClassLoader.packages:()Ljava/util/stream/Stream;
astore 1
start local 1 1: aload 0
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
astore 2
start local 2 2: goto 5
3: StackMap locals: java.util.stream.Stream java.lang.ClassLoader
StackMap stack:
aload 2
invokevirtual java.lang.ClassLoader.packages:()Ljava/util/stream/Stream;
aload 1
invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
astore 1
4: aload 2
getfield java.lang.ClassLoader.parent:Ljava/lang/ClassLoader;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
ifnonnull 3
6: invokestatic jdk.internal.loader.BootLoader.packages:()Ljava/util/stream/Stream;
aload 1
invokestatic java.util.stream.Stream.concat:(Ljava/util/stream/Stream;Ljava/util/stream/Stream;)Ljava/util/stream/Stream;
7: invokedynamic apply()Ljava/util/function/IntFunction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(I)Ljava/lang/Object;
java/lang/ClassLoader.lambda$2(I)[Ljava/lang/Package; (6)
(I)[Ljava/lang/Package;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.lang.Package[]
8: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ClassLoader;
1 9 1 pkgs Ljava/util/stream/Stream<Ljava/lang/Package;>;
2 9 2 ld Ljava/lang/ClassLoader;
java.util.stream.Stream<java.lang.Package> packages();
descriptor: ()Ljava/util/stream/Stream;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ClassLoader.packages:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
1: aload 0
invokedynamic apply(Ljava/lang/ClassLoader;)Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/ClassLoader.lambda$4(Ljava/lang/NamedPackage;)Ljava/lang/Package; (7)
(Ljava/lang/NamedPackage;)Ljava/lang/Package;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ClassLoader;
Signature: ()Ljava/util/stream/Stream<Ljava/lang/Package;>;
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=9, 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: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: getstatic java.io.File.pathSeparatorChar:C
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: aload 1
iload 3
invokevirtual java.lang.String.indexOf:(I)I
istore 5
start local 5 5: goto 8
6: StackMap locals: java.lang.String java.lang.String int int int int
StackMap stack:
iinc 4 1
7: aload 1
iload 3
iload 5
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(II)I
istore 5
8: StackMap locals:
StackMap stack:
iload 5
ifge