public final class sun.rmi.server.LoaderHandler
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.rmi.server.LoaderHandler
super_class: java.lang.Object
{
static final int logLevel;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final sun.rmi.runtime.Log loaderLog;
descriptor: Lsun/rmi/runtime/Log;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static java.lang.String codebaseProperty;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.net.URL[] codebaseURLs;
descriptor: [Ljava/net/URL;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.util.Map<java.lang.ClassLoader, java.lang.Void> codebaseLoaders;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/ClassLoader;Ljava/lang/Void;>;
private static final java.util.HashMap<sun.rmi.server.LoaderHandler$LoaderKey, sun.rmi.server.LoaderHandler$LoaderEntry> loaderTable;
descriptor: Ljava/util/HashMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/HashMap<Lsun/rmi/server/LoaderHandler$LoaderKey;Lsun/rmi/server/LoaderHandler$LoaderEntry;>;
private static final java.lang.ref.ReferenceQueue<sun.rmi.server.LoaderHandler$Loader> refQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<Lsun/rmi/server/LoaderHandler$Loader;>;
private static final java.util.Map<java.lang.String, java.lang.Object[]> pathToURLsCache;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;[Ljava/lang/Object;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: new sun.security.action.GetPropertyAction
dup
ldc "sun.rmi.loader.logLevel"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
2: invokestatic java.rmi.server.LogStream.parseLevel:(Ljava/lang/String;)I
putstatic sun.rmi.server.LoaderHandler.logLevel:I
3: ldc "sun.rmi.loader"
ldc "loader"
getstatic sun.rmi.server.LoaderHandler.logLevel:I
invokestatic sun.rmi.runtime.Log.getLog:(Ljava/lang/String;Ljava/lang/String;I)Lsun/rmi/runtime/Log;
4: putstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
5: aconst_null
putstatic sun.rmi.server.LoaderHandler.codebaseProperty:Ljava/lang/String;
6: new sun.security.action.GetPropertyAction
dup
ldc "java.rmi.server.codebase"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
7: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 0
start local 0 8: aload 0
ifnull 10
aload 0
invokevirtual java.lang.String.trim:()Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifle 10
9: aload 0
putstatic sun.rmi.server.LoaderHandler.codebaseProperty:Ljava/lang/String;
end local 0 10: StackMap locals:
StackMap stack:
aconst_null
putstatic sun.rmi.server.LoaderHandler.codebaseURLs:[Ljava/net/URL;
11: new java.util.IdentityHashMap
dup
iconst_5
invokespecial java.util.IdentityHashMap.<init>:(I)V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
12: putstatic sun.rmi.server.LoaderHandler.codebaseLoaders:Ljava/util/Map;
13: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 0
start local 0 14: goto 17
15: StackMap locals: java.lang.ClassLoader
StackMap stack:
getstatic sun.rmi.server.LoaderHandler.codebaseLoaders:Ljava/util/Map;
aload 0
aconst_null
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 0
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 0
17: StackMap locals:
StackMap stack:
aload 0
ifnonnull 15
end local 0 18: new java.util.HashMap
dup
iconst_5
invokespecial java.util.HashMap.<init>:(I)V
19: putstatic sun.rmi.server.LoaderHandler.loaderTable:Ljava/util/HashMap;
20: new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
21: putstatic sun.rmi.server.LoaderHandler.refQueue:Ljava/lang/ref/ReferenceQueue;
22: new java.util.WeakHashMap
dup
iconst_5
invokespecial java.util.WeakHashMap.<init>:(I)V
23: putstatic sun.rmi.server.LoaderHandler.pathToURLsCache:Ljava/util/Map;
24: return
LocalVariableTable:
Start End Slot Name Signature
8 10 0 prop Ljava/lang/String;
14 18 0 codebaseLoader Ljava/lang/ClassLoader;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/server/LoaderHandler;
private static synchronized java.net.URL[] getDefaultCodebaseURLs();
descriptor: ()[Ljava/net/URL;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.rmi.server.LoaderHandler.codebaseURLs:[Ljava/net/URL;
ifnonnull 5
1: getstatic sun.rmi.server.LoaderHandler.codebaseProperty:Ljava/lang/String;
ifnull 4
2: getstatic sun.rmi.server.LoaderHandler.codebaseProperty:Ljava/lang/String;
invokestatic sun.rmi.server.LoaderHandler.pathToURLs:(Ljava/lang/String;)[Ljava/net/URL;
putstatic sun.rmi.server.LoaderHandler.codebaseURLs:[Ljava/net/URL;
3: goto 5
4: StackMap locals:
StackMap stack:
iconst_0
anewarray java.net.URL
putstatic sun.rmi.server.LoaderHandler.codebaseURLs:[Ljava/net/URL;
5: StackMap locals:
StackMap stack:
getstatic sun.rmi.server.LoaderHandler.codebaseURLs:[Ljava/net/URL;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.net.MalformedURLException
public static java.lang.Class<?> loadClass(java.lang.String, java.lang.String, java.lang.ClassLoader);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 12
1: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
2: new java.lang.StringBuilder
dup
ldc "name = \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "codebase = \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
ifnull 4
aload 0
goto 5
StackMap locals: java.lang.String java.lang.String java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder
4: ldc ""
StackMap locals: java.lang.String java.lang.String java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder java.lang.String
5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 2
ifnull 8
7: new java.lang.StringBuilder
dup
ldc ", defaultLoader = "
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;
goto 9
StackMap locals: java.lang.String java.lang.String java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder
8: ldc ""
9: StackMap locals: java.lang.String java.lang.String java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
ifnull 15
13: aload 0
invokestatic sun.rmi.server.LoaderHandler.pathToURLs:(Ljava/lang/String;)[Ljava/net/URL;
astore 3
start local 3 14: goto 16
end local 3 15: StackMap locals:
StackMap stack:
invokestatic sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs:()[Ljava/net/URL;
astore 3
start local 3 16: StackMap locals: java.net.URL[]
StackMap stack:
aload 2
ifnull 27
17: aload 1
iconst_0
aload 2
invokestatic sun.rmi.server.LoaderHandler.loadClassForName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 4
start local 4 18: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 24
19: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
20: 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;
ldc "\" found via defaultLoader, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: ldc "defined by "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
22: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
24: StackMap locals: java.lang.Class
StackMap stack:
aload 4
25: areturn
end local 4 26: StackMap locals: java.lang.String java.lang.String java.lang.ClassLoader java.net.URL[]
StackMap stack: java.lang.ClassNotFoundException
pop
27: StackMap locals:
StackMap stack:
aload 3
aload 1
invokestatic sun.rmi.server.LoaderHandler.loadClass:([Ljava/net/URL;Ljava/lang/String;)Ljava/lang/Class;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 codebase Ljava/lang/String;
0 28 1 name Ljava/lang/String;
0 28 2 defaultLoader Ljava/lang/ClassLoader;
14 15 3 urls [Ljava/net/URL;
16 28 3 urls [Ljava/net/URL;
18 26 4 c Ljava/lang/Class<*>;
Exception table:
from to target type
17 25 26 Class java.lang.ClassNotFoundException
Exceptions:
throws java.net.MalformedURLException, java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
codebase
name
defaultLoader
public static java.lang.String getClassAnnotation(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=10, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: iload 2
ifle 9
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 91
if_icmpne 9
3: iconst_1
istore 3
start local 3 4: goto 6
5: StackMap locals: java.lang.String int int
StackMap stack:
iinc 3 1
6: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmple 7
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 91
if_icmpeq 5
7: StackMap locals:
StackMap stack:
iload 2
iload 3
if_icmple 9
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 76
if_icmpeq 9
8: aconst_null
areturn
end local 3 9: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 10: aload 3
ifnull 11
getstatic sun.rmi.server.LoaderHandler.codebaseLoaders:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 12
11: StackMap locals: java.lang.ClassLoader
StackMap stack:
getstatic sun.rmi.server.LoaderHandler.codebaseProperty:Ljava/lang/String;
areturn
12: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 13: aload 3
instanceof sun.rmi.server.LoaderHandler$Loader
ifeq 16
14: aload 3
checkcast sun.rmi.server.LoaderHandler$Loader
invokevirtual sun.rmi.server.LoaderHandler$Loader.getClassAnnotation:()Ljava/lang/String;
astore 4
15: goto 35
StackMap locals: java.lang.String
StackMap stack:
16: aload 3
instanceof java.net.URLClassLoader
ifeq 35
17: aload 3
checkcast java.net.URLClassLoader
invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
astore 5
start local 5 18: aload 5
ifnull 35
19: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 20: aload 6
ifnull 32
21: new java.security.Permissions
dup
invokespecial java.security.Permissions.<init>:()V
astore 7
start local 7 22: iconst_0
istore 8
start local 8 23: goto 31
24: StackMap locals: java.lang.Class java.lang.String int java.lang.ClassLoader java.lang.String java.net.URL[] java.lang.SecurityManager java.security.Permissions int
StackMap stack:
aload 5
iload 8
aaload
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
invokevirtual java.net.URLConnection.getPermission:()Ljava/security/Permission;
25: astore 9
start local 9 26: aload 9
ifnull 30
27: aload 7
aload 9
invokevirtual java.security.Permissions.implies:(Ljava/security/Permission;)Z
ifne 30
28: aload 6
aload 9
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
29: aload 7
aload 9
invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
end local 9 30: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
31: iload 8
aload 5
arraylength
if_icmplt 24
end local 8 end local 7 32: StackMap locals:
StackMap stack:
aload 5
invokestatic sun.rmi.server.LoaderHandler.urlsToPath:([Ljava/net/URL;)Ljava/lang/String;
astore 4
end local 6 end local 5 33: goto 35
StackMap locals: java.lang.Class java.lang.String int java.lang.ClassLoader java.lang.String
StackMap stack: java.lang.Exception
34: pop
35: StackMap locals:
StackMap stack:
aload 4
ifnull 37
36: aload 4
areturn
37: StackMap locals:
StackMap stack:
getstatic sun.rmi.server.LoaderHandler.codebaseProperty:Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 cl Ljava/lang/Class<*>;
1 38 1 name Ljava/lang/String;
2 38 2 nameLength I
4 9 3 i I
10 38 3 loader Ljava/lang/ClassLoader;
13 38 4 annotation Ljava/lang/String;
18 33 5 urls [Ljava/net/URL;
20 33 6 sm Ljava/lang/SecurityManager;
22 32 7 perms Ljava/security/Permissions;
23 32 8 i I
26 30 9 p Ljava/security/Permission;
Exception table:
from to target type
17 33 34 Class java.lang.SecurityException
17 33 34 Class java.io.IOException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
cl
public static java.lang.ClassLoader getClassLoader(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/ClassLoader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: invokestatic sun.rmi.server.LoaderHandler.getRMIContextClassLoader:()Ljava/lang/ClassLoader;
astore 1
start local 1 1: aload 0
ifnull 4
2: aload 0
invokestatic sun.rmi.server.LoaderHandler.pathToURLs:(Ljava/lang/String;)[Ljava/net/URL;
astore 2
start local 2 3: goto 5
end local 2 4: StackMap locals: java.lang.ClassLoader
StackMap stack:
invokestatic sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs:()[Ljava/net/URL;
astore 2
start local 2 5: StackMap locals: java.net.URL[]
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 6: aload 3
ifnull 9
7: aload 3
new java.lang.RuntimePermission
dup
ldc "getClassLoader"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
8: goto 10
9: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 1
areturn
10: StackMap locals:
StackMap stack:
aload 2
aload 1
invokestatic sun.rmi.server.LoaderHandler.lookupLoader:([Ljava/net/URL;Ljava/lang/ClassLoader;)Lsun/rmi/server/LoaderHandler$Loader;
astore 4
start local 4 11: aload 4
ifnull 13
12: aload 4
invokevirtual sun.rmi.server.LoaderHandler$Loader.checkPermissions:()V
13: StackMap locals: sun.rmi.server.LoaderHandler$Loader
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 codebase Ljava/lang/String;
1 14 1 parent Ljava/lang/ClassLoader;
3 4 2 urls [Ljava/net/URL;
5 14 2 urls [Ljava/net/URL;
6 14 3 sm Ljava/lang/SecurityManager;
11 14 4 loader Lsun/rmi/server/LoaderHandler$Loader;
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
codebase
public static java.lang.Object getSecurityContext(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
instanceof sun.rmi.server.LoaderHandler$Loader
ifeq 4
1: aload 0
checkcast sun.rmi.server.LoaderHandler$Loader
invokevirtual sun.rmi.server.LoaderHandler$Loader.getURLs:()[Ljava/net/URL;
astore 1
start local 1 2: aload 1
arraylength
ifle 4
3: aload 1
iconst_0
aaload
areturn
end local 1 4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 loader Ljava/lang/ClassLoader;
2 4 1 urls [Ljava/net/URL;
MethodParameters:
Name Flags
loader
public static void registerCodebaseLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic sun.rmi.server.LoaderHandler.codebaseLoaders:Ljava/util/Map;
aload 0
aconst_null
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 loader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
loader
private static java.lang.Class<?> loadClass(java.net.URL[], java.lang.String);
descriptor: ([Ljava/net/URL;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: invokestatic sun.rmi.server.LoaderHandler.getRMIContextClassLoader:()Ljava/lang/ClassLoader;
astore 2
start local 2 1: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 5
2: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
3: new java.lang.StringBuilder
dup
ldc "(thread context class loader: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
5: StackMap locals: java.lang.ClassLoader
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 6: aload 3
ifnonnull 31
7: aload 1
iconst_0
aload 2
invokestatic sun.rmi.server.LoaderHandler.loadClassForName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 4
start local 4 8: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 16
9: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
10: 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;
ldc "\" found via "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc "thread context class loader "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc "(no security manager: codebase disabled), "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: ldc "defined by "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
14: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
16: StackMap locals: java.lang.SecurityManager java.lang.Class
StackMap stack:
aload 4
17: areturn
end local 4 18: StackMap locals: java.net.URL[] java.lang.String java.lang.ClassLoader java.lang.SecurityManager
StackMap stack: java.lang.ClassNotFoundException
astore 4
start local 4 19: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 27
20: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
21: 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;
ldc "\" not found via "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc "thread context class loader "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: ldc "(no security manager: codebase disabled)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: aload 4
26: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
27: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
new java.lang.ClassNotFoundException
dup
new java.lang.StringBuilder
dup
aload 4
invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
28: ldc " (no security manager: RMI class loader disabled)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: aload 4
invokevirtual java.lang.ClassNotFoundException.getException:()Ljava/lang/Throwable;
30: invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 31: StackMap locals:
StackMap stack:
aload 0
aload 2
invokestatic sun.rmi.server.LoaderHandler.lookupLoader:([Ljava/net/URL;Ljava/lang/ClassLoader;)Lsun/rmi/server/LoaderHandler$Loader;
astore 4
start local 4 32: aload 4
ifnull 59
33: aload 4
invokevirtual sun.rmi.server.LoaderHandler$Loader.checkPermissions:()V
34: goto 59
StackMap locals: java.net.URL[] java.lang.String java.lang.ClassLoader java.lang.SecurityManager sun.rmi.server.LoaderHandler$Loader
StackMap stack: java.lang.SecurityException
35: astore 5
start local 5 36: aload 1
iconst_0
aload 2
invokestatic sun.rmi.server.LoaderHandler.loadClassForName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 6
start local 6 37: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 45
38: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
39: 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;
ldc "\" found via "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: ldc "thread context class loader "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
41: ldc "(access to codebase denied), "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
42: ldc "defined by "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
43: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
45: StackMap locals: java.lang.SecurityException java.lang.Class
StackMap stack:
aload 6
46: areturn
end local 6 47: StackMap locals: java.net.URL[] java.lang.String java.lang.ClassLoader java.lang.SecurityManager sun.rmi.server.LoaderHandler$Loader java.lang.SecurityException
StackMap stack: java.lang.ClassNotFoundException
pop
48: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 56
49: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
50: 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;
ldc "\" not found via "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
51: ldc "thread context class loader "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
52: ldc "(access to codebase denied)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
53: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
54: aload 5
55: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
56: StackMap locals:
StackMap stack:
new java.lang.ClassNotFoundException
dup
57: ldc "access to class loader denied"
aload 5
58: invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 59: StackMap locals:
StackMap stack:
aload 1
iconst_0
aload 4
invokestatic sun.rmi.server.LoaderHandler.loadClassForName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 5
start local 5 60: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 66
61: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
62: 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;
ldc "\" "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "found via codebase, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
63: ldc "defined by "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
64: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
66: StackMap locals: java.lang.Class
StackMap stack:
aload 5
67: areturn
end local 5 68: StackMap locals: java.net.URL[] java.lang.String java.lang.ClassLoader java.lang.SecurityManager sun.rmi.server.LoaderHandler$Loader
StackMap stack: java.lang.ClassNotFoundException
astore 5
start local 5 69: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 73
70: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
71: 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;
ldc "\" not found via codebase"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
72: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
73: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
aload 5
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 urls [Ljava/net/URL;
0 74 1 name Ljava/lang/String;
1 74 2 parent Ljava/lang/ClassLoader;
6 74 3 sm Ljava/lang/SecurityManager;
8 18 4 c Ljava/lang/Class<*>;
19 31 4 e Ljava/lang/ClassNotFoundException;
32 74 4 loader Lsun/rmi/server/LoaderHandler$Loader;
36 59 5 e Ljava/lang/SecurityException;
37 47 6 c Ljava/lang/Class<*>;
60 68 5 c Ljava/lang/Class<*>;
69 74 5 e Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
7 17 18 Class java.lang.ClassNotFoundException
32 34 35 Class java.lang.SecurityException
36 46 47 Class java.lang.ClassNotFoundException
59 67 68 Class java.lang.ClassNotFoundException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: ([Ljava/net/URL;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
urls
name
public static java.lang.Class<?> loadProxyClass(java.lang.String, java.lang.String[], java.lang.ClassLoader);
descriptor: (Ljava/lang/String;[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 12
1: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
2: new java.lang.StringBuilder
dup
ldc "interfaces = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "codebase = \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
ifnull 4
aload 0
goto 5
StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder
4: ldc ""
StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder java.lang.String
5: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 2
ifnull 8
7: new java.lang.StringBuilder
dup
ldc ", defaultLoader = "
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;
goto 9
StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder
8: ldc ""
9: StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader
StackMap stack: sun.rmi.runtime.Log java.util.logging.Level java.lang.StringBuilder java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
invokestatic sun.rmi.server.LoaderHandler.getRMIContextClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 13: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 17
14: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
15: new java.lang.StringBuilder
dup
ldc "(thread context class loader: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
17: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 0
ifnull 20
18: aload 0
invokestatic sun.rmi.server.LoaderHandler.pathToURLs:(Ljava/lang/String;)[Ljava/net/URL;
astore 4
start local 4 19: goto 21
end local 4 20: StackMap locals:
StackMap stack:
invokestatic sun.rmi.server.LoaderHandler.getDefaultCodebaseURLs:()[Ljava/net/URL;
astore 4
start local 4 21: StackMap locals: java.net.URL[]
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 22: aload 5
ifnonnull 44
23: aload 1
aload 2
aload 3
24: iconst_0
25: invokestatic sun.rmi.server.LoaderHandler.loadProxyClass:([Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
astore 6
start local 6 26: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 32
27: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
28: new java.lang.StringBuilder
dup
ldc "(no security manager: codebase disabled) proxy class defined by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
29: aload 6
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
30: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
32: StackMap locals: java.lang.SecurityManager java.lang.Class
StackMap stack:
aload 6
33: areturn
end local 6 34: StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader java.net.URL[] java.lang.SecurityManager
StackMap stack: java.lang.ClassNotFoundException
astore 6
start local 6 35: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 40
36: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
37: ldc "(no security manager: codebase disabled) proxy class resolution failed"
38: aload 6
39: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
40: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
new java.lang.ClassNotFoundException
dup
new java.lang.StringBuilder
dup
aload 6
invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
41: ldc " (no security manager: RMI class loader disabled)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
42: aload 6
invokevirtual java.lang.ClassNotFoundException.getException:()Ljava/lang/Throwable;
43: invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 44: StackMap locals:
StackMap stack:
aload 4
aload 3
invokestatic sun.rmi.server.LoaderHandler.lookupLoader:([Ljava/net/URL;Ljava/lang/ClassLoader;)Lsun/rmi/server/LoaderHandler$Loader;
astore 6
start local 6 45: aload 6
ifnull 69
46: aload 6
invokevirtual sun.rmi.server.LoaderHandler$Loader.checkPermissions:()V
47: goto 69
StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader java.net.URL[] java.lang.SecurityManager sun.rmi.server.LoaderHandler$Loader
StackMap stack: java.lang.SecurityException
48: astore 7
start local 7 49: aload 1
aload 2
aload 3
50: iconst_0
51: invokestatic sun.rmi.server.LoaderHandler.loadProxyClass:([Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
astore 8
start local 8 52: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 58
53: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
54: new java.lang.StringBuilder
dup
ldc "(access to codebase denied) proxy class defined by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
55: aload 8
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
56: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
58: StackMap locals: java.lang.SecurityException java.lang.Class
StackMap stack:
aload 8
59: areturn
end local 8 60: StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader java.net.URL[] java.lang.SecurityManager sun.rmi.server.LoaderHandler$Loader java.lang.SecurityException
StackMap stack: java.lang.ClassNotFoundException
pop
61: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 66
62: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
63: ldc "(access to codebase denied) proxy class resolution failed"
64: aload 7
65: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
66: StackMap locals:
StackMap stack:
new java.lang.ClassNotFoundException
dup
67: ldc "access to class loader denied"
aload 7
68: invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 69: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 6
iconst_1
invokestatic sun.rmi.server.LoaderHandler.loadProxyClass:([Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
astore 7
start local 7 70: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 74
71: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
72: new java.lang.StringBuilder
dup
ldc "proxy class defined by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
73: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
74: StackMap locals: java.lang.Class
StackMap stack:
aload 7
75: areturn
end local 7 76: StackMap locals: java.lang.String java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader java.net.URL[] java.lang.SecurityManager sun.rmi.server.LoaderHandler$Loader
StackMap stack: java.lang.ClassNotFoundException
astore 7
start local 7 77: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 81
78: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
79: ldc "proxy class resolution failed"
aload 7
80: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
81: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
aload 7
athrow
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 82 0 codebase Ljava/lang/String;
0 82 1 interfaces [Ljava/lang/String;
0 82 2 defaultLoader Ljava/lang/ClassLoader;
13 82 3 parent Ljava/lang/ClassLoader;
19 20 4 urls [Ljava/net/URL;
21 82 4 urls [Ljava/net/URL;
22 82 5 sm Ljava/lang/SecurityManager;
26 34 6 c Ljava/lang/Class<*>;
35 44 6 e Ljava/lang/ClassNotFoundException;
45 82 6 loader Lsun/rmi/server/LoaderHandler$Loader;
49 69 7 e Ljava/lang/SecurityException;
52 60 8 c Ljava/lang/Class<*>;
70 76 7 c Ljava/lang/Class<*>;
77 82 7 e Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
23 33 34 Class java.lang.ClassNotFoundException
45 47 48 Class java.lang.SecurityException
49 59 60 Class java.lang.ClassNotFoundException
69 75 76 Class java.lang.ClassNotFoundException
Exceptions:
throws java.net.MalformedURLException, java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;[Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
codebase
interfaces
defaultLoader
private static java.lang.Class<?> loadProxyClass(java.lang.String[], java.lang.ClassLoader, java.lang.ClassLoader, boolean);
descriptor: ([Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 0
arraylength
anewarray java.lang.Class
astore 5
start local 5 2: iconst_1
newarray 4
astore 6
start local 6 3: aload 1
ifnull 31
4: aload 0
aload 1
5: aload 5
aload 6
6: invokestatic sun.rmi.server.LoaderHandler.loadProxyInterfaces:([Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/Class;[Z)Ljava/lang/ClassLoader;
7: astore 4
8: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 24
9: aload 5
arraylength
anewarray java.lang.ClassLoader
10: astore 7
start local 7 11: iconst_0
istore 8
start local 8 12: goto 15
13: StackMap locals: java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader int java.lang.ClassLoader java.lang.Class[] boolean[] java.lang.ClassLoader[] int
StackMap stack:
aload 7
iload 8
aload 5
iload 8
aaload
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
aastore
14: iinc 8 1
StackMap locals:
StackMap stack:
15: iload 8
aload 7
arraylength
if_icmplt 13
end local 8 16: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
17: new java.lang.StringBuilder
dup
ldc "proxy interfaces found via defaultLoader, defined by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
18: aload 7
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
19: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 7 21: goto 24
StackMap locals: java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader int java.lang.ClassLoader java.lang.Class[] boolean[]
StackMap stack: java.lang.ClassNotFoundException
22: pop
23: goto 31
24: StackMap locals:
StackMap stack:
aload 6
iconst_0
baload
ifne 30
25: iload 3
ifeq 29
26: aload 2
aload 5
invokestatic java.lang.reflect.Proxy.getProxyClass:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
27: areturn
28: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
pop
29: StackMap locals:
StackMap stack:
aload 1
astore 4
30: StackMap locals:
StackMap stack:
aload 4
aload 5
invokestatic sun.rmi.server.LoaderHandler.loadProxyClass:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
areturn
31: StackMap locals:
StackMap stack:
aload 6
iconst_0
iconst_0
bastore
32: aload 0
aload 2
33: aload 5
aload 6
34: invokestatic sun.rmi.server.LoaderHandler.loadProxyInterfaces:([Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/Class;[Z)Ljava/lang/ClassLoader;
astore 4
35: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 47
36: aload 5
arraylength
anewarray java.lang.ClassLoader
astore 7
start local 7 37: iconst_0
istore 8
start local 8 38: goto 41
39: StackMap locals: java.lang.ClassLoader[] int
StackMap stack:
aload 7
iload 8
aload 5
iload 8
aaload
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
aastore
40: iinc 8 1
StackMap locals:
StackMap stack:
41: iload 8
aload 7
arraylength
if_icmplt 39
end local 8 42: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
43: new java.lang.StringBuilder
dup
ldc "proxy interfaces found via codebase, defined by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
44: aload 7
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
45: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
46: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 7 47: StackMap locals:
StackMap stack:
aload 6
iconst_0
baload
ifne 49
48: aload 2
astore 4
49: StackMap locals:
StackMap stack:
aload 4
aload 5
invokestatic sun.rmi.server.LoaderHandler.loadProxyClass:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
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 50 0 interfaceNames [Ljava/lang/String;
0 50 1 defaultLoader Ljava/lang/ClassLoader;
0 50 2 codebaseLoader Ljava/lang/ClassLoader;
0 50 3 preferCodebase Z
1 50 4 proxyLoader Ljava/lang/ClassLoader;
2 50 5 classObjs [Ljava/lang/Class;
3 50 6 nonpublic [Z
11 21 7 definingLoaders [Ljava/lang/ClassLoader;
12 16 8 i I
37 47 7 definingLoaders [Ljava/lang/ClassLoader;
38 42 8 i I
Exception table:
from to target type
4 21 22 Class java.lang.ClassNotFoundException
26 27 28 Class java.lang.IllegalArgumentException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: ([Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
interfaceNames
defaultLoader
codebaseLoader
preferCodebase
private static java.lang.Class<?> loadProxyClass(java.lang.ClassLoader, java.lang.Class[]);
descriptor: (Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.lang.reflect.Proxy.getProxyClass:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 2
start local 2 3: new java.lang.ClassNotFoundException
dup
4: ldc "error creating dynamic proxy class"
aload 2
5: invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 loader Ljava/lang/ClassLoader;
0 6 1 interfaces [Ljava/lang/Class;
3 6 2 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
0 1 2 Class java.lang.IllegalArgumentException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
loader
interfaces
private static java.lang.ClassLoader loadProxyInterfaces(java.lang.String[], java.lang.ClassLoader, java.lang.Class[], boolean[]);
descriptor: ([Ljava/lang/String;Ljava/lang/ClassLoader;[Ljava/lang/Class;[Z)Ljava/lang/ClassLoader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 22
3: StackMap locals: java.lang.ClassLoader int
StackMap stack:
aload 2
iload 5
aload 0
iload 5
aaload
iconst_0
aload 1
invokestatic sun.rmi.server.LoaderHandler.loadClassForName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
dup_x2
aastore
4: astore 6
start local 6 5: aload 6
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
ifne 21
6: aload 6
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 7
start local 7 7: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 13
8: getstatic sun.rmi.server.LoaderHandler.loaderLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
9: new java.lang.StringBuilder
dup
ldc "non-public interface \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
iload 5
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: ldc "\" defined by "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
11: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
13: StackMap locals: java.lang.Class java.lang.ClassLoader
StackMap stack:
aload 3
iconst_0
baload
ifne 17
14: aload 7
astore 4
15: aload 3
iconst_0
iconst_1
bastore
16: goto 21
StackMap locals:
StackMap stack:
17: aload 7
aload 4
if_acmpeq 21
18: new java.lang.IllegalAccessError
dup
19: ldc "non-public interfaces defined in different class loaders"
20: invokespecial java.lang.IllegalAccessError.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 21: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
22: iload 5
aload 0
arraylength
if_icmplt 3
end local 5 23: 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 24 0 interfaces [Ljava/lang/String;
0 24 1 loader Ljava/lang/ClassLoader;
0 24 2 classObjs [Ljava/lang/Class;
0 24 3 nonpublic [Z
1 24 4 nonpublicLoader Ljava/lang/ClassLoader;
2 23 5 i I
5 21 6 cl Ljava/lang/Class<*>;
7 21 7 current Ljava/lang/ClassLoader;
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
interfaces
loader
classObjs
nonpublic
private static java.net.URL[] pathToURLs(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/net/URL;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=4, args_size=1
start local 0 0: getstatic sun.rmi.server.LoaderHandler.pathToURLsCache:Ljava/util/Map;
dup
astore 1
monitorenter
1: getstatic sun.rmi.server.LoaderHandler.pathToURLsCache:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 2
start local 2 2: aload 2
ifnull 5
3: aload 2
iconst_0
aaload
checkcast java.net.URL[]
aload 1
monitorexit
4: areturn
end local 2 5: StackMap locals: java.util.Map
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
new java.util.StringTokenizer
dup
aload 0
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 1
start local 1 10: aload 1
invokevirtual java.util.StringTokenizer.countTokens:()I
anewarray java.net.URL
astore 2
start local 2 11: iconst_0
istore 3
start local 3 12: goto 15
13: StackMap locals: java.util.StringTokenizer java.net.URL[] int
StackMap stack:
aload 2
iload 3
new java.net.URL
dup
aload 1
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
aastore
14: iinc 3 1
StackMap locals:
StackMap stack:
15: aload 1
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 13
end local 3 16: getstatic sun.rmi.server.LoaderHandler.pathToURLsCache:Ljava/util/Map;
dup
astore 3
monitorenter
17: getstatic sun.rmi.server.LoaderHandler.pathToURLsCache:Ljava/util/Map;
aload 0
18: iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
new java.lang.ref.SoftReference
dup
aload 0
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
aastore
19: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 3
monitorexit
21: goto 24
StackMap locals: java.lang.String java.util.StringTokenizer java.net.URL[] java.util.Map
StackMap stack: java.lang.Throwable
22: aload 3
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 path Ljava/lang/String;
2 5 2 v [Ljava/lang/Object;
10 25 1 st Ljava/util/StringTokenizer;
11 25 2 urls [Ljava/net/URL;
12 16 3 i I
Exception table:
from to target type
1 4 7 any
5 6 7 any
7 8 7 any
17 21 22 any
22 23 22 any
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
path
private static java.lang.String urlsToPath(java.net.URL[]);
descriptor: ([Ljava/net/URL;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
arraylength
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iconst_1
if_icmpne 4
3: aload 0
iconst_0
aaload
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
new java.lang.StringBuffer
dup
aload 0
iconst_0
aaload
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
invokespecial java.lang.StringBuffer.<init>:(Ljava/lang/String;)V
astore 1
start local 1 5: iconst_1
istore 2
start local 2 6: goto 10
7: StackMap locals: java.lang.StringBuffer int
StackMap stack:
aload 1
bipush 32
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
8: aload 1
aload 0
iload 2
aaload
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
9: iinc 2 1
StackMap locals:
StackMap stack:
10: iload 2
aload 0
arraylength
if_icmplt 7
end local 2 11: aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 urls [Ljava/net/URL;
5 12 1 path Ljava/lang/StringBuffer;
6 11 2 i I
MethodParameters:
Name Flags
urls
private static java.lang.ClassLoader getRMIContextClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static sun.rmi.server.LoaderHandler$Loader lookupLoader(java.net.URL[], java.lang.ClassLoader);
descriptor: ([Ljava/net/URL;Ljava/lang/ClassLoader;)Lsun/rmi/server/LoaderHandler$Loader;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: ldc Lsun/rmi/server/LoaderHandler;
dup
astore 4
monitorenter
1: goto 4
start local 2 2: StackMap locals: java.net.URL[] java.lang.ClassLoader sun.rmi.server.LoaderHandler$LoaderEntry top java.lang.Class
StackMap stack:
aload 2
getfield sun.rmi.server.LoaderHandler$LoaderEntry.removed:Z
ifne 4
3: getstatic sun.rmi.server.LoaderHandler.loaderTable:Ljava/util/HashMap;
aload 2
getfield sun.rmi.server.LoaderHandler$LoaderEntry.key:Lsun/rmi/server/LoaderHandler$LoaderKey;
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 4: StackMap locals: java.net.URL[] java.lang.ClassLoader top top java.lang.Class
StackMap stack:
getstatic sun.rmi.server.LoaderHandler.refQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
checkcast sun.rmi.server.LoaderHandler$LoaderEntry
dup
astore 2
start local 2 5: ifnonnull 2
6: new sun.rmi.server.LoaderHandler$LoaderKey
dup
aload 0
aload 1
invokespecial sun.rmi.server.LoaderHandler$LoaderKey.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
astore 5
start local 5 7: getstatic sun.rmi.server.LoaderHandler.loaderTable:Ljava/util/HashMap;
aload 5
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.server.LoaderHandler$LoaderEntry
astore 2
8: aload 2
ifnull 10
aload 2
invokevirtual sun.rmi.server.LoaderHandler$LoaderEntry.get:()Ljava/lang/Object;
checkcast sun.rmi.server.LoaderHandler$Loader
dup
astore 3
start local 3 9: ifnonnull 19
end local 3 10: StackMap locals: java.net.URL[] java.lang.ClassLoader sun.rmi.server.LoaderHandler$LoaderEntry top java.lang.Class sun.rmi.server.LoaderHandler$LoaderKey
StackMap stack:
aload 2
ifnull 13
11: getstatic sun.rmi.server.LoaderHandler.loaderTable:Ljava/util/HashMap;
aload 5
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 2
iconst_1
putfield sun.rmi.server.LoaderHandler$LoaderEntry.removed:Z
13: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.rmi.server.LoaderHandler.getLoaderAccessControlContext:([Ljava/net/URL;)Ljava/security/AccessControlContext;
astore 6
start local 6 14: new sun.rmi.server.LoaderHandler$1
dup
aload 0
aload 1
invokespecial sun.rmi.server.LoaderHandler$1.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
15: aload 6
16: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
checkcast sun.rmi.server.LoaderHandler$Loader
astore 3
start local 3 17: new sun.rmi.server.LoaderHandler$LoaderEntry
dup
aload 5
aload 3
invokespecial sun.rmi.server.LoaderHandler$LoaderEntry.<init>:(Lsun/rmi/server/LoaderHandler$LoaderKey;Lsun/rmi/server/LoaderHandler$Loader;)V
astore 2
18: getstatic sun.rmi.server.LoaderHandler.loaderTable:Ljava/util/HashMap;
aload 5
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 19: StackMap locals: java.net.URL[] java.lang.ClassLoader sun.rmi.server.LoaderHandler$LoaderEntry sun.rmi.server.LoaderHandler$Loader java.lang.Class
StackMap stack:
aload 4
monitorexit
20: goto 23
end local 3 end local 2 StackMap locals: java.net.URL[] java.lang.ClassLoader top top java.lang.Class
StackMap stack: java.lang.Throwable
21: aload 4
monitorexit
22: athrow
start local 2 start local 3 23: StackMap locals: java.net.URL[] java.lang.ClassLoader sun.rmi.server.LoaderHandler$LoaderEntry sun.rmi.server.LoaderHandler$Loader
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 urls [Ljava/net/URL;
0 24 1 parent Ljava/lang/ClassLoader;
2 4 2 entry Lsun/rmi/server/LoaderHandler$LoaderEntry;
5 21 2 entry Lsun/rmi/server/LoaderHandler$LoaderEntry;
23 24 2 entry Lsun/rmi/server/LoaderHandler$LoaderEntry;
9 10 3 loader Lsun/rmi/server/LoaderHandler$Loader;
17 21 3 loader Lsun/rmi/server/LoaderHandler$Loader;
23 24 3 loader Lsun/rmi/server/LoaderHandler$Loader;
7 19 5 key Lsun/rmi/server/LoaderHandler$LoaderKey;
14 19 6 acc Ljava/security/AccessControlContext;
Exception table:
from to target type
1 20 21 any
21 22 21 any
MethodParameters:
Name Flags
urls final
parent final
private static java.security.AccessControlContext getLoaderAccessControlContext(java.net.URL[]);
descriptor: ([Ljava/net/URL;)Ljava/security/AccessControlContext;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: new sun.rmi.server.LoaderHandler$2
dup
invokespecial sun.rmi.server.LoaderHandler$2.<init>:()V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.security.PermissionCollection
2: astore 1
start local 1 3: aload 1
new java.lang.RuntimePermission
dup
ldc "createClassLoader"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
4: aload 1
new java.util.PropertyPermission
dup
ldc "java.*"
ldc "read"
invokespecial java.util.PropertyPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
5: aload 0
aload 1
iconst_1
invokestatic sun.rmi.server.LoaderHandler.addPermissionsForURLs:([Ljava/net/URL;Ljava/security/PermissionCollection;Z)V
6: new java.security.ProtectionDomain
dup
7: new java.security.CodeSource
dup
aload 0
arraylength
ifle 8
aload 0
iconst_0
aaload
goto 9
StackMap locals: java.net.URL[] java.security.PermissionCollection
StackMap stack: new 6 new 6 new 7 new 7
8: aconst_null
9: StackMap locals: java.net.URL[] java.security.PermissionCollection
StackMap stack: new 6 new 6 new 7 new 7 java.net.URL
aconst_null
10: invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
11: aload 1
12: invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
astore 2
start local 2 13: new java.security.AccessControlContext
dup
iconst_1
anewarray java.security.ProtectionDomain
dup
iconst_0
aload 2
aastore
invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 urls [Ljava/net/URL;
3 14 1 perms Ljava/security/PermissionCollection;
13 14 2 pd Ljava/security/ProtectionDomain;
MethodParameters:
Name Flags
urls
public static void addPermissionsForURLs(java.net.URL[], java.security.PermissionCollection, boolean);
descriptor: ([Ljava/net/URL;Ljava/security/PermissionCollection;Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 46
2: StackMap locals: int
StackMap stack:
aload 0
iload 3
aaload
astore 4
start local 4 3: aload 4
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 5
start local 5 4: aload 5
invokevirtual java.net.URLConnection.getPermission:()Ljava/security/Permission;
astore 6
start local 6 5: aload 6
ifnull 45
6: aload 6
instanceof java.io.FilePermission
ifeq 21
7: aload 6
invokevirtual java.security.Permission.getName:()Ljava/lang/String;
astore 7
start local 7 8: aload 7
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 8
start local 8 9: iload 8
iconst_m1
if_icmpeq 18
10: aload 7
iconst_0
iload 8
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
11: aload 7
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 13
12: new java.lang.StringBuilder
dup
aload 7
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 7
13: StackMap locals: java.net.URL[] java.security.PermissionCollection int int java.net.URL java.net.URLConnection java.security.Permission java.lang.String int
StackMap stack:
new java.io.FilePermission
dup
aload 7
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 9
start local 9 14: aload 1
aload 9
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ifne 16
15: aload 1
aload 9
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
16: StackMap locals: java.security.Permission
StackMap stack:
aload 1
new java.io.FilePermission
dup
aload 7
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
end local 9 17: goto 45
18: StackMap locals:
StackMap stack:
aload 1
aload 6
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ifne 45
19: aload 1
aload 6
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
end local 8 end local 7 20: goto 45
21: StackMap locals:
StackMap stack:
aload 1
aload 6
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ifne 23
22: aload 1
aload 6
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
23: StackMap locals:
StackMap stack:
iload 2
ifeq 45
24: aload 4
astore 7
start local 7 25: aload 5
astore 8
start local 8 26: goto 30
27: StackMap locals: java.net.URL java.net.URLConnection
StackMap stack:
aload 8
checkcast java.net.JarURLConnection
invokevirtual java.net.JarURLConnection.getJarFileURL:()Ljava/net/URL;
28: astore 7
29: aload 7
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 8
30: StackMap locals:
StackMap stack:
aload 8
instanceof java.net.JarURLConnection
ifne 27
end local 8 31: aload 7
invokevirtual java.net.URL.getHost:()Ljava/lang/String;
astore 8
start local 8 32: aload 8
ifnull 45
33: aload 6
new java.net.SocketPermission
dup
aload 8
34: ldc "resolve"
invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
35: invokevirtual java.security.Permission.implies:(Ljava/security/Permission;)Z
36: ifeq 45
37: new java.net.SocketPermission
dup
aload 8
38: ldc "connect,accept"
39: invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
40: astore 9
start local 9 41: aload 1
aload 9
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ifne 45
42: aload 1
aload 9
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
end local 9 end local 8 end local 7 end local 6 end local 5 43: goto 45
StackMap locals: java.net.URL[] java.security.PermissionCollection int int java.net.URL
StackMap stack: java.io.IOException
44: pop
end local 4 45: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
46: iload 3
aload 0
arraylength
if_icmplt 2
end local 3 47: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 urls [Ljava/net/URL;
0 48 1 perms Ljava/security/PermissionCollection;
0 48 2 forLoader Z
1 47 3 i I
3 45 4 url Ljava/net/URL;
4 43 5 urlConnection Ljava/net/URLConnection;
5 43 6 p Ljava/security/Permission;
8 20 7 path Ljava/lang/String;
9 20 8 endIndex I
14 17 9 p2 Ljava/security/Permission;
25 43 7 hostURL Ljava/net/URL;
26 31 8 conn Ljava/net/URLConnection;
32 43 8 host Ljava/lang/String;
41 43 9 p2 Ljava/security/Permission;
Exception table:
from to target type
3 43 44 Class java.io.IOException
MethodParameters:
Name Flags
urls
perms
forLoader
private static java.lang.Class<?> loadClassForName(java.lang.String, boolean, java.lang.ClassLoader);
descriptor: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aload 0
invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 name Ljava/lang/String;
0 3 1 initialize Z
0 3 2 loader Ljava/lang/ClassLoader;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
initialize
loader
}
SourceFile: "LoaderHandler.java"
NestMembers:
sun.rmi.server.LoaderHandler$1 sun.rmi.server.LoaderHandler$2 sun.rmi.server.LoaderHandler$Loader sun.rmi.server.LoaderHandler$LoaderEntry sun.rmi.server.LoaderHandler$LoaderKey
InnerClasses:
sun.rmi.server.LoaderHandler$1
sun.rmi.server.LoaderHandler$2
private Loader = sun.rmi.server.LoaderHandler$Loader of sun.rmi.server.LoaderHandler
private LoaderEntry = sun.rmi.server.LoaderHandler$LoaderEntry of sun.rmi.server.LoaderHandler
private LoaderKey = sun.rmi.server.LoaderHandler$LoaderKey of sun.rmi.server.LoaderHandler