public class java.net.URLClassLoader extends java.security.SecureClassLoader implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.net.URLClassLoader
super_class: java.security.SecureClassLoader
{
private final jdk.internal.loader.URLClassPath ucp;
descriptor: Ljdk/internal/loader/URLClassPath;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.AccessControlContext acc;
descriptor: Ljava/security/AccessControlContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.WeakHashMap<java.io.Closeable, java.lang.Void> closeables;
descriptor: Ljava/util/WeakHashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/WeakHashMap<Ljava/io/Closeable;Ljava/lang/Void;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.lang.ClassLoader.registerAsParallelCapable:()Z
pop
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.net.URL[], java.lang.ClassLoader);
descriptor: ([Ljava/net/URL;Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/ClassLoader;)V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 1
aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/net/URLClassLoader;
0 5 1 urls [Ljava/net/URL;
0 5 2 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
urls
parent
void <init>(java.lang.String, java.net.URL[], java.lang.ClassLoader, java.security.AccessControlContext);
descriptor: (Ljava/lang/String;[Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/security/AccessControlContext;)V
flags: (0x0000)
Code:
stack=5, 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 3
invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
aload 4
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 2
aload 4
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
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/net/URLClassLoader;
0 5 1 name Ljava/lang/String;
0 5 2 urls [Ljava/net/URL;
0 5 3 parent Ljava/lang/ClassLoader;
0 5 4 acc Ljava/security/AccessControlContext;
MethodParameters:
Name Flags
name
urls
parent
acc
public void <init>(java.net.URL[]);
descriptor: ([Ljava/net/URL;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.security.SecureClassLoader.<init>:()V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 1
aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/net/URLClassLoader;
0 5 1 urls [Ljava/net/URL;
MethodParameters:
Name Flags
urls
void <init>(java.net.URL[], java.security.AccessControlContext);
descriptor: ([Ljava/net/URL;Ljava/security/AccessControlContext;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.security.SecureClassLoader.<init>:()V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
aload 2
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 1
aload 2
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/net/URLClassLoader;
0 5 1 urls [Ljava/net/URL;
0 5 2 acc Ljava/security/AccessControlContext;
MethodParameters:
Name Flags
urls
acc
public void <init>(java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
descriptor: ([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/net/URLStreamHandlerFactory;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/ClassLoader;)V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 1
aload 3
aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/net/URLStreamHandlerFactory;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/net/URLClassLoader;
0 5 1 urls [Ljava/net/URL;
0 5 2 parent Ljava/lang/ClassLoader;
0 5 3 factory Ljava/net/URLStreamHandlerFactory;
MethodParameters:
Name Flags
urls
parent
factory
public void <init>(java.lang.String, java.net.URL[], java.lang.ClassLoader);
descriptor: (Ljava/lang/String;[Ljava/net/URL;Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 3
invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 2
aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/net/URLClassLoader;
0 5 1 name Ljava/lang/String;
0 5 2 urls [Ljava/net/URL;
0 5 3 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
name
urls
parent
public void <init>(java.lang.String, java.net.URL[], java.lang.ClassLoader, java.net.URLStreamHandlerFactory);
descriptor: (Ljava/lang/String;[Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/net/URLStreamHandlerFactory;)V
flags: (0x0001) ACC_PUBLIC
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 3
invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;)V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
2: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
3: aload 0
new jdk.internal.loader.URLClassPath
dup
aload 2
aload 4
aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath.<init>:([Ljava/net/URL;Ljava/net/URLStreamHandlerFactory;Ljava/security/AccessControlContext;)V
putfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
4: return
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/net/URLClassLoader;
0 5 1 name Ljava/lang/String;
0 5 2 urls [Ljava/net/URL;
0 5 3 parent Ljava/lang/ClassLoader;
0 5 4 factory Ljava/net/URLStreamHandlerFactory;
MethodParameters:
Name Flags
name
urls
parent
factory
public java.io.InputStream getResourceAsStream(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, 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.net.URLClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.net.URL
StackMap stack:
aload 2
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 3
start local 3 5: aload 3
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
astore 4
start local 4 6: aload 3
instanceof java.net.JarURLConnection
ifeq 16
7: aload 3
checkcast java.net.JarURLConnection
astore 5
start local 5 8: aload 5
invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
astore 6
start local 6 9: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
dup
astore 7
monitorenter
10: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
aload 6
invokevirtual java.util.WeakHashMap.containsKey:(Ljava/lang/Object;)Z
ifne 12
11: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
aload 6
aconst_null
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: StackMap locals: java.net.URLClassLoader java.lang.String java.net.URL java.net.URLConnection java.io.InputStream java.net.JarURLConnection java.util.jar.JarFile java.util.WeakHashMap
StackMap stack:
aload 7
monitorexit
13: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 7
monitorexit
15: athrow
end local 6 end local 5 16: StackMap locals:
StackMap stack:
aload 3
instanceof sun.net.www.protocol.file.FileURLConnection
ifeq 23
17: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
dup
astore 5
monitorenter
18: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
aload 4
aconst_null
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: aload 5
monitorexit
20: goto 23
StackMap locals: java.net.URLClassLoader java.lang.String java.net.URL java.net.URLConnection java.io.InputStream java.util.WeakHashMap
StackMap stack: java.lang.Throwable
21: aload 5
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
aload 4
24: areturn
end local 4 end local 3 25: StackMap locals: java.net.URLClassLoader java.lang.String java.net.URL
StackMap stack: java.io.IOException
pop
26: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/net/URLClassLoader;
0 27 1 name Ljava/lang/String;
2 27 2 url Ljava/net/URL;
5 25 3 urlc Ljava/net/URLConnection;
6 25 4 is Ljava/io/InputStream;
8 16 5 juc Ljava/net/JarURLConnection;
9 16 6 jar Ljava/util/jar/JarFile;
Exception table:
from to target type
10 13 14 any
14 15 14 any
18 20 21 any
21 22 21 any
2 3 25 Class java.io.IOException
4 24 25 Class java.io.IOException
MethodParameters:
Name Flags
name
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
new java.lang.RuntimePermission
dup
ldc "closeClassLoader"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
getfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
invokevirtual jdk.internal.loader.URLClassPath.closeLoaders:()Ljava/util/List;
astore 2
start local 2 4: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
dup
astore 3
monitorenter
5: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
invokevirtual java.util.WeakHashMap.keySet:()Ljava/util/Set;
astore 4
start local 4 6: aload 4
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: java.net.URLClassLoader java.lang.SecurityManager java.util.List java.util.WeakHashMap java.util.Set top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.Closeable
astore 5
start local 5 8: aload 5
invokeinterface java.io.Closeable.close:()V
9: goto 12
StackMap locals: java.net.URLClassLoader java.lang.SecurityManager java.util.List java.util.WeakHashMap java.util.Set java.io.Closeable java.util.Iterator
StackMap stack: java.io.IOException
10: astore 7
start local 7 11: aload 2
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 5 12: StackMap locals: java.net.URLClassLoader java.lang.SecurityManager java.util.List java.util.WeakHashMap java.util.Set top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
13: aload 0
getfield java.net.URLClassLoader.closeables:Ljava/util/WeakHashMap;
invokevirtual java.util.WeakHashMap.clear:()V
end local 4 14: aload 3
monitorexit
15: goto 18
StackMap locals: java.net.URLClassLoader java.lang.SecurityManager java.util.List java.util.WeakHashMap
StackMap stack: java.lang.Throwable
16: aload 3
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.List.isEmpty:()Z
ifeq 20
19: return
20: StackMap locals:
StackMap stack:
aload 2
iconst_0
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast java.io.IOException
astore 3
start local 3 21: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 24
StackMap locals: java.net.URLClassLoader java.lang.SecurityManager java.util.List java.io.IOException top java.util.Iterator
StackMap stack:
22: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.io.IOException
astore 4
start local 4 23: aload 3
aload 4
invokevirtual java.io.IOException.addSuppressed:(Ljava/lang/Throwable;)V
end local 4 24: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
25: aload 3
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/net/URLClassLoader;
1 26 1 security Ljava/lang/SecurityManager;
4 26 2 errors Ljava/util/List<Ljava/io/IOException;>;
6 14 4 keys Ljava/util/Set<Ljava/io/Closeable;>;
8 12 5 c Ljava/io/Closeable;
11 12 7 ioex Ljava/io/IOException;
21 26 3 firstex Ljava/io/IOException;
23 24 4 error Ljava/io/IOException;
Exception table:
from to target type
8 9 10 Class java.io.IOException
5 15 16 any
16 17 16 any
Exceptions:
throws java.io.IOException
protected void addURL(java.net.URL);
descriptor: (Ljava/net/URL;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
aload 1
invokevirtual jdk.internal.loader.URLClassPath.addURL:(Ljava/net/URL;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/URLClassLoader;
0 2 1 url Ljava/net/URL;
MethodParameters:
Name Flags
url
public java.net.URL[] getURLs();
descriptor: ()[Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
invokevirtual jdk.internal.loader.URLClassPath.getURLs:()[Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/net/URLClassLoader;
protected java.lang.Class<?> findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new java.net.URLClassLoader$1
dup
aload 0
aload 1
invokespecial java.net.URLClassLoader$1.<init>:(Ljava/net/URLClassLoader;Ljava/lang/String;)V
1: aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
checkcast java.lang.Class
astore 2
start local 2 3: goto 6
end local 2 StackMap locals:
StackMap stack: java.security.PrivilegedActionException
4: astore 3
start local 3 5: aload 3
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
checkcast java.lang.ClassNotFoundException
athrow
end local 3 start local 2 6: StackMap locals: java.lang.Class
StackMap stack:
aload 2
ifnonnull 8
7: new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/net/URLClassLoader;
0 9 1 name Ljava/lang/String;
3 4 2 result Ljava/lang/Class<*>;
6 9 2 result Ljava/lang/Class<*>;
5 6 3 pae Ljava/security/PrivilegedActionException;
Exception table:
from to target type
0 3 4 Class java.security.PrivilegedActionException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name final
private java.lang.Package getAndVerifyPackage(java.lang.String, java.util.jar.Manifest, java.net.URL);
descriptor: (Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual java.net.URLClassLoader.getDefinedPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 4
start local 4 1: aload 4
ifnull 13
2: aload 4
invokevirtual java.lang.Package.isSealed:()Z
ifeq 7
3: aload 4
aload 3
invokevirtual java.lang.Package.isSealed:(Ljava/net/URL;)Z
ifne 13
4: new java.lang.SecurityException
dup
5: new java.lang.StringBuilder
dup
ldc "sealing violation: package "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is sealed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: java.lang.Package
StackMap stack:
aload 2
ifnull 13
aload 0
aload 1
aload 2
invokevirtual java.net.URLClassLoader.isSealed:(Ljava/lang/String;Ljava/util/jar/Manifest;)Z
ifeq 13
8: new java.lang.SecurityException
dup
9: new java.lang.StringBuilder
dup
ldc "sealing violation: can't seal package "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: ldc ": already loaded"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/net/URLClassLoader;
0 14 1 pkgname Ljava/lang/String;
0 14 2 man Ljava/util/jar/Manifest;
0 14 3 url Ljava/net/URL;
1 14 4 pkg Ljava/lang/Package;
MethodParameters:
Name Flags
pkgname
man
url
private java.lang.Class<?> defineClass(java.lang.String, jdk.internal.loader.Resource);
descriptor: (Ljava/lang/String;Ljdk/internal/loader/Resource;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=11, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.System.nanoTime:()J
lstore 3
start local 3 1: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 5
start local 5 2: aload 2
invokevirtual jdk.internal.loader.Resource.getCodeSourceURL:()Ljava/net/URL;
astore 6
start local 6 3: iload 5
iconst_m1
if_icmpeq 17
4: aload 1
iconst_0
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
start local 7 5: aload 2
invokevirtual jdk.internal.loader.Resource.getManifest:()Ljava/util/jar/Manifest;
astore 8
start local 8 6: aload 0
aload 7
aload 8
aload 6
invokevirtual java.net.URLClassLoader.getAndVerifyPackage:(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
ifnonnull 17
7: aload 8
ifnull 10
8: aload 0
aload 7
aload 8
aload 6
invokevirtual java.net.URLClassLoader.definePackage:(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
pop
9: goto 17
10: StackMap locals: java.net.URLClassLoader java.lang.String jdk.internal.loader.Resource long int java.net.URL java.lang.String java.util.jar.Manifest
StackMap stack:
aload 0
aload 7
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
invokevirtual java.net.URLClassLoader.definePackage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;
pop
11: goto 17
StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
12: pop
13: aload 0
aload 7
aload 8
aload 6
invokevirtual java.net.URLClassLoader.getAndVerifyPackage:(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
ifnonnull 17
14: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Cannot find package "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 8 end local 7 17: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.internal.loader.Resource.getByteBuffer:()Ljava/nio/ByteBuffer;
astore 7
start local 7 18: aload 7
ifnull 23
19: aload 2
invokevirtual jdk.internal.loader.Resource.getCodeSigners:()[Ljava/security/CodeSigner;
astore 8
start local 8 20: new java.security.CodeSource
dup
aload 6
aload 8
invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/CodeSigner;)V
astore 9
start local 9 21: invokestatic jdk.internal.perf.PerfCounter.getReadClassBytesTime:()Ljdk/internal/perf/PerfCounter;
lload 3
invokevirtual jdk.internal.perf.PerfCounter.addElapsedTimeFrom:(J)V
22: aload 0
aload 1
aload 7
aload 9
invokevirtual java.net.URLClassLoader.defineClass:(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/CodeSource;)Ljava/lang/Class;
areturn
end local 9 end local 8 23: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 2
invokevirtual jdk.internal.loader.Resource.getBytes:()[B
astore 8
start local 8 24: aload 2
invokevirtual jdk.internal.loader.Resource.getCodeSigners:()[Ljava/security/CodeSigner;
astore 9
start local 9 25: new java.security.CodeSource
dup
aload 6
aload 9
invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/CodeSigner;)V
astore 10
start local 10 26: invokestatic jdk.internal.perf.PerfCounter.getReadClassBytesTime:()Ljdk/internal/perf/PerfCounter;
lload 3
invokevirtual jdk.internal.perf.PerfCounter.addElapsedTimeFrom:(J)V
27: aload 0
aload 1
aload 8
iconst_0
aload 8
arraylength
aload 10
invokevirtual java.net.URLClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljava/net/URLClassLoader;
0 28 1 name Ljava/lang/String;
0 28 2 res Ljdk/internal/loader/Resource;
1 28 3 t0 J
2 28 5 i I
3 28 6 url Ljava/net/URL;
5 17 7 pkgname Ljava/lang/String;
6 17 8 man Ljava/util/jar/Manifest;
18 28 7 bb Ljava/nio/ByteBuffer;
20 23 8 signers [Ljava/security/CodeSigner;
21 23 9 cs Ljava/security/CodeSource;
24 28 8 b [B
25 28 9 signers [Ljava/security/CodeSigner;
26 28 10 cs Ljava/security/CodeSource;
Exception table:
from to target type
7 11 12 Class java.lang.IllegalArgumentException
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;Ljdk/internal/loader/Resource;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
res
protected java.lang.Package definePackage(java.lang.String, java.util.jar.Manifest, java.net.URL);
descriptor: (Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aconst_null
astore 5
start local 5 2: aconst_null
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aconst_null
astore 9
start local 9 6: aconst_null
astore 10
start local 10 7: aconst_null
astore 11
start local 11 8: invokestatic jdk.internal.access.SharedSecrets.javaUtilJarAccess:()Ljdk/internal/access/JavaUtilJarAccess;
9: aload 2
aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface jdk.internal.access.JavaUtilJarAccess.getTrustedAttributes:(Ljava/util/jar/Manifest;Ljava/lang/String;)Ljava/util/jar/Attributes;
10: astore 12
start local 12 11: aload 12
ifnull 19
12: aload 12
getstatic java.util.jar.Attributes$Name.SPECIFICATION_TITLE:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 4
13: aload 12
getstatic java.util.jar.Attributes$Name.SPECIFICATION_VERSION:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 5
14: aload 12
getstatic java.util.jar.Attributes$Name.SPECIFICATION_VENDOR:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 6
15: aload 12
getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_TITLE:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 7
16: aload 12
getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_VERSION:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 8
17: aload 12
getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_VENDOR:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 9
18: aload 12
getstatic java.util.jar.Attributes$Name.SEALED:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 10
19: StackMap locals: java.net.URLClassLoader java.lang.String java.util.jar.Manifest java.net.URL 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.jar.Attributes
StackMap stack:
aload 2
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 12
20: aload 12
ifnull 35
21: aload 4
ifnonnull 23
22: aload 12
getstatic java.util.jar.Attributes$Name.SPECIFICATION_TITLE:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 4
23: StackMap locals:
StackMap stack:
aload 5
ifnonnull 25
24: aload 12
getstatic java.util.jar.Attributes$Name.SPECIFICATION_VERSION:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 5
25: StackMap locals:
StackMap stack:
aload 6
ifnonnull 27
26: aload 12
getstatic java.util.jar.Attributes$Name.SPECIFICATION_VENDOR:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 6
27: StackMap locals:
StackMap stack:
aload 7
ifnonnull 29
28: aload 12
getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_TITLE:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 7
29: StackMap locals:
StackMap stack:
aload 8
ifnonnull 31
30: aload 12
getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_VERSION:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 8
31: StackMap locals:
StackMap stack:
aload 9
ifnonnull 33
32: aload 12
getstatic java.util.jar.Attributes$Name.IMPLEMENTATION_VENDOR:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 9
33: StackMap locals:
StackMap stack:
aload 10
ifnonnull 35
34: aload 12
getstatic java.util.jar.Attributes$Name.SEALED:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 10
35: StackMap locals:
StackMap stack:
ldc "true"
aload 10
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 37
36: aload 3
astore 11
37: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
aload 5
aload 6
38: aload 7
aload 8
aload 9
aload 11
39: invokevirtual java.net.URLClassLoader.definePackage:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;
areturn
end local 12 end local 11 end local 10 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 40 0 this Ljava/net/URLClassLoader;
0 40 1 name Ljava/lang/String;
0 40 2 man Ljava/util/jar/Manifest;
0 40 3 url Ljava/net/URL;
1 40 4 specTitle Ljava/lang/String;
2 40 5 specVersion Ljava/lang/String;
3 40 6 specVendor Ljava/lang/String;
4 40 7 implTitle Ljava/lang/String;
5 40 8 implVersion Ljava/lang/String;
6 40 9 implVendor Ljava/lang/String;
7 40 10 sealed Ljava/lang/String;
8 40 11 sealBase Ljava/net/URL;
11 40 12 attr Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
name
man
url
private boolean isSealed(java.lang.String, java.util.jar.Manifest);
descriptor: (Ljava/lang/String;Ljava/util/jar/Manifest;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic jdk.internal.access.SharedSecrets.javaUtilJarAccess:()Ljdk/internal/access/JavaUtilJarAccess;
1: aload 2
aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
ldc "/"
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface jdk.internal.access.JavaUtilJarAccess.getTrustedAttributes:(Ljava/util/jar/Manifest;Ljava/lang/String;)Ljava/util/jar/Attributes;
2: astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 3
ifnull 6
5: aload 3
getstatic java.util.jar.Attributes$Name.SEALED:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 4
6: StackMap locals: java.util.jar.Attributes java.lang.String
StackMap stack:
aload 4
ifnonnull 9
7: aload 2
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
dup
astore 3
ifnull 9
8: aload 3
getstatic java.util.jar.Attributes$Name.SEALED:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 4
9: StackMap locals:
StackMap stack:
ldc "true"
aload 4
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/net/URLClassLoader;
0 10 1 name Ljava/lang/String;
0 10 2 man Ljava/util/jar/Manifest;
3 10 3 attr Ljava/util/jar/Attributes;
4 10 4 sealed Ljava/lang/String;
MethodParameters:
Name Flags
name
man
public java.net.URL findResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: new java.net.URLClassLoader$2
dup
aload 0
aload 1
invokespecial java.net.URLClassLoader$2.<init>:(Ljava/net/URLClassLoader;Ljava/lang/String;)V
1: aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
checkcast java.net.URL
astore 2
start local 2 3: aload 2
ifnull 4
aload 2
invokestatic jdk.internal.loader.URLClassPath.checkURL:(Ljava/net/URL;)Ljava/net/URL;
goto 5
StackMap locals: java.net.URL
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: java.net.URL
5: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/net/URLClassLoader;
0 6 1 name Ljava/lang/String;
3 6 2 url Ljava/net/URL;
MethodParameters:
Name Flags
name final
public java.util.Enumeration<java.net.URL> findResources(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 0
getfield java.net.URLClassLoader.ucp:Ljdk/internal/loader/URLClassPath;
aload 1
iconst_1
invokevirtual jdk.internal.loader.URLClassPath.findResources:(Ljava/lang/String;Z)Ljava/util/Enumeration;
astore 2
start local 2 1: new java.net.URLClassLoader$3
dup
aload 0
aload 2
invokespecial java.net.URLClassLoader$3.<init>:(Ljava/net/URLClassLoader;Ljava/util/Enumeration;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/URLClassLoader;
0 2 1 name Ljava/lang/String;
1 2 2 e Ljava/util/Enumeration<Ljava/net/URL;>;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name final
protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
descriptor: (Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial java.security.SecureClassLoader.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
astore 2
start local 2 1: aload 1
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
astore 3
start local 3 2: aload 3
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 5
start local 5 3: aload 5
invokevirtual java.net.URLConnection.getPermission:()Ljava/security/Permission;
astore 4
start local 4 4: goto 8
end local 5 end local 4 StackMap locals: java.net.URLClassLoader java.security.CodeSource java.security.PermissionCollection java.net.URL
StackMap stack: java.io.IOException
5: pop
6: aconst_null
astore 4
start local 4 7: aconst_null
astore 5
start local 5 8: StackMap locals: java.security.Permission java.net.URLConnection
StackMap stack:
aload 4
instanceof java.io.FilePermission
ifeq 14
9: aload 4
invokevirtual java.security.Permission.getName:()Ljava/lang/String;
astore 6
start local 6 10: aload 6
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 29
11: new java.lang.StringBuilder
dup
aload 6
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
12: new java.io.FilePermission
dup
aload 6
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 4
end local 6 13: goto 29
StackMap locals:
StackMap stack:
14: aload 4
ifnonnull 21
aload 3
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 21
15: aload 3
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 6
start local 6 16: aload 6
invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
astore 6
17: aload 6
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 19
18: new java.lang.StringBuilder
dup
aload 6
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
19: StackMap locals: java.lang.String
StackMap stack:
new java.io.FilePermission
dup
aload 6
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 4
end local 6 20: goto 29
21: StackMap locals:
StackMap stack:
aload 3
astore 6
start local 6 22: aload 5
instanceof java.net.JarURLConnection
ifeq 24
23: aload 5
checkcast java.net.JarURLConnection
invokevirtual java.net.JarURLConnection.getJarFileURL:()Ljava/net/URL;
astore 6
24: StackMap locals: java.net.URL
StackMap stack:
aload 6
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
astore 7
start local 7 25: aload 7
ifnull 29
aload 7
invokevirtual java.lang.String.isEmpty:()Z
ifne 29
26: new java.net.SocketPermission
dup
aload 7
27: ldc "connect,accept"
28: invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 4
end local 7 end local 6 29: StackMap locals:
StackMap stack:
aload 4
ifnull 37
30: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 31: aload 6
ifnull 36
32: aload 4
astore 7
start local 7 33: new java.net.URLClassLoader$4
dup
aload 0
aload 6
aload 7
invokespecial java.net.URLClassLoader$4.<init>:(Ljava/net/URLClassLoader;Ljava/lang/SecurityManager;Ljava/security/Permission;)V
34: aload 0
getfield java.net.URLClassLoader.acc:Ljava/security/AccessControlContext;
35: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
pop
end local 7 36: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 2
aload 4
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
end local 6 37: StackMap locals:
StackMap stack:
aload 2
areturn
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 38 0 this Ljava/net/URLClassLoader;
0 38 1 codesource Ljava/security/CodeSource;
1 38 2 perms Ljava/security/PermissionCollection;
2 38 3 url Ljava/net/URL;
4 5 4 p Ljava/security/Permission;
7 38 4 p Ljava/security/Permission;
3 5 5 urlConnection Ljava/net/URLConnection;
8 38 5 urlConnection Ljava/net/URLConnection;
10 13 6 path Ljava/lang/String;
16 20 6 path Ljava/lang/String;
22 29 6 locUrl Ljava/net/URL;
25 29 7 host Ljava/lang/String;
31 37 6 sm Ljava/lang/SecurityManager;
33 36 7 fp Ljava/security/Permission;
Exception table:
from to target type
2 4 5 Class java.io.IOException
MethodParameters:
Name Flags
codesource
public static java.net.URLClassLoader newInstance(java.net.URL[], java.lang.ClassLoader);
descriptor: ([Ljava/net/URL;Ljava/lang/ClassLoader;)Ljava/net/URLClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
astore 2
start local 2 1: new java.net.URLClassLoader$5
dup
aload 0
aload 1
aload 2
invokespecial java.net.URLClassLoader$5.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/security/AccessControlContext;)V
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.net.URLClassLoader
astore 3
start local 3 3: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 urls [Ljava/net/URL;
0 4 1 parent Ljava/lang/ClassLoader;
1 4 2 acc Ljava/security/AccessControlContext;
3 4 3 ucl Ljava/net/URLClassLoader;
MethodParameters:
Name Flags
urls final
parent final
public static java.net.URLClassLoader newInstance(java.net.URL[]);
descriptor: ([Ljava/net/URL;)Ljava/net/URLClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
astore 1
start local 1 1: new java.net.URLClassLoader$6
dup
aload 0
aload 1
invokespecial java.net.URLClassLoader$6.<init>:([Ljava/net/URL;Ljava/security/AccessControlContext;)V
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.net.URLClassLoader
astore 2
start local 2 3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 urls [Ljava/net/URL;
1 4 1 acc Ljava/security/AccessControlContext;
3 4 2 ucl Ljava/net/URLClassLoader;
MethodParameters:
Name Flags
urls final
}
SourceFile: "URLClassLoader.java"
NestMembers:
java.net.URLClassLoader$1 java.net.URLClassLoader$2 java.net.URLClassLoader$3 java.net.URLClassLoader$3$1 java.net.URLClassLoader$4 java.net.URLClassLoader$5 java.net.URLClassLoader$6
InnerClasses:
java.net.URLClassLoader$1
java.net.URLClassLoader$2
java.net.URLClassLoader$3
java.net.URLClassLoader$4
java.net.URLClassLoader$5
java.net.URLClassLoader$6
public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes