public abstract class org.apache.catalina.loader.WebappClassLoaderBase extends java.net.URLClassLoader implements org.apache.catalina.Lifecycle, org.apache.tomcat.InstrumentableClassLoader, org.apache.juli.WebappProperties, org.apache.tomcat.util.security.PermissionCheck
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.catalina.loader.WebappClassLoaderBase
super_class: java.net.URLClassLoader
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.List<java.lang.String> JVM_THREAD_GROUP_NAMES;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
private static final java.lang.String JVM_THREAD_GROUP_SYSTEM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "system"
private static final java.lang.String CLASS_FILE_SUFFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ".class"
protected static final org.apache.tomcat.util.res.StringManager sm;
descriptor: Lorg/apache/tomcat/util/res/StringManager;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected org.apache.catalina.WebResourceRoot resources;
descriptor: Lorg/apache/catalina/WebResourceRoot;
flags: (0x0004) ACC_PROTECTED
protected final java.util.Map<java.lang.String, org.apache.catalina.loader.ResourceEntry> resourceEntries;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/loader/ResourceEntry;>;
protected boolean delegate;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
private final java.util.Map<java.lang.String, java.lang.Long> jarModificationTimes;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;
protected final java.util.ArrayList<java.security.Permission> permissionList;
descriptor: Ljava/util/ArrayList;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/ArrayList<Ljava/security/Permission;>;
protected final java.util.HashMap<java.lang.String, java.security.PermissionCollection> loaderPC;
descriptor: Ljava/util/HashMap;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/security/PermissionCollection;>;
protected final java.lang.SecurityManager securityManager;
descriptor: Ljava/lang/SecurityManager;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.ClassLoader parent;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private java.lang.ClassLoader javaseClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesRmiTargets;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesStopThreads;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesStopTimerThreads;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesLogFactoryRelease;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesHttpClientKeepAliveThread;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesObjectStreamClassCaches;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean clearReferencesThreadLocals;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean skipMemoryLeakChecksOnJvmShutdown;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.List<java.lang.instrument.ClassFileTransformer> transformers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/instrument/ClassFileTransformer;>;
private boolean hasExternalRepositories;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.List<java.net.URL> localRepositories;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Ljava/net/URL;>;
private volatile org.apache.catalina.LifecycleState state;
descriptor: Lorg/apache/catalina/LifecycleState;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/catalina/loader/WebappClassLoaderBase;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putstatic org.apache.catalina.loader.WebappClassLoaderBase.JVM_THREAD_GROUP_NAMES:Ljava/util/List;
2: invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifne 4
3: invokestatic java.lang.ClassLoader.registerAsParallelCapable:()Z
pop
4: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.JVM_THREAD_GROUP_NAMES:Ljava/util/List;
ldc "system"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: getstatic org.apache.catalina.loader.WebappClassLoaderBase.JVM_THREAD_GROUP_NAMES:Ljava/util/List;
ldc "RMI Runtime"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: ldc "org.apache.catalina.loader"
invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
7: putstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
8: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.net.URL
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;)V
1: aload 0
aconst_null
putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
2: aload 0
3: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
4: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
6: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
7: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
8: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
9: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
10: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
11: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
12: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
13: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
14: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
15: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
16: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
17: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
18: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
19: aload 0
getstatic org.apache.catalina.LifecycleState.NEW:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
20: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getParent:()Ljava/lang/ClassLoader;
astore 1
start local 1 21: aload 1
ifnonnull 23
22: invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 1
23: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.ClassLoader
StackMap stack:
aload 0
aload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
24: ldc Ljava/lang/String;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 2
start local 2 25: aload 2
ifnonnull 30
26: invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 2
27: goto 29
28: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 2
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 2
29: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
ifnonnull 28
30: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
31: aload 0
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
putfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
32: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 34
33: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.refreshPolicy:()V
34: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
21 35 1 p Ljava/lang/ClassLoader;
25 35 2 j Ljava/lang/ClassLoader;
protected void <init>(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
anewarray java.net.URL
aload 1
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
1: aload 0
aconst_null
putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
2: aload 0
3: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
4: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
6: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
7: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
8: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
9: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
10: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
11: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
12: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
13: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
14: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
15: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
16: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
17: aload 0
iconst_0
putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
18: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
19: aload 0
getstatic org.apache.catalina.LifecycleState.NEW:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
20: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getParent:()Ljava/lang/ClassLoader;
astore 2
start local 2 21: aload 2
ifnonnull 23
22: invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 2
23: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.ClassLoader java.lang.ClassLoader
StackMap stack:
aload 0
aload 2
putfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
24: ldc Ljava/lang/String;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 25: aload 3
ifnonnull 30
26: invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
astore 3
27: goto 29
28: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 3
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 3
29: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
ifnonnull 28
30: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
31: aload 0
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
putfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
32: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 34
33: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.refreshPolicy:()V
34: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 35 1 parent Ljava/lang/ClassLoader;
21 35 2 p Ljava/lang/ClassLoader;
25 35 3 j Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
parent
public org.apache.catalina.WebResourceRoot getResources();
descriptor: ()Lorg/apache/catalina/WebResourceRoot;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setResources(org.apache.catalina.WebResourceRoot);
descriptor: (Lorg/apache/catalina/WebResourceRoot;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 resources Lorg/apache/catalina/WebResourceRoot;
MethodParameters:
Name Flags
resources
public java.lang.String getContextName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ifnonnull 2
1: ldc "Unknown"
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getBaseName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public boolean getDelegate();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setDelegate(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 delegate Z
MethodParameters:
Name Flags
delegate
void addPermission(java.net.URL);
descriptor: (Ljava/net/URL;)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 28
3: aload 1
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
astore 2
start local 2 4: ldc "file"
aload 2
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 24
5: aload 1
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
astore 3
start local 3 6: new java.io.File
dup
aload 3
invokespecial java.io.File.<init>:(Ljava/net/URI;)V
astore 4
start local 4 7: aload 4
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
astore 5
start local 5 8: goto 15
end local 5 end local 4 end local 3 StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.net.URL java.lang.String
StackMap stack: java.lang.Exception
9: pop
10: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
11: ldc "webappClassLoader.addPermisionNoCanonicalFile"
iconst_1
anewarray java.lang.Object
dup
iconst_0
12: aload 1
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
aastore
13: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
14: return
start local 3 start local 4 start local 5 15: StackMap locals: java.net.URI java.io.File java.lang.String
StackMap stack:
aload 4
invokevirtual java.io.File.isFile:()Z
ifeq 18
16: aload 0
new java.io.FilePermission
dup
aload 5
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.addPermission:(Ljava/security/Permission;)V
17: goto 28
StackMap locals:
StackMap stack:
18: aload 4
invokevirtual java.io.File.isDirectory:()Z
ifeq 28
19: aload 0
new java.io.FilePermission
dup
aload 5
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.addPermission:(Ljava/security/Permission;)V
20: aload 0
new java.io.FilePermission
dup
21: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "read"
invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
22: invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.addPermission:(Ljava/security/Permission;)V
end local 5 end local 4 end local 3 23: goto 28
24: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
25: ldc "webappClassLoader.addPermisionNoProtocol"
iconst_2
anewarray java.lang.Object
dup
iconst_0
26: aload 2
aastore
dup
iconst_1
aload 1
invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
aastore
27: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 2 28: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 29 1 url Ljava/net/URL;
4 28 2 protocol Ljava/lang/String;
6 9 3 uri Ljava/net/URI;
15 23 3 uri Ljava/net/URI;
7 9 4 f Ljava/io/File;
15 23 4 f Ljava/io/File;
8 9 5 path Ljava/lang/String;
15 23 5 path Ljava/lang/String;
Exception table:
from to target type
5 8 9 Class java.io.IOException
5 8 9 Class java.net.URISyntaxException
MethodParameters:
Name Flags
url
void addPermission(java.security.Permission);
descriptor: (Ljava/security/Permission;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 2
aload 1
ifnull 2
1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 3 1 permission Ljava/security/Permission;
MethodParameters:
Name Flags
permission
public boolean getClearReferencesRmiTargets();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesRmiTargets(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 clearReferencesRmiTargets Z
MethodParameters:
Name Flags
clearReferencesRmiTargets
public boolean getClearReferencesStopThreads();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesStopThreads(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 clearReferencesStopThreads Z
MethodParameters:
Name Flags
clearReferencesStopThreads
public boolean getClearReferencesStopTimerThreads();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesStopTimerThreads(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 clearReferencesStopTimerThreads Z
MethodParameters:
Name Flags
clearReferencesStopTimerThreads
public boolean getClearReferencesLogFactoryRelease();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesLogFactoryRelease(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
1: iload 1
2: putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 4 1 clearReferencesLogFactoryRelease Z
MethodParameters:
Name Flags
clearReferencesLogFactoryRelease
public boolean getClearReferencesHttpClientKeepAliveThread();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesHttpClientKeepAliveThread(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
1: iload 1
2: putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 4 1 clearReferencesHttpClientKeepAliveThread Z
MethodParameters:
Name Flags
clearReferencesHttpClientKeepAliveThread
public boolean getClearReferencesObjectStreamClassCaches();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesObjectStreamClassCaches(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 clearReferencesObjectStreamClassCaches Z
MethodParameters:
Name Flags
clearReferencesObjectStreamClassCaches
public boolean getClearReferencesThreadLocals();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setClearReferencesThreadLocals(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 clearReferencesThreadLocals Z
MethodParameters:
Name Flags
clearReferencesThreadLocals
public boolean getSkipMemoryLeakChecksOnJvmShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void setSkipMemoryLeakChecksOnJvmShutdown(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 2 1 skipMemoryLeakChecksOnJvmShutdown Z
MethodParameters:
Name Flags
skipMemoryLeakChecksOnJvmShutdown
public void addTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new java.lang.IllegalArgumentException
dup
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
2: ldc "webappClassLoader.addTransformer.illegalArgument"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
3: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 9
5: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.addTransformer.duplicate"
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: aload 1
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
7: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
8: return
9: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.addTransformer"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 12 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
public void removeTransformer(java.lang.instrument.ClassFileTransformer);
descriptor: (Ljava/lang/instrument/ClassFileTransformer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
ifeq 6
3: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.removeTransformer"
iconst_2
anewarray java.lang.Object
dup
iconst_0
4: aload 1
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
5: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 7 1 transformer Ljava/lang/instrument/ClassFileTransformer;
MethodParameters:
Name Flags
transformer
protected void copyStateWithoutTransformers(org.apache.catalina.loader.WebappClassLoaderBase);
descriptor: (Lorg/apache/catalina/loader/WebappClassLoaderBase;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
1: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
2: aload 1
getstatic org.apache.catalina.LifecycleState.NEW:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
3: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
4: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
5: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
6: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
7: aload 1
getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
8: aload 1
getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
9: aload 1
getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
invokevirtual java.util.HashMap.putAll:(Ljava/util/Map;)V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 11 1 base Lorg/apache/catalina/loader/WebappClassLoaderBase;
MethodParameters:
Name Flags
base
public boolean modified();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=8, args_size=1
start local 0 0: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc "modified()"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 18
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase top java.util.Iterator
StackMap stack:
3: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 1
start local 1 4: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.catalina.loader.ResourceEntry
getfield org.apache.catalina.loader.ResourceEntry.lastModified:J
lstore 3
start local 3 5: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
6: aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
7: invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
8: invokeinterface org.apache.catalina.WebResource.getLastModified:()J
9: lstore 5
start local 5 10: lload 5
lload 3
lcmp
ifeq 18
11: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 17
12: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.resourceModified"
iconst_3
anewarray java.lang.Object
dup
iconst_0
13: aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aastore
dup
iconst_1
14: new java.util.Date
dup
lload 3
invokespecial java.util.Date.<init>:(J)V
aastore
dup
iconst_2
15: new java.util.Date
dup
lload 5
invokespecial java.util.Date.<init>:(J)V
aastore
16: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
17: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.util.Map$Entry java.util.Iterator long long
StackMap stack:
iconst_1
ireturn
end local 5 end local 3 end local 1 18: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
19: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ldc "/WEB-INF/lib"
invokeinterface org.apache.catalina.WebResourceRoot.listResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
astore 1
start local 1 20: iconst_0
istore 2
start local 2 21: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 37
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] int top int int org.apache.catalina.WebResource[]
StackMap stack:
22: aload 6
iload 4
aaload
astore 3
start local 3 23: aload 3
invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 36
aload 3
invokeinterface org.apache.catalina.WebResource.isFile:()Z
ifeq 36
aload 3
invokeinterface org.apache.catalina.WebResource.canRead:()Z
ifeq 36
24: iinc 2 1
25: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
aload 3
invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 7
start local 7 26: aload 7
ifnonnull 31
27: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.jarsAdded"
iconst_1
anewarray java.lang.Object
dup
iconst_0
28: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
aastore
29: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
30: iconst_1
ireturn
31: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] int org.apache.catalina.WebResource int int org.apache.catalina.WebResource[] java.lang.Long
StackMap stack:
aload 7
invokevirtual java.lang.Long.longValue:()J
aload 3
invokeinterface org.apache.catalina.WebResource.getLastModified:()J
lcmp
ifeq 36
32: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.jarsModified"
iconst_1
anewarray java.lang.Object
dup
iconst_0
33: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
aastore
34: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
35: iconst_1
ireturn
end local 7 end local 3 36: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] int top int int org.apache.catalina.WebResource[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
37: iload 4
iload 5
if_icmplt 22
38: iload 2
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
if_icmpge 43
39: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.jarsRemoved"
iconst_1
anewarray java.lang.Object
dup
iconst_0
40: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
aastore
41: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
42: iconst_1
ireturn
43: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] int
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
4 18 1 entry Ljava/util/Map$Entry<Ljava/lang/String;Lorg/apache/catalina/loader/ResourceEntry;>;
5 18 3 cachedLastModified J
10 18 5 lastModified J
20 44 1 jars [Lorg/apache/catalina/WebResource;
21 44 2 jarCount I
23 36 3 jar Lorg/apache/catalina/WebResource;
26 36 7 recordedLastModified Ljava/lang/Long;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
ldc "\r\n context: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
ldc "\r\n delegate: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
pop
5: aload 1
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
ifnull 10
7: aload 1
ldc "----------> Parent Classloader:\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifle 16
11: aload 1
ldc "----------> Class file transformers:\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 15
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.StringBuilder top java.util.Iterator
StackMap stack:
13: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.instrument.ClassFileTransformer
astore 2
start local 2 14: aload 1
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 15: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.StringBuilder
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 17 1 sb Ljava/lang/StringBuilder;
14 15 2 transformer Ljava/lang/instrument/ClassFileTransformer;
protected final java.lang.Class<?> doDefineClass(java.lang.String, byte[], int, int, java.security.ProtectionDomain);
descriptor: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
iload 3
iload 4
aload 5
invokespecial java.net.URLClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
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 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 1 1 name Ljava/lang/String;
0 1 2 b [B
0 1 3 off I
0 1 4 len I
0 1 5 protectionDomain Ljava/security/ProtectionDomain;
Signature: (Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
b
off
len
protectionDomain
public java.lang.Class<?> findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " findClass("
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading:(Ljava/lang/String;)V
3: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 14
4: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 2
start local 2 5: iload 2
iflt 14
6: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 8
7: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " securityManager.checkPackageDefinition"
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
aload 1
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.SecurityManager.checkPackageDefinition:(Ljava/lang/String;)V
9: goto 14
StackMap locals:
StackMap stack: java.lang.Exception
10: astore 3
start local 3 11: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 13
12: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " -->Exception-->ClassNotFoundException"
aload 3
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
13: StackMap locals: java.lang.Exception
StackMap stack:
new java.lang.ClassNotFoundException
dup
aload 1
aload 3
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 14: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 15: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 17
16: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " findClassInternal("
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
17: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 22
18: new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedFindClassByName
dup
aload 0
aload 1
invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedFindClassByName.<init>:(Lorg/apache/catalina/loader/WebappClassLoaderBase;Ljava/lang/String;)V
19: astore 3
start local 3 20: aload 3
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Class
astore 2
end local 3 21: goto 35
22: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
23: goto 35
StackMap locals:
StackMap stack: java.security.AccessControlException
24: astore 3
start local 3 25: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.securityException"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
26: aload 3
invokevirtual java.security.AccessControlException.getMessage:()Ljava/lang/String;
aastore
27: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
28: aload 3
29: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
30: new java.lang.ClassNotFoundException
dup
aload 1
aload 3
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 31: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 3
start local 3 32: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 34
33: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " -->RuntimeException Rethrown"
aload 3
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
34: StackMap locals: java.lang.RuntimeException
StackMap stack:
aload 3
athrow
end local 3 35: StackMap locals:
StackMap stack:
aload 2
ifnonnull 49
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
ifeq 49
36: aload 0
aload 1
invokespecial java.net.URLClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
37: goto 49
StackMap locals:
StackMap stack: java.security.AccessControlException
38: astore 3
start local 3 39: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.securityException"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
40: aload 3
invokevirtual java.security.AccessControlException.getMessage:()Ljava/lang/String;
aastore
41: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
42: aload 3
43: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
44: new java.lang.ClassNotFoundException
dup
aload 1
aload 3
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 45: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 3
start local 3 46: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 48
47: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " -->RuntimeException Rethrown"
aload 3
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
48: StackMap locals: java.lang.RuntimeException
StackMap stack:
aload 3
athrow
end local 3 49: StackMap locals:
StackMap stack:
aload 2
ifnonnull 57
50: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 52
51: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Returning ClassNotFoundException"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
52: StackMap locals:
StackMap stack:
new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
53: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 3
start local 3 54: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 56
55: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Passing on ClassNotFoundException"
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
56: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
aload 3
athrow
end local 3 57: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 59
58: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Returning class "
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;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
59: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 66
60: getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
ifeq 64
61: new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedGetClassLoader
dup
aload 2
invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedGetClassLoader.<init>:(Ljava/lang/Class;)V
62: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.ClassLoader
astore 3
start local 3 63: goto 65
end local 3 64: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 65: StackMap locals: java.lang.ClassLoader
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Loaded by "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 3 66: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 67 1 name Ljava/lang/String;
5 14 2 i I
11 14 3 se Ljava/lang/Exception;
15 67 2 clazz Ljava/lang/Class<*>;
20 21 3 dp Ljava/security/PrivilegedAction<Ljava/lang/Class<*>;>;
25 31 3 ace Ljava/security/AccessControlException;
32 35 3 e Ljava/lang/RuntimeException;
39 45 3 ace Ljava/security/AccessControlException;
46 49 3 e Ljava/lang/RuntimeException;
54 57 3 e Ljava/lang/ClassNotFoundException;
63 64 3 cl Ljava/lang/ClassLoader;
65 66 3 cl Ljava/lang/ClassLoader;
Exception table:
from to target type
6 9 10 Class java.lang.Exception
17 23 24 Class java.security.AccessControlException
17 23 31 Class java.lang.RuntimeException
36 37 38 Class java.security.AccessControlException
36 37 45 Class java.lang.RuntimeException
15 53 53 Class java.lang.ClassNotFoundException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
public java.net.URL findResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " findResource("
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
3: aconst_null
astore 2
start local 2 4: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.nameToPath:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 5: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
aload 3
invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
astore 4
start local 4 6: aload 4
invokeinterface org.apache.catalina.WebResource.exists:()Z
ifeq 9
7: aload 4
invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
astore 2
8: aload 0
aload 3
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.trackLastModified:(Ljava/lang/String;Lorg/apache/catalina/WebResource;)V
9: StackMap locals: java.net.URL java.lang.String org.apache.catalina.WebResource
StackMap stack:
aload 2
ifnonnull 11
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
ifeq 11
10: aload 0
aload 1
invokespecial java.net.URLClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
11: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 15
12: aload 2
ifnull 14
13: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " --> Returning '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.net.URL.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
goto 15
14: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Resource not found, returning null"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 16 1 name Ljava/lang/String;
4 16 2 url Ljava/net/URL;
5 16 3 path Ljava/lang/String;
6 16 4 resource Lorg/apache/catalina/WebResource;
MethodParameters:
Name Flags
name final
private void trackLastModified(java.lang.String, org.apache.catalina.WebResource);
descriptor: (Ljava/lang/String;Lorg/apache/catalina/WebResource;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
new org.apache.catalina.loader.ResourceEntry
dup
invokespecial org.apache.catalina.loader.ResourceEntry.<init>:()V
astore 3
start local 3 3: aload 3
aload 2
invokeinterface org.apache.catalina.WebResource.getLastModified:()J
putfield org.apache.catalina.loader.ResourceEntry.lastModified:J
4: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
dup
astore 4
monitorenter
5: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 4
monitorexit
7: goto 10
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String org.apache.catalina.WebResource org.apache.catalina.loader.ResourceEntry java.util.Map
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 11 1 path Ljava/lang/String;
0 11 2 resource Lorg/apache/catalina/WebResource;
3 11 3 entry Lorg/apache/catalina/loader/ResourceEntry;
Exception table:
from to target type
5 7 8 any
8 9 8 any
MethodParameters:
Name Flags
path
resource
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=9, args_size=2
start local 0 start local 1 0: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " findResources("
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
3: new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
astore 2
start local 2 4: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.nameToPath:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 5: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
aload 3
invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
astore 4
start local 4 6: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 11
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.util.LinkedHashSet java.lang.String org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 5
invokeinterface org.apache.catalina.WebResource.exists:()Z
ifeq 10
9: aload 2
aload 5
invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
pop
end local 5 10: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
iload 7
if_icmplt 7
12: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
ifeq 17
13: aload 0
aload 1
invokespecial java.net.URLClassLoader.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 5
start local 5 14: goto 16
15: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.util.LinkedHashSet java.lang.String org.apache.catalina.WebResource[] java.util.Enumeration
StackMap stack:
aload 2
aload 5
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.net.URL
invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 15
end local 5 17: StackMap locals:
StackMap stack:
aload 2
invokestatic java.util.Collections.enumeration:(Ljava/util/Collection;)Ljava/util/Enumeration;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 18 1 name Ljava/lang/String;
4 18 2 result Ljava/util/LinkedHashSet<Ljava/net/URL;>;
5 18 3 path Ljava/lang/String;
6 18 4 webResources [Lorg/apache/catalina/WebResource;
8 10 5 webResource Lorg/apache/catalina/WebResource;
14 17 5 otherResourcePaths 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
public java.net.URL getResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "getResource("
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
3: aconst_null
astore 2
start local 2 4: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
ifne 5
aload 0
aload 1
iconst_0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.filter:(Ljava/lang/String;Z)Z
ifne 5
iconst_0
goto 6
StackMap locals: java.net.URL
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 3
start local 3 7: iload 3
ifeq 15
8: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 10
9: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Delegating to parent classloader "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
10: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
11: aload 2
ifnull 15
12: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 14
13: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " --> Returning '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.net.URL.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 2
areturn
15: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
16: aload 2
ifnull 20
17: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 19
18: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " --> Returning '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.net.URL.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
19: StackMap locals:
StackMap stack:
aload 2
areturn
20: StackMap locals:
StackMap stack:
iload 3
ifne 26
21: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 2
22: aload 2
ifnull 26
23: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 25
24: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " --> Returning '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.net.URL.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
25: StackMap locals:
StackMap stack:
aload 2
areturn
26: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 28
27: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Resource not found, returning null"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
28: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 29 1 name Ljava/lang/String;
4 29 2 url Ljava/net/URL;
7 29 3 delegateFirst Z
MethodParameters:
Name Flags
name
public java.util.Enumeration<java.net.URL> getResources(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Enumeration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getParent:()Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 2
start local 2 1: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
astore 3
start local 3 2: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
ifne 3
aload 0
aload 1
iconst_0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.filter:(Ljava/lang/String;Z)Z
ifne 3
iconst_0
goto 4
StackMap locals: java.util.Enumeration java.util.Enumeration
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: iload 4
ifeq 7
6: new org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration
dup
aload 2
aload 3
invokespecial org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.<init>:(Ljava/util/Enumeration;Ljava/util/Enumeration;)V
areturn
7: StackMap locals: int
StackMap stack:
new org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration
dup
aload 3
aload 2
invokespecial org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.<init>:(Ljava/util/Enumeration;Ljava/util/Enumeration;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 8 1 name Ljava/lang/String;
1 8 2 parentResources Ljava/util/Enumeration<Ljava/net/URL;>;
2 8 3 localResources Ljava/util/Enumeration<Ljava/net/URL;>;
5 8 4 delegateFirst Z
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/Enumeration<Ljava/net/URL;>;
MethodParameters:
Name Flags
name
public java.io.InputStream getResourceAsStream(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "getResourceAsStream("
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
3: aconst_null
astore 2
start local 2 4: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
ifne 5
aload 0
aload 1
iconst_0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.filter:(Ljava/lang/String;Z)Z
ifne 5
iconst_0
goto 6
StackMap locals: java.io.InputStream
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 3
start local 3 7: iload 3
ifeq 15
8: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 10
9: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Delegating to parent classloader "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
10: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 2
11: aload 2
ifnull 15
12: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 14
13: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Returning stream from parent"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 2
areturn
15: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 17
16: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Searching local repositories"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
17: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.nameToPath:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 18: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
aload 4
invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
astore 5
start local 5 19: aload 5
invokeinterface org.apache.catalina.WebResource.exists:()Z
ifeq 22
20: aload 5
invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
astore 2
21: aload 0
aload 4
aload 5
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.trackLastModified:(Ljava/lang/String;Lorg/apache/catalina/WebResource;)V
22: StackMap locals: java.lang.String org.apache.catalina.WebResource
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
ifeq 28
aload 2
ifnonnull 28
23: aload 0
aload 1
invokespecial java.net.URLClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
astore 6
start local 6 24: aload 6
ifnull 28
25: aload 6
invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
astore 2
end local 6 26: goto 28
StackMap locals:
StackMap stack: java.io.IOException
27: pop
28: StackMap locals:
StackMap stack:
aload 2
ifnull 32
29: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 31
30: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Returning stream from local"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
31: StackMap locals:
StackMap stack:
aload 2
areturn
32: StackMap locals:
StackMap stack:
iload 3
ifne 40
33: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 35
34: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Delegating to parent classloader unconditionally "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
35: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 2
36: aload 2
ifnull 40
37: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 39
38: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Returning stream from parent"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
39: StackMap locals:
StackMap stack:
aload 2
areturn
40: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 42
41: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " --> Resource not found, returning null"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
42: StackMap locals:
StackMap stack:
aconst_null
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 43 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 43 1 name Ljava/lang/String;
4 43 2 stream Ljava/io/InputStream;
7 43 3 delegateFirst Z
18 43 4 path Ljava/lang/String;
19 43 5 resource Lorg/apache/catalina/WebResource;
24 26 6 url Ljava/net/URL;
Exception table:
from to target type
22 26 27 Class java.io.IOException
MethodParameters:
Name Flags
name
public java.lang.Class<?> loadClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 1 1 name Ljava/lang/String;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
public java.lang.Class<?> loadClass(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifeq 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getClassLoadingLock:(Ljava/lang/String;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: dup
astore 3
monitorenter
3: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 5
4: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "loadClass("
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;
iload 2
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
5: StackMap locals: java.lang.Object
StackMap stack:
aconst_null
astore 4
start local 4 6: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading:(Ljava/lang/String;)V
7: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findLoadedClass0:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
8: aload 4
ifnull 15
9: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 11
10: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Returning class from cache"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
11: StackMap locals: java.lang.Class
StackMap stack:
iload 2
ifeq 13
12: aload 0
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
13: StackMap locals:
StackMap stack:
aload 4
aload 3
monitorexit
14: areturn
15: StackMap locals:
StackMap stack:
invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifeq 16
aconst_null
goto 17
StackMap locals:
StackMap stack:
16: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
17: astore 4
18: aload 4
ifnull 25
19: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 21
20: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Returning class from cache"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
21: StackMap locals:
StackMap stack:
iload 2
ifeq 23
22: aload 0
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
23: StackMap locals:
StackMap stack:
aload 4
aload 3
monitorexit
24: areturn
25: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath:(Ljava/lang/String;Z)Ljava/lang/String;
astore 5
start local 5 26: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getJavaseClassLoader:()Ljava/lang/ClassLoader;
astore 6
start local 6 27: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 31
28: new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedJavaseGetResource
dup
aload 0
aload 5
invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedJavaseGetResource.<init>:(Lorg/apache/catalina/loader/WebappClassLoaderBase;Ljava/lang/String;)V
astore 9
start local 9 29: aload 9
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.net.URL
astore 8
end local 9 start local 8 30: goto 32
end local 8 31: StackMap locals: java.lang.String java.lang.ClassLoader
StackMap stack:
aload 6
aload 5
invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
astore 8
start local 8 32: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String int java.lang.Object java.lang.Class java.lang.String java.lang.ClassLoader top java.net.URL
StackMap stack:
aload 8
ifnull 33
iconst_1
goto 34
StackMap locals:
StackMap stack:
33: iconst_0
StackMap locals:
StackMap stack: int
34: istore 7
end local 8 start local 7 35: goto 39
end local 7 StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String int java.lang.Object java.lang.Class java.lang.String java.lang.ClassLoader
StackMap stack: java.lang.Throwable
36: astore 8
start local 8 37: aload 8
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
38: iconst_1
istore 7
end local 8 start local 7 39: StackMap locals: int
StackMap stack:
iload 7
ifeq 48
40: aload 6
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
41: aload 4
ifnull 48
42: iload 2
ifeq 44
43: aload 0
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
44: StackMap locals:
StackMap stack:
aload 4
45: aload 3
monitorexit
46: areturn
47: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
48: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 57
49: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 8
start local 8 50: iload 8
iflt 57
51: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
aload 1
iconst_0
iload 8
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.SecurityManager.checkPackageAccess:(Ljava/lang/String;)V
52: goto 57
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String int java.lang.Object java.lang.Class java.lang.String java.lang.ClassLoader int int
StackMap stack: java.lang.SecurityException
53: astore 9
start local 9 54: getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.restrictedPackage"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 10
start local 10 55: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
aload 10
aload 9
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
56: new java.lang.ClassNotFoundException
dup
aload 10
aload 9
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 10 end local 9 end local 8 57: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
ifne 58
aload 0
aload 1
iconst_1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.filter:(Ljava/lang/String;Z)Z
ifne 58
iconst_0
goto 59
StackMap locals:
StackMap stack:
58: iconst_1
StackMap locals:
StackMap stack: int
59: istore 8
start local 8 60: iload 8
ifeq 73
61: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 63
62: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Delegating to parent classloader1 "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
63: StackMap locals: int
StackMap stack:
aload 1
iconst_0
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 4
64: aload 4
ifnull 73
65: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 67
66: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Loading class from parent"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
67: StackMap locals:
StackMap stack:
iload 2
ifeq 69
68: aload 0
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
69: StackMap locals:
StackMap stack:
aload 4
70: aload 3
monitorexit
71: areturn
72: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
73: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 75
74: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Searching local repositories"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
75: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
76: aload 4
ifnull 85
77: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 79
78: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Loading class from local repository"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
79: StackMap locals:
StackMap stack:
iload 2
ifeq 81
80: aload 0
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
81: StackMap locals:
StackMap stack:
aload 4
82: aload 3
monitorexit
83: areturn
84: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
85: StackMap locals:
StackMap stack:
iload 8
ifne 98
86: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 88
87: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc " Delegating to parent classloader at end: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
88: StackMap locals:
StackMap stack:
aload 1
iconst_0
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 4
89: aload 4
ifnull 98
90: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 92
91: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
ldc " Loading class from parent"
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
92: StackMap locals:
StackMap stack:
iload 2
ifeq 94
93: aload 0
aload 4
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
94: StackMap locals:
StackMap stack:
aload 4
95: aload 3
monitorexit
96: areturn
97: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
pop
end local 8 end local 7 end local 6 end local 5 end local 4 98: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String int java.lang.Object
StackMap stack:
aload 3
monitorexit
99: goto 102
StackMap locals:
StackMap stack: java.lang.Throwable
100: aload 3
monitorexit
101: athrow
102: StackMap locals:
StackMap stack:
new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 103 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 103 1 name Ljava/lang/String;
0 103 2 resolve Z
6 98 4 clazz Ljava/lang/Class<*>;
26 98 5 resourceName Ljava/lang/String;
27 98 6 javaseLoader Ljava/lang/ClassLoader;
35 36 7 tryLoadingFromJavaseLoader Z
39 98 7 tryLoadingFromJavaseLoader Z
30 31 8 url Ljava/net/URL;
32 35 8 url Ljava/net/URL;
29 30 9 dp Ljava/security/PrivilegedAction<Ljava/net/URL;>;
37 39 8 t Ljava/lang/Throwable;
50 57 8 i I
54 57 9 se Ljava/lang/SecurityException;
55 57 10 error Ljava/lang/String;
60 98 8 delegateLoad Z
Exception table:
from to target type
27 35 36 Class java.lang.Throwable
40 45 47 Class java.lang.ClassNotFoundException
51 52 53 Class java.lang.SecurityException
63 70 72 Class java.lang.ClassNotFoundException
75 82 84 Class java.lang.ClassNotFoundException
88 95 97 Class java.lang.ClassNotFoundException
3 14 100 any
15 24 100 any
25 46 100 any
47 71 100 any
72 83 100 any
84 96 100 any
97 99 100 any
100 101 100 any
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
resolve
protected void checkStateForClassLoading(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
1: goto 4
StackMap locals:
StackMap stack: java.lang.IllegalStateException
2: astore 2
start local 2 3: new java.lang.ClassNotFoundException
dup
aload 2
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aload 2
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 5 1 className Ljava/lang/String;
3 4 2 ise Ljava/lang/IllegalStateException;
Exception table:
from to target type
0 1 2 Class java.lang.IllegalStateException
Exceptions:
throws java.lang.ClassNotFoundException
MethodParameters:
Name Flags
className
protected void checkStateForResourceLoading(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
ifne 5
1: getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.stopped"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 2: new java.lang.IllegalStateException
dup
aload 2
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 3: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
aload 2
aload 3
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
4: aload 3
athrow
end local 3 end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 6 1 resource Ljava/lang/String;
2 5 2 msg Ljava/lang/String;
3 5 3 ise Ljava/lang/IllegalStateException;
Exceptions:
throws java.lang.IllegalStateException
MethodParameters:
Name Flags
resource
protected java.security.PermissionCollection getPermissions(java.security.CodeSource);
descriptor: (Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
invokevirtual java.net.URL.toString:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
aload 2
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.PermissionCollection
dup
astore 3
start local 3 2: ifnonnull 10
3: aload 0
aload 1
invokespecial java.net.URLClassLoader.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
astore 3
4: aload 3
ifnull 10
5: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.security.CodeSource java.lang.String java.security.PermissionCollection top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Permission
astore 4
start local 4 7: aload 3
aload 4
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
aload 2
aload 3
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.security.CodeSource java.lang.String java.security.PermissionCollection
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 11 1 codeSource Ljava/security/CodeSource;
1 11 2 codeUrl Ljava/lang/String;
2 11 3 pc Ljava/security/PermissionCollection;
7 8 4 p Ljava/security/Permission;
MethodParameters:
Name Flags
codeSource
public boolean check(java.security.Permission);
descriptor: (Ljava/security/Permission;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
ifne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
invokestatic java.security.Policy.getPolicy:()Ljava/security/Policy;
astore 2
start local 2 3: aload 2
ifnull 9
4: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ldc "/"
invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
invokeinterface org.apache.catalina.WebResource.getCodeBase:()Ljava/net/URL;
astore 3
start local 3 5: new java.security.CodeSource
dup
aload 3
aconst_null
invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
astore 4
start local 4 6: aload 2
aload 4
invokevirtual java.security.Policy.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
astore 5
start local 5 7: aload 5
aload 1
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ifeq 9
8: iconst_1
ireturn
end local 5 end local 4 end local 3 9: StackMap locals: java.security.Policy
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 10 1 permission Ljava/security/Permission;
3 10 2 currentPolicy Ljava/security/Policy;
5 9 3 contextRootUrl Ljava/net/URL;
6 9 4 cs Ljava/security/CodeSource;
7 9 5 pc Ljava/security/PermissionCollection;
MethodParameters:
Name Flags
permission
public java.net.URL[] getURLs();
descriptor: ()[Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
2: aload 1
aload 0
invokespecial java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
3: aload 1
aload 1
invokevirtual java.util.ArrayList.size:()I
anewarray java.net.URL
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.net.URL[]
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 4 1 result Ljava/util/ArrayList<Ljava/net/URL;>;
public void addLifecycleListener(org.apache.catalina.LifecycleListener);
descriptor: (Lorg/apache/catalina/LifecycleListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 1 1 listener Lorg/apache/catalina/LifecycleListener;
MethodParameters:
Name Flags
listener
public org.apache.catalina.LifecycleListener[] findLifecycleListeners();
descriptor: ()[Lorg/apache/catalina/LifecycleListener;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
anewarray org.apache.catalina.LifecycleListener
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void removeLifecycleListener(org.apache.catalina.LifecycleListener);
descriptor: (Lorg/apache/catalina/LifecycleListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 1 1 listener Lorg/apache/catalina/LifecycleListener;
MethodParameters:
Name Flags
listener
public org.apache.catalina.LifecycleState getState();
descriptor: ()Lorg/apache/catalina/LifecycleState;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public java.lang.String getStateName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getState:()Lorg/apache/catalina/LifecycleState;
invokevirtual org.apache.catalina.LifecycleState.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.apache.catalina.LifecycleState.INITIALIZED:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
getstatic org.apache.catalina.LifecycleState.STARTING_PREP:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ldc "/WEB-INF/classes"
invokeinterface org.apache.catalina.WebResourceRoot.getResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
astore 1
start local 1 2: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 2
invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
ifeq 6
aload 2
invokeinterface org.apache.catalina.WebResource.canRead:()Z
ifeq 6
5: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
aload 2
invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 3
8: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ldc "/WEB-INF/lib"
invokeinterface org.apache.catalina.WebResourceRoot.listResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
astore 2
start local 2 9: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 17
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
StackMap stack:
10: aload 6
iload 4
aaload
astore 3
start local 3 11: aload 3
invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 16
aload 3
invokeinterface org.apache.catalina.WebResource.isFile:()Z
ifeq 16
aload 3
invokeinterface org.apache.catalina.WebResource.canRead:()Z
ifeq 16
12: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
aload 3
invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
14: aload 3
invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
aload 3
invokeinterface org.apache.catalina.WebResource.getLastModified:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
15: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 16: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
iload 5
if_icmplt 10
18: aload 0
getstatic org.apache.catalina.LifecycleState.STARTED:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
2 20 1 classesResources [Lorg/apache/catalina/WebResource;
4 6 2 classes Lorg/apache/catalina/WebResource;
9 20 2 jars [Lorg/apache/catalina/WebResource;
11 16 3 jar Lorg/apache/catalina/WebResource;
Exceptions:
throws org.apache.catalina.LifecycleException
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.apache.catalina.LifecycleState.STOPPING_PREP:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
1: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferences:()V
2: aload 0
getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
3: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
4: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
5: aload 0
aconst_null
putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
6: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
7: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
invokevirtual java.util.HashMap.clear:()V
8: aload 0
getstatic org.apache.catalina.LifecycleState.STOPPED:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
Exceptions:
throws org.apache.catalina.LifecycleException
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getstatic org.apache.catalina.LifecycleState.DESTROYING:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
1: aload 0
invokespecial java.net.URLClassLoader.close:()V
2: goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: astore 1
start local 1 4: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.superCloseFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 1
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 5: StackMap locals:
StackMap stack:
aload 0
getstatic org.apache.catalina.LifecycleState.DESTROYED:Lorg/apache/catalina/LifecycleState;
putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
4 5 1 ioe Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
protected java.lang.ClassLoader getJavaseClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
protected void setJavaseClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 4
1: new java.lang.IllegalArgumentException
dup
2: getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.javaseClassLoaderNull"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 6 1 classLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
classLoader
protected void clearReferences();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
ifeq 8
1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
invokeinterface org.apache.catalina.Container.getState:()Lorg/apache/catalina/LifecycleState;
invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
ifne 8
2: new java.lang.Thread
dup
invokespecial java.lang.Thread.<init>:()V
astore 1
start local 1 3: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
aload 1
invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
4: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
aload 1
invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
pop
end local 1 5: goto 8
StackMap locals:
StackMap stack: java.lang.IllegalStateException
6: pop
7: return
8: StackMap locals:
StackMap stack:
invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifne 10
9: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc:()V
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads:()V
11: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
ifeq 13
invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifne 13
12: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:()V
13: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
ifeq 15
invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifne 15
14: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalsForLeaks:()V
15: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
ifeq 17
16: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:()V
17: StackMap locals:
StackMap stack:
invokestatic org.apache.tomcat.util.IntrospectionUtils.clear:()V
18: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
ifeq 20
19: aload 0
invokestatic org.apache.juli.logging.LogFactory.release:(Ljava/lang/ClassLoader;)V
20: StackMap locals:
StackMap stack:
invokestatic java.beans.Introspector.flushCaches:()V
21: aload 0
invokestatic org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.release:(Ljava/lang/ClassLoader;)V
22: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
3 5 1 dummyHook Ljava/lang/Thread;
Exception table:
from to target type
2 5 6 Class java.lang.IllegalStateException
private final void clearReferencesJdbc();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=7, locals=12, args_size=1
start local 0 0: sipush 2048
newarray 8
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aconst_null
astore 3
aconst_null
astore 4
3: aload 0
4: ldc "org/apache/catalina/loader/JdbcLeakPrevention.class"
5: invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 5
start local 5 6: aload 5
aload 1
iload 2
aload 1
arraylength
iload 2
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 6
start local 6 7: goto 14
8: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase byte[] int java.lang.Throwable java.lang.Throwable java.io.InputStream int
StackMap stack:
iload 2
iload 6
iadd
istore 2
9: iload 2
aload 1
arraylength
if_icmpne 13
10: aload 1
arraylength
iconst_2
imul
newarray 8
astore 7
start local 7 11: aload 1
iconst_0
aload 7
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 7
astore 1
end local 7 13: StackMap locals:
StackMap stack:
aload 5
aload 1
iload 2
aload 1
arraylength
iload 2
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 6
14: StackMap locals:
StackMap stack:
iload 6
iconst_m1
if_icmpgt 8
15: aload 0
ldc "org.apache.catalina.loader.JdbcLeakPrevention"
16: aload 1
iconst_0
iload 2
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
17: invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
18: astore 7
start local 7 19: aload 7
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 20: aload 8
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
21: ldc "clearJdbcDriverRegistrations"
iconst_0
anewarray java.lang.Class
22: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
23: aload 8
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
24: checkcast java.util.List
astore 9
start local 9 25: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 30
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase byte[] int java.lang.Throwable java.lang.Throwable java.io.InputStream int java.lang.Class java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
26: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 27: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.clearJdbc"
iconst_2
anewarray java.lang.Object
dup
iconst_0
28: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 10
aastore
29: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 10 30: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
end local 9 end local 8 end local 7 end local 6 31: aload 5
ifnull 45
aload 5
invokevirtual java.io.InputStream.close:()V
goto 45
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase byte[] int java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
32: astore 3
aload 5
ifnull 33
aload 5
invokevirtual java.io.InputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
33: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
34: astore 4
aload 3
ifnonnull 35
aload 4
astore 3
goto 36
StackMap locals:
StackMap stack:
35: aload 3
aload 4
if_acmpeq 36
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
36: aload 3
athrow
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase byte[] int
StackMap stack: java.lang.Exception
37: astore 3
start local 3 38: aload 3
invokestatic org.apache.tomcat.util.ExceptionUtils.unwrapInvocationTargetException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 4
start local 4 39: aload 4
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
40: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
41: ldc "webappClassLoader.jdbcRemoveFailed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
42: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
43: aload 4
44: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 end local 3 45: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 46 1 classBytes [B
2 46 2 offset I
6 33 5 is Ljava/io/InputStream;
7 31 6 read I
11 13 7 tmp [B
19 31 7 lpClass Ljava/lang/Class<*>;
20 31 8 obj Ljava/lang/Object;
25 31 9 driverNames Ljava/util/List<Ljava/lang/String;>;
27 30 10 name Ljava/lang/String;
38 45 3 e Ljava/lang/Exception;
39 45 4 t Ljava/lang/Throwable;
Exception table:
from to target type
6 31 32 any
3 34 34 any
2 37 37 Class java.lang.Exception
private void clearReferencesThreads();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=17, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getThreads:()[Ljava/lang/Thread;
astore 1
start local 1 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 67
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List top int int java.lang.Thread[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
ifnull 66
5: aload 3
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
astore 7
start local 7 6: aload 7
aload 0
if_acmpne 66
7: aload 3
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
if_acmpne 9
8: goto 66
9: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List java.lang.Thread int int java.lang.Thread[] java.lang.ClassLoader
StackMap stack:
aload 3
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
astore 8
start local 8 10: aload 3
invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
astore 9
start local 9 11: aload 9
ifnull 17
getstatic org.apache.catalina.loader.WebappClassLoaderBase.JVM_THREAD_GROUP_NAMES:Ljava/util/List;
aload 9
invokevirtual java.lang.ThreadGroup.getName:()Ljava/lang/String;
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 17
12: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
ifeq 66
13: aload 8
ldc "Keep-Alive-Timer"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 66
14: aload 3
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
15: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.checkThreadsHttpClient"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
16: goto 66
17: StackMap locals: java.lang.String java.lang.ThreadGroup
StackMap stack:
aload 3
invokevirtual java.lang.Thread.isAlive:()Z
ifne 19
18: goto 66
19: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
ldc "java.util.Timer"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 23
20: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
ifeq 23
21: aload 0
aload 3
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThread:(Ljava/lang/Thread;)V
22: goto 66
23: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.isRequestThread:(Ljava/lang/Thread;)Z
ifeq 28
24: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.stackTraceRequestThread"
iconst_3
anewarray java.lang.Object
dup
iconst_0
25: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 8
aastore
dup
iconst_2
aload 0
aload 3
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getStackTrace:(Ljava/lang/Thread;)Ljava/lang/String;
aastore
26: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
27: goto 31
28: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.stackTrace"
iconst_3
anewarray java.lang.Object
dup
iconst_0
29: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 8
aastore
dup
iconst_2
aload 0
aload 3
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getStackTrace:(Ljava/lang/Thread;)Ljava/lang/String;
aastore
30: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
31: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
ifne 33
32: goto 66
33: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 34: aconst_null
astore 11
start local 11 35: iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "target"
aastore
dup
iconst_1
ldc "runnable"
aastore
dup
iconst_2
ldc "action"
aastore
dup
astore 15
arraylength
istore 14
iconst_0
istore 13
goto 43
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List java.lang.Thread int int java.lang.Thread[] java.lang.ClassLoader java.lang.String java.lang.ThreadGroup int java.lang.Object top int int java.lang.String[]
StackMap stack:
36: aload 15
iload 13
aaload
astore 12
start local 12 37: aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 12
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 16
start local 16 38: aload 16
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
39: aload 16
aload 3
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 11
40: goto 44
end local 16 41: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List java.lang.Thread int int java.lang.Thread[] java.lang.ClassLoader java.lang.String java.lang.ThreadGroup int java.lang.Object java.lang.String int int java.lang.String[]
StackMap stack: java.lang.NoSuchFieldException
pop
end local 12 42: iinc 13 1
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List java.lang.Thread int int java.lang.Thread[] java.lang.ClassLoader java.lang.String java.lang.ThreadGroup int java.lang.Object top int int java.lang.String[]
StackMap stack:
43: iload 13
iload 14
if_icmplt 36
44: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List java.lang.Thread int int java.lang.Thread[] java.lang.ClassLoader java.lang.String java.lang.ThreadGroup int java.lang.Object
StackMap stack:
aload 11
ifnull 62
aload 11
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
ifnull 62
45: aload 11
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
46: ldc "java.util.concurrent.ThreadPoolExecutor.Worker"
47: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
48: ifeq 62
49: aload 11
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "this$0"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 12
start local 12 50: aload 12
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
51: aload 12
aload 11
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 13
start local 13 52: aload 13
instanceof java.util.concurrent.ThreadPoolExecutor
ifeq 62
53: aload 13
checkcast java.util.concurrent.ThreadPoolExecutor
invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
pop
54: iconst_1
istore 10
end local 13 end local 12 end local 11 55: goto 62
56: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List java.lang.Thread int int java.lang.Thread[] java.lang.ClassLoader java.lang.String java.lang.ThreadGroup int
StackMap stack: java.lang.Exception
astore 11
start local 11 57: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.stopThreadFail"
iconst_2
anewarray java.lang.Object
dup
iconst_0
58: aload 3
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
59: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
60: aload 11
61: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 11 62: StackMap locals:
StackMap stack:
iload 10
ifeq 65
63: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
64: goto 66
65: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Thread.stop:()V
end local 10 end local 9 end local 8 end local 7 end local 3 66: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List top int int java.lang.Thread[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
67: iload 4
iload 5
if_icmplt 3
68: iconst_0
istore 3
start local 3 69: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 80
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List int top java.util.Iterator
StackMap stack:
70: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Thread
astore 4
start local 4 71: goto 77
72: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List int java.lang.Thread java.util.Iterator
StackMap stack:
ldc 20
invokestatic java.lang.Thread.sleep:(J)V
73: goto 76
StackMap locals:
StackMap stack: java.lang.InterruptedException
74: pop
75: goto 78
76: StackMap locals:
StackMap stack:
iinc 3 1
77: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.Thread.isAlive:()Z
ifeq 78
iload 3
bipush 100
if_icmplt 72
78: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.Thread.isAlive:()Z
ifeq 80
79: aload 4
invokevirtual java.lang.Thread.stop:()V
end local 4 80: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 70
81: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 82 1 threads [Ljava/lang/Thread;
2 82 2 executorThreadsToStop Ljava/util/List<Ljava/lang/Thread;>;
4 66 3 thread Ljava/lang/Thread;
6 66 7 ccl Ljava/lang/ClassLoader;
10 66 8 threadName Ljava/lang/String;
11 66 9 tg Ljava/lang/ThreadGroup;
34 66 10 usingExecutor Z
35 55 11 target Ljava/lang/Object;
37 42 12 fieldName Ljava/lang/String;
38 41 16 targetField Ljava/lang/reflect/Field;
50 55 12 executorField Ljava/lang/reflect/Field;
52 55 13 executor Ljava/lang/Object;
57 62 11 e Ljava/lang/Exception;
69 82 3 count I
71 80 4 t Ljava/lang/Thread;
Exception table:
from to target type
37 40 41 Class java.lang.NoSuchFieldException
34 55 56 Class java.lang.SecurityException
34 55 56 Class java.lang.NoSuchFieldException
34 55 56 Class java.lang.IllegalArgumentException
34 55 56 Class java.lang.IllegalAccessException
72 73 74 Class java.lang.InterruptedException
private boolean isRequestThread(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
arraylength
ifne 3
2: StackMap locals: java.lang.StackTraceElement[]
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 4: goto 12
5: StackMap locals: int
StackMap stack:
aload 2
aload 2
arraylength
iload 3
iconst_1
iadd
isub
aaload
astore 4
start local 4 6: ldc "org.apache.catalina.connector.CoyoteAdapter"
7: aload 4
invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
8: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
9: ifeq 11
10: iconst_1
ireturn
end local 4 11: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
aload 2
arraylength
if_icmplt 5
end local 3 13: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 14 1 thread Ljava/lang/Thread;
1 14 2 elements [Ljava/lang/StackTraceElement;
4 13 3 i I
6 11 4 element Ljava/lang/StackTraceElement;
MethodParameters:
Name Flags
thread
private void clearReferencesStopTimerThread(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "newTasksMayBeScheduled"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
1: astore 2
start local 2 2: aload 2
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
3: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "queue"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 3
start local 3 4: aload 3
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
5: aload 3
aload 1
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 6: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "clear"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 5
start local 5 7: aload 5
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
8: aload 4
dup
astore 6
monitorenter
9: aload 2
aload 1
iconst_0
invokevirtual java.lang.reflect.Field.setBoolean:(Ljava/lang/Object;Z)V
10: aload 5
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
11: aload 4
invokevirtual java.lang.Object.notifyAll:()V
12: aload 6
monitorexit
13: goto 25
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread java.lang.reflect.Field java.lang.reflect.Field java.lang.Object java.lang.reflect.Method java.lang.Object
StackMap stack: java.lang.Throwable
14: aload 6
monitorexit
15: athrow
end local 5 end local 4 end local 3 end local 2 16: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread
StackMap stack: java.lang.NoSuchFieldException
pop
17: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "cancel"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 2
start local 2 18: aload 1
dup
astore 3
monitorenter
19: aload 2
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
20: aload 2
aload 1
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
21: aload 3
monitorexit
22: goto 25
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread java.lang.reflect.Method java.lang.Thread
StackMap stack: java.lang.Throwable
23: aload 3
monitorexit
24: athrow
end local 2 25: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.warnTimerThread"
iconst_2
anewarray java.lang.Object
dup
iconst_0
26: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
aastore
27: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
28: goto 38
StackMap locals:
StackMap stack: java.lang.Exception
29: astore 2
start local 2 30: aload 2
invokestatic org.apache.tomcat.util.ExceptionUtils.unwrapInvocationTargetException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 3
start local 3 31: aload 3
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
32: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
33: ldc "webappClassLoader.stopTimerThreadFail"
iconst_2
anewarray java.lang.Object
dup
iconst_0
34: aload 1
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
35: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
36: aload 3
37: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 end local 2 38: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 39 1 thread Ljava/lang/Thread;
2 16 2 newTasksMayBeScheduledField Ljava/lang/reflect/Field;
4 16 3 queueField Ljava/lang/reflect/Field;
6 16 4 queue Ljava/lang/Object;
7 16 5 clearMethod Ljava/lang/reflect/Method;
18 25 2 cancelMethod Ljava/lang/reflect/Method;
30 38 2 e Ljava/lang/Exception;
31 38 3 t Ljava/lang/Throwable;
Exception table:
from to target type
9 13 14 any
14 15 14 any
0 16 16 Class java.lang.NoSuchFieldException
19 22 23 any
23 24 23 any
0 28 29 Class java.lang.Exception
MethodParameters:
Name Flags
thread
private void checkThreadLocalsForLeaks();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getThreads:()[Ljava/lang/Thread;
astore 1
start local 1 1: ldc Ljava/lang/Thread;
ldc "threadLocals"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
2: astore 2
start local 2 3: aload 2
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
4: ldc Ljava/lang/Thread;
ldc "inheritableThreadLocals"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
5: astore 3
start local 3 6: aload 3
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
7: ldc "java.lang.ThreadLocal$ThreadLocalMap"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 8: aload 4
ldc "table"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 5
start local 5 9: aload 5
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
10: aload 4
ldc "expungeStaleEntries"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
start local 6 11: aload 6
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
12: iconst_0
istore 7
start local 7 13: goto 24
14: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.lang.reflect.Field java.lang.reflect.Field java.lang.Class java.lang.reflect.Field java.lang.reflect.Method int
StackMap stack:
aload 1
iload 7
aaload
ifnull 23
15: aload 2
aload 1
iload 7
aaload
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 16: aload 8
ifnull 19
17: aload 6
aload 8
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
aload 8
aload 5
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks:(Ljava/lang/Object;Ljava/lang/reflect/Field;)V
19: StackMap locals: java.lang.Object
StackMap stack:
aload 3
aload 1
iload 7
aaload
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
20: aload 8
ifnull 23
21: aload 6
aload 8
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
aload 8
aload 5
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks:(Ljava/lang/Object;Ljava/lang/reflect/Field;)V
end local 8 23: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
24: iload 7
aload 1
arraylength
if_icmplt 14
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 25: goto 38
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[]
StackMap stack: java.lang.Throwable
26: astore 2
start local 2 27: invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
astore 3
start local 3 28: aload 3
aload 2
invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
ifeq 31
29: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.addExportsThreadLocal"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
30: goto 38
31: StackMap locals: java.lang.Throwable org.apache.tomcat.util.compat.JreCompat
StackMap stack:
aload 2
invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
32: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
33: ldc "webappClassLoader.checkThreadLocalsForLeaksFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
34: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
35: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
36: aload 2
37: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 end local 2 38: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 39 1 threads [Ljava/lang/Thread;
3 25 2 threadLocalsField Ljava/lang/reflect/Field;
6 25 3 inheritableThreadLocalsField Ljava/lang/reflect/Field;
8 25 4 tlmClass Ljava/lang/Class<*>;
9 25 5 tableField Ljava/lang/reflect/Field;
11 25 6 expungeStaleEntriesMethod Ljava/lang/reflect/Method;
13 25 7 i I
16 23 8 threadLocalMap Ljava/lang/Object;
27 38 2 t Ljava/lang/Throwable;
28 38 3 jreCompat Lorg/apache/tomcat/util/compat/JreCompat;
Exception table:
from to target type
1 25 26 Class java.lang.Throwable
private void checkThreadLocalMapForLeaks(java.lang.Object, java.lang.reflect.Field);
descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Field;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 69
1: aload 2
aload 1
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 3
start local 3 2: aload 3
ifnull 69
3: iconst_0
istore 4
start local 4 4: goto 68
5: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 3
iload 4
aaload
astore 5
start local 5 6: aload 5
ifnull 67
7: iconst_0
istore 6
start local 6 8: iconst_0
istore 7
start local 7 9: aload 5
checkcast java.lang.ref.Reference
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
astore 8
start local 8 10: aload 0
aload 8
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 11
aload 0
aload 8
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
ifeq 12
11: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] int java.lang.Object int int java.lang.Object
StackMap stack:
iconst_1
istore 6
12: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "value"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
13: astore 9
start local 9 14: aload 9
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
15: aload 9
aload 5
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 10
start local 10 16: aload 0
aload 10
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 17
aload 0
aload 10
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
ifeq 18
17: StackMap locals: java.lang.reflect.Field java.lang.Object
StackMap stack:
iconst_1
istore 7
18: StackMap locals:
StackMap stack:
iload 6
ifne 19
iload 7
ifeq 67
19: StackMap locals:
StackMap stack:
iconst_5
anewarray java.lang.Object
astore 11
start local 11 20: aload 11
iconst_0
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
21: aload 8
ifnull 35
22: aload 11
iconst_1
aload 0
aload 8
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPrettyClassName:(Ljava/lang/Class;)Ljava/lang/String;
aastore
23: aload 11
iconst_2
aload 8
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aastore
24: goto 35
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] int java.lang.Object int int java.lang.Object java.lang.reflect.Field java.lang.Object java.lang.Object[]
StackMap stack: java.lang.Exception
25: astore 12
start local 12 26: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
27: ldc "webappClassLoader.checkThreadLocalsForLeaks.badKey"
iconst_1
anewarray java.lang.Object
dup
iconst_0
28: aload 11
iconst_1
aaload
aastore
29: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
30: aload 12
31: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
32: aload 11
iconst_2
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
33: ldc "webappClassLoader.checkThreadLocalsForLeaks.unknown"
34: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aastore
end local 12 35: StackMap locals:
StackMap stack:
aload 10
ifnull 49
36: aload 11
iconst_3
aload 0
aload 10
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPrettyClassName:(Ljava/lang/Class;)Ljava/lang/String;
aastore
37: aload 11
iconst_4
aload 10
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
aastore
38: goto 49
StackMap locals:
StackMap stack: java.lang.Exception
39: astore 12
start local 12 40: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
41: ldc "webappClassLoader.checkThreadLocalsForLeaks.badValue"
iconst_1
anewarray java.lang.Object
dup
iconst_0
42: aload 11
iconst_3
aaload
aastore
43: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
44: aload 12
45: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
46: aload 11
iconst_4
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
47: ldc "webappClassLoader.checkThreadLocalsForLeaks.unknown"
48: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aastore
end local 12 49: StackMap locals:
StackMap stack:
iload 7
ifeq 55
50: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
51: ldc "webappClassLoader.checkThreadLocalsForLeaks"
52: aload 11
53: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
54: goto 67
StackMap locals:
StackMap stack:
55: aload 10
ifnonnull 62
56: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 67
57: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
58: ldc "webappClassLoader.checkThreadLocalsForLeaksNull"
59: aload 11
60: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
61: goto 67
62: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 67
63: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
64: ldc "webappClassLoader.checkThreadLocalsForLeaksNone"
65: aload 11
66: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 67: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] int
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
68: iload 4
aload 3
arraylength
if_icmplt 5
end local 4 end local 3 69: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 70 1 map Ljava/lang/Object;
0 70 2 internalTableField Ljava/lang/reflect/Field;
2 69 3 table [Ljava/lang/Object;
4 69 4 j I
6 67 5 obj Ljava/lang/Object;
8 67 6 keyLoadedByWebapp Z
9 67 7 valueLoadedByWebapp Z
10 67 8 key Ljava/lang/Object;
14 67 9 valueField Ljava/lang/reflect/Field;
16 67 10 value Ljava/lang/Object;
20 67 11 args [Ljava/lang/Object;
26 35 12 e Ljava/lang/Exception;
40 49 12 e Ljava/lang/Exception;
Exception table:
from to target type
23 24 25 Class java.lang.Exception
37 38 39 Class java.lang.Exception
Exceptions:
throws java.lang.IllegalAccessException, java.lang.NoSuchFieldException
MethodParameters:
Name Flags
map
internalTableField
private java.lang.String getPrettyClassName(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 2
3: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 4 1 clazz Ljava/lang/Class<*>;
1 4 2 name Ljava/lang/String;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
clazz
private java.lang.String getStackTrace(java.lang.Thread);
descriptor: (Ljava/lang/Thread;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 1
invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread java.lang.StringBuilder top int int java.lang.StackTraceElement[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 2
ldc "\n "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 7 1 thread Ljava/lang/Thread;
1 7 2 builder Ljava/lang/StringBuilder;
3 4 3 ste Ljava/lang/StackTraceElement;
MethodParameters:
Name Flags
thread
private boolean loadedByThisOrChild(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.Class
ifeq 5
3: aload 1
checkcast java.lang.Class
astore 2
start local 2 4: goto 6
end local 2 5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 2
start local 2 6: StackMap locals: java.lang.Class
StackMap stack:
aload 2
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 3
start local 3 7: goto 11
8: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 3
aload 0
if_acmpne 10
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 3
11: StackMap locals:
StackMap stack:
aload 3
ifnonnull 8
12: aload 1
instanceof java.util.Collection
ifeq 26
13: aload 1
checkcast java.util.Collection
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
start local 4 14: goto 18
15: StackMap locals: java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 5
start local 5 16: aload 0
aload 5
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
ifeq 18
17: iconst_1
ireturn
end local 5 18: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
19: goto 26
StackMap locals:
StackMap stack: java.util.ConcurrentModificationException
20: astore 5
start local 5 21: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
22: ldc "webappClassLoader.loadedByThisOrChildFail"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
23: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
24: aload 5
25: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 end local 4 26: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 27 1 o Ljava/lang/Object;
4 5 2 clazz Ljava/lang/Class<*>;
6 27 2 clazz Ljava/lang/Class<*>;
7 27 3 cl Ljava/lang/ClassLoader;
14 26 4 iter Ljava/util/Iterator<*>;
16 18 5 entry Ljava/lang/Object;
21 26 5 e Ljava/util/ConcurrentModificationException;
Exception table:
from to target type
14 17 20 Class java.util.ConcurrentModificationException
18 19 20 Class java.util.ConcurrentModificationException
MethodParameters:
Name Flags
o
private java.lang.Thread[] getThreads();
descriptor: ()[Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
astore 1
start local 1 1: goto 3
2: StackMap locals: java.lang.ThreadGroup
StackMap stack:
aload 1
invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
ifnonnull 2
4: goto 13
StackMap locals:
StackMap stack: java.lang.SecurityException
5: astore 2
start local 2 6: getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
7: ldc "webappClassLoader.getThreadGroupError"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.ThreadGroup.getName:()Ljava/lang/String;
aastore
8: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 9: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 12
10: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
aload 3
aload 2
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
11: goto 13
12: StackMap locals: java.lang.SecurityException java.lang.String
StackMap stack:
getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
aload 3
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 3 end local 2 13: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.ThreadGroup.activeCount:()I
bipush 50
iadd
istore 2
start local 2 14: iload 2
anewarray java.lang.Thread
astore 3
start local 3 15: aload 1
aload 3
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;)I
istore 4
start local 4 16: goto 20
17: StackMap locals: int java.lang.Thread[] int
StackMap stack:
iload 2
iconst_2
imul
istore 2
18: iload 2
anewarray java.lang.Thread
astore 3
19: aload 1
aload 3
invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;)I
istore 4
20: StackMap locals:
StackMap stack:
iload 4
iload 2
if_icmpeq 17
21: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 22 1 tg Ljava/lang/ThreadGroup;
6 13 2 se Ljava/lang/SecurityException;
9 13 3 msg Ljava/lang/String;
14 22 2 threadCountGuess I
15 22 3 threads [Ljava/lang/Thread;
16 22 4 threadCountActual I
Exception table:
from to target type
1 4 5 Class java.lang.SecurityException
private void clearReferencesRmiTargets();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=15, args_size=1
start local 0 0: ldc "sun.rmi.transport.Target"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
1: astore 1
start local 1 2: aload 1
ldc "ccl"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 2
start local 2 3: aload 2
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
4: aload 1
ldc "stub"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 3
start local 3 5: aload 3
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
6: ldc "sun.rmi.transport.ObjectTable"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 4
start local 4 7: aload 4
ldc "objTable"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 5
start local 5 8: aload 5
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
9: aload 5
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6
start local 6 10: aload 6
ifnonnull 12
11: return
12: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Class java.lang.reflect.Field java.lang.reflect.Field java.lang.Class java.lang.reflect.Field java.lang.Object
StackMap stack:
aload 4
ldc "tableLock"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 7
start local 7 13: aload 7
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
14: aload 7
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 8
start local 8 15: aload 8
dup
astore 9
monitorenter
16: aload 6
instanceof java.util.Map
ifeq 28
17: aload 6
checkcast java.util.Map
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
start local 10 18: goto 27
19: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Class java.lang.reflect.Field java.lang.reflect.Field java.lang.Class java.lang.reflect.Field java.lang.Object java.lang.reflect.Field java.lang.Object java.lang.Object java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 11
start local 11 20: aload 2
aload 11
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 12
start local 12 21: aload 0
aload 12
if_acmpne 27
22: aload 10
invokeinterface java.util.Iterator.remove:()V
23: aload 3
aload 11
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 13
start local 13 24: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.clearRmi"
iconst_2
anewarray java.lang.Object
dup
iconst_0
25: aload 13
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 13
aastore
26: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
end local 13 end local 12 end local 11 27: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
end local 10 28: StackMap locals:
StackMap stack:
aload 4
ldc "implTable"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 10
start local 10 29: aload 10
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
30: aload 10
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 11
start local 11 31: aload 11
ifnonnull 34
32: aload 9
monitorexit
33: return
34: StackMap locals: java.lang.reflect.Field java.lang.Object
StackMap stack:
aload 11
instanceof java.util.Map
ifeq 42
35: aload 11
checkcast java.util.Map
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 12
start local 12 36: goto 41
37: StackMap locals: java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 13
start local 13 38: aload 2
aload 13
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 14
start local 14 39: aload 0
aload 14
if_acmpne 41
40: aload 12
invokeinterface java.util.Iterator.remove:()V
end local 14 end local 13 41: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
end local 12 end local 11 end local 10 42: StackMap locals:
StackMap stack:
aload 9
monitorexit
43: goto 66
StackMap locals:
StackMap stack: java.lang.Throwable
44: aload 9
monitorexit
45: athrow
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 46: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase
StackMap stack: java.lang.ClassNotFoundException
astore 1
start local 1 47: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.clearRmiInfo"
iconst_1
anewarray java.lang.Object
dup
iconst_0
48: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
49: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
50: aload 1
51: invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 52: goto 66
53: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 54: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.clearRmiFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
55: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
56: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
57: aload 1
58: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 59: goto 66
60: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 61: invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
astore 2
start local 2 62: aload 2
aload 1
invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
ifeq 65
63: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.addExportsRmi"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
64: goto 66
65: StackMap locals: java.lang.Exception org.apache.tomcat.util.compat.JreCompat
StackMap stack:
aload 1
athrow
end local 2 end local 1 66: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
2 46 1 objectTargetClass Ljava/lang/Class<*>;
3 46 2 cclField Ljava/lang/reflect/Field;
5 46 3 stubField Ljava/lang/reflect/Field;
7 46 4 objectTableClass Ljava/lang/Class<*>;
8 46 5 objTableField Ljava/lang/reflect/Field;
10 46 6 objTable Ljava/lang/Object;
13 46 7 tableLockField Ljava/lang/reflect/Field;
15 46 8 tableLock Ljava/lang/Object;
18 28 10 iter Ljava/util/Iterator<*>;
20 27 11 obj Ljava/lang/Object;
21 27 12 cclObject Ljava/lang/Object;
24 27 13 stubObject Ljava/lang/Object;
29 42 10 implTableField Ljava/lang/reflect/Field;
31 42 11 implTable Ljava/lang/Object;
36 42 12 iter Ljava/util/Iterator<*>;
38 41 13 obj Ljava/lang/Object;
39 41 14 cclObject Ljava/lang/Object;
47 52 1 e Ljava/lang/ClassNotFoundException;
54 59 1 e Ljava/lang/Exception;
61 66 1 e Ljava/lang/Exception;
62 66 2 jreCompat Lorg/apache/tomcat/util/compat/JreCompat;
Exception table:
from to target type
16 33 44 any
34 43 44 any
44 45 44 any
0 11 46 Class java.lang.ClassNotFoundException
12 33 46 Class java.lang.ClassNotFoundException
34 46 46 Class java.lang.ClassNotFoundException
0 11 53 Class java.lang.SecurityException
12 33 53 Class java.lang.SecurityException
34 46 53 Class java.lang.SecurityException
0 11 53 Class java.lang.NoSuchFieldException
12 33 53 Class java.lang.NoSuchFieldException
34 46 53 Class java.lang.NoSuchFieldException
0 11 53 Class java.lang.IllegalArgumentException
12 33 53 Class java.lang.IllegalArgumentException
34 46 53 Class java.lang.IllegalArgumentException
0 11 53 Class java.lang.IllegalAccessException
12 33 53 Class java.lang.IllegalAccessException
34 46 53 Class java.lang.IllegalAccessException
0 11 60 Class java.lang.Exception
12 33 60 Class java.lang.Exception
34 46 60 Class java.lang.Exception
private void clearReferencesObjectStreamClassCaches();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=1
start local 0 0: ldc "java.io.ObjectStreamClass$Caches"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 1
start local 1 1: aload 0
aload 1
ldc "localDescs"
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearCache:(Ljava/lang/Class;Ljava/lang/String;)V
2: aload 0
aload 1
ldc "reflectors"
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearCache:(Ljava/lang/Class;Ljava/lang/String;)V
end local 1 3: goto 10
StackMap locals:
StackMap stack: java.lang.Exception
4: astore 1
start local 1 5: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
6: ldc "webappClassLoader.clearObjectStreamClassCachesFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
aastore
7: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
8: aload 1
9: invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 3 1 clazz Ljava/lang/Class<*>;
5 10 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 3 4 Class java.lang.ReflectiveOperationException
0 3 4 Class java.lang.SecurityException
0 3 4 Class java.lang.ClassCastException
private void clearCache(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 3
start local 3 1: aload 3
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
2: aload 3
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 4
start local 4 3: aload 4
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
start local 5 4: goto 10
5: StackMap locals: java.lang.reflect.Field java.util.Map java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 6
start local 6 6: aload 6
instanceof java.lang.ref.Reference
ifeq 10
7: aload 6
checkcast java.lang.ref.Reference
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
astore 7
start local 7 8: aload 0
aload 7
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
ifeq 10
9: aload 5
invokeinterface java.util.Iterator.remove:()V
end local 7 end local 6 10: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
11: return
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 12 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 12 1 target Ljava/lang/Class<*>;
0 12 2 mapName Ljava/lang/String;
1 12 3 f Ljava/lang/reflect/Field;
3 12 4 map Ljava/util/Map<**>;
4 12 5 keys Ljava/util/Iterator<*>;
6 10 6 key Ljava/lang/Object;
8 10 7 clazz Ljava/lang/Object;
Exceptions:
throws java.lang.ReflectiveOperationException, java.lang.SecurityException, java.lang.ClassCastException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
MethodParameters:
Name Flags
target
mapName
protected java.lang.Class<?> findClassInternal(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=15, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath:(Ljava/lang/String;Z)Ljava/lang/String;
astore 2
start local 2 4: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.loader.ResourceEntry
astore 3
start local 3 5: aconst_null
astore 4
start local 4 6: aload 3
ifnonnull 22
7: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
aload 2
invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
astore 4
8: aload 4
invokeinterface org.apache.catalina.WebResource.exists:()Z
ifne 10
9: aconst_null
areturn
10: StackMap locals: java.lang.String org.apache.catalina.loader.ResourceEntry org.apache.catalina.WebResource
StackMap stack:
new org.apache.catalina.loader.ResourceEntry
dup
invokespecial org.apache.catalina.loader.ResourceEntry.<init>:()V
astore 3
11: aload 3
aload 4
invokeinterface org.apache.catalina.WebResource.getLastModified:()J
putfield org.apache.catalina.loader.ResourceEntry.lastModified:J
12: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
dup
astore 5
monitorenter
13: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.loader.ResourceEntry
astore 6
start local 6 14: aload 6
ifnonnull 17
15: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: goto 18
17: StackMap locals: java.util.Map org.apache.catalina.loader.ResourceEntry
StackMap stack:
aload 6
astore 3
end local 6 18: StackMap locals:
StackMap stack:
aload 5
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 5
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
aload 3
getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
astore 5
start local 5 23: aload 5
ifnull 25
24: aload 5
areturn
25: StackMap locals: java.lang.Class
StackMap stack:
invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
ifeq 26
aload 0
goto 27
StackMap locals:
StackMap stack:
26: aload 0
aload 1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getClassLoadingLock:(Ljava/lang/String;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
27: dup
astore 6
monitorenter
28: aload 3
getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
astore 5
29: aload 5
ifnull 32
30: aload 5
aload 6
monitorexit
31: areturn
32: StackMap locals: java.lang.Object
StackMap stack:
aload 4
ifnonnull 34
33: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
aload 2
invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
astore 4
34: StackMap locals:
StackMap stack:
aload 4
invokeinterface org.apache.catalina.WebResource.exists:()Z
ifne 37
35: aload 6
monitorexit
36: aconst_null
areturn
37: StackMap locals:
StackMap stack:
aload 4
invokeinterface org.apache.catalina.WebResource.getContent:()[B
astore 7
start local 7 38: aload 7
ifnonnull 41
39: aload 6
monitorexit
40: aconst_null
areturn
41: StackMap locals: byte[]
StackMap stack:
aload 4
invokeinterface org.apache.catalina.WebResource.getManifest:()Ljava/util/jar/Manifest;
astore 8
start local 8 42: aload 4
invokeinterface org.apache.catalina.WebResource.getCodeBase:()Ljava/net/URL;
astore 9
start local 9 43: aload 4
invokeinterface org.apache.catalina.WebResource.getCertificates:()[Ljava/security/cert/Certificate;
astore 10
start local 10 44: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifle 59
45: aload 2
iconst_1
aload 2
invokevirtual java.lang.String.length:()I
ldc ".class"
invokevirtual java.lang.String.length:()I
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 11
start local 11 46: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 58
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.lang.String org.apache.catalina.loader.ResourceEntry org.apache.catalina.WebResource java.lang.Class java.lang.Object byte[] java.util.jar.Manifest java.net.URL java.security.cert.Certificate[] java.lang.String top java.util.Iterator
StackMap stack:
47: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.instrument.ClassFileTransformer
astore 12
start local 12 48: aload 12
49: aload 0
aload 11
aconst_null
aconst_null
aload 7
50: invokeinterface java.lang.instrument.ClassFileTransformer.transform:(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
astore 14
start local 14 51: aload 14
ifnull 58
52: aload 14
astore 7
end local 14 53: goto 58
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.lang.String org.apache.catalina.loader.ResourceEntry org.apache.catalina.WebResource java.lang.Class java.lang.Object byte[] java.util.jar.Manifest java.net.URL java.security.cert.Certificate[] java.lang.String java.lang.instrument.ClassFileTransformer java.util.Iterator
StackMap stack: java.lang.instrument.IllegalClassFormatException
54: astore 14
start local 14 55: getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.transformError"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 14
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
56: aload 6
monitorexit
57: aconst_null
areturn
end local 14 end local 12 58: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.lang.String org.apache.catalina.loader.ResourceEntry org.apache.catalina.WebResource java.lang.Class java.lang.Object byte[] java.util.jar.Manifest java.net.URL java.security.cert.Certificate[] java.lang.String top java.util.Iterator
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 47
end local 11 59: StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.lang.String org.apache.catalina.loader.ResourceEntry org.apache.catalina.WebResource java.lang.Class java.lang.Object byte[] java.util.jar.Manifest java.net.URL java.security.cert.Certificate[]
StackMap stack:
aconst_null
astore 11
start local 11 60: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 12
start local 12 61: iload 12
iconst_m1
if_icmpeq 63
62: aload 1
iconst_0
iload 12
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 11
63: StackMap locals: java.lang.String int
StackMap stack:
aconst_null
astore 13
start local 13 64: aload 11
ifnull 74
65: aload 0
aload 11
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 13
66: aload 13
ifnonnull 74
67: aload 8
ifnonnull 70
68: aload 0
aload 11
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.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
69: goto 73
70: StackMap locals: java.lang.Package
StackMap stack:
aload 0
aload 11
aload 8
aload 9
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.definePackage:(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
pop
71: goto 73
StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
72: pop
73: StackMap locals:
StackMap stack:
aload 0
aload 11
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
astore 13
74: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
ifnull 89
75: aload 13
ifnull 89
76: iconst_1
istore 14
start local 14 77: aload 13
invokevirtual java.lang.Package.isSealed:()Z
ifeq 80
78: aload 13
aload 9
invokevirtual java.lang.Package.isSealed:(Ljava/net/URL;)Z
istore 14
79: goto 83
80: StackMap locals: int
StackMap stack:
aload 8
ifnull 81
aload 0
aload 11
aload 8
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.isPackageSealed:(Ljava/lang/String;Ljava/util/jar/Manifest;)Z
ifeq 81
iconst_0
goto 82
StackMap locals:
StackMap stack:
81: iconst_1
StackMap locals:
StackMap stack: int
82: istore 14
83: StackMap locals:
StackMap stack:
iload 14
ifne 89
84: new java.lang.SecurityException
dup
85: new java.lang.StringBuilder
dup
ldc "Sealing violation loading "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " : Package "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
86: aload 11
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;
87: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
88: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 14 89: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 7
iconst_0
90: aload 7
arraylength
new java.security.CodeSource
dup
aload 9
aload 10
invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
91: invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.defineClass:(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;
astore 5
92: goto 101
StackMap locals:
StackMap stack: java.lang.UnsupportedClassVersionError
93: astore 14
start local 14 94: new java.lang.UnsupportedClassVersionError
dup
95: new java.lang.StringBuilder
dup
aload 14
invokevirtual java.lang.UnsupportedClassVersionError.getLocalizedMessage:()Ljava/lang/String;
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;
96: getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "webappClassLoader.wrongVersion"
iconst_1
anewarray java.lang.Object
dup
iconst_0
97: aload 1
aastore
98: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
99: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
100: invokespecial java.lang.UnsupportedClassVersionError.<init>:(Ljava/lang/String;)V
athrow
end local 14 101: StackMap locals:
StackMap stack:
aload 3
aload 5
putfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 102: aload 6
monitorexit
103: goto 106
StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.String java.lang.String org.apache.catalina.loader.ResourceEntry org.apache.catalina.WebResource java.lang.Class java.lang.Object
StackMap stack: java.lang.Throwable
104: aload 6
monitorexit
105: athrow
106: StackMap locals:
StackMap stack:
aload 5
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 107 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 107 1 name Ljava/lang/String;
4 107 2 path Ljava/lang/String;
5 107 3 entry Lorg/apache/catalina/loader/ResourceEntry;
6 107 4 resource Lorg/apache/catalina/WebResource;
14 18 6 entry2 Lorg/apache/catalina/loader/ResourceEntry;
23 107 5 clazz Ljava/lang/Class<*>;
38 102 7 binaryContent [B
42 102 8 manifest Ljava/util/jar/Manifest;
43 102 9 codeBase Ljava/net/URL;
44 102 10 certificates [Ljava/security/cert/Certificate;
46 59 11 internalName Ljava/lang/String;
48 58 12 transformer Ljava/lang/instrument/ClassFileTransformer;
51 53 14 transformed [B
55 58 14 e Ljava/lang/instrument/IllegalClassFormatException;
60 102 11 packageName Ljava/lang/String;
61 102 12 pos I
64 102 13 pkg Ljava/lang/Package;
77 89 14 sealCheck Z
94 101 14 ucve Ljava/lang/UnsupportedClassVersionError;
Exception table:
from to target type
13 19 20 any
20 21 20 any
48 53 54 Class java.lang.instrument.IllegalClassFormatException
67 71 72 Class java.lang.IllegalArgumentException
89 92 93 Class java.lang.UnsupportedClassVersionError
28 31 104 any
32 36 104 any
37 40 104 any
41 57 104 any
58 103 104 any
104 105 104 any
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
private java.lang.String binaryNameToPath(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
bipush 7
aload 1
invokevirtual java.lang.String.length:()I
iadd
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 3
start local 3 1: iload 2
ifeq 3
2: aload 3
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
3: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 3
aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 3
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 6 1 binaryName Ljava/lang/String;
0 6 2 withLeadingSlash Z
1 6 3 path Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
binaryName
withLeadingSlash
private java.lang.String nameToPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
3: iconst_1
aload 1
invokevirtual java.lang.String.length:()I
iadd
4: invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2
start local 2 5: aload 2
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: aload 2
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 8 1 name Ljava/lang/String;
5 8 2 path Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
name
protected boolean isPackageSealed(java.lang.String, java.util.jar.Manifest);
descriptor: (Ljava/lang/String;Ljava/util/jar/Manifest;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 1: aload 2
aload 3
invokevirtual java.util.jar.Manifest.getAttributes:(Ljava/lang/String;)Ljava/util/jar/Attributes;
astore 4
start local 4 2: aconst_null
astore 5
start local 5 3: aload 4
ifnull 5
4: aload 4
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 5
5: StackMap locals: java.lang.String java.util.jar.Attributes java.lang.String
StackMap stack:
aload 5
ifnonnull 8
6: aload 2
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
dup
astore 4
ifnull 8
7: aload 4
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 5
8: StackMap locals:
StackMap stack:
ldc "true"
aload 5
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ireturn
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 9 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 9 1 name Ljava/lang/String;
0 9 2 man Ljava/util/jar/Manifest;
1 9 3 path Ljava/lang/String;
2 9 4 attr Ljava/util/jar/Attributes;
3 9 5 sealed Ljava/lang/String;
MethodParameters:
Name Flags
name
man
protected java.lang.Class<?> findLoadedClass0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath:(Ljava/lang/String;Z)Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.loader.ResourceEntry
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 3
getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
areturn
4: StackMap locals: java.lang.String org.apache.catalina.loader.ResourceEntry
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 5 1 name Ljava/lang/String;
1 5 2 path Ljava/lang/String;
2 5 3 entry Lorg/apache/catalina/loader/ResourceEntry;
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
protected void refreshPolicy();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=1
start local 0 0: invokestatic java.security.Policy.getPolicy:()Ljava/security/Policy;
astore 1
start local 1 1: aload 1
invokevirtual java.security.Policy.refresh:()V
end local 1 2: goto 4
StackMap locals:
StackMap stack: java.security.AccessControlException
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
1 2 1 policy Ljava/security/Policy;
Exception table:
from to target type
0 2 3 Class java.security.AccessControlException
protected boolean filter(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ldc "javax"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 22
3: aload 1
invokevirtual java.lang.String.length:()I
iconst_5
if_icmpne 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
iconst_5
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 6: iload 2
ifeq 14
iload 3
bipush 46
if_icmpne 14
7: aload 1
ldc "servlet.jsp.jstl."
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 9
8: iconst_0
ireturn
9: StackMap locals: int
StackMap stack:
aload 1
ldc "el."
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 13
10: aload 1
ldc "servlet."
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 13
11: aload 1
ldc "websocket."
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 13
12: aload 1
ldc "security.auth.message."
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 50
13: StackMap locals:
StackMap stack:
iconst_1
ireturn
14: StackMap locals:
StackMap stack:
iload 2
ifne 50
iload 3
bipush 47
if_icmpne 50
15: aload 1
ldc "servlet/jsp/jstl/"
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 1
ldc "el/"
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 21
18: aload 1
ldc "servlet/"
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 21
19: aload 1
ldc "websocket/"
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 21
20: aload 1
ldc "security/auth/message/"
bipush 6
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 50
21: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 22: StackMap locals:
StackMap stack:
aload 1
ldc "org"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 50
23: aload 1
invokevirtual java.lang.String.length:()I
iconst_3
if_icmpne 25
24: iconst_0
ireturn
25: StackMap locals:
StackMap stack:
aload 1
iconst_3
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 26: iload 2
ifeq 38
iload 3
bipush 46
if_icmpne 38
27: aload 1
ldc "apache."
iconst_4
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 50
28: aload 1
ldc "tomcat.jdbc."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 30
29: iconst_0
ireturn
30: StackMap locals: int
StackMap stack:
aload 1
ldc "el."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 37
31: aload 1
ldc "catalina."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 37
32: aload 1
ldc "jasper."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 37
33: aload 1
ldc "juli."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 37
34: aload 1
ldc "tomcat."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 37
35: aload 1
ldc "naming."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 37
36: aload 1
ldc "coyote."
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 50
37: StackMap locals:
StackMap stack:
iconst_1
ireturn
38: StackMap locals:
StackMap stack:
iload 2
ifne 50
iload 3
bipush 47
if_icmpne 50
39: aload 1
ldc "apache/"
iconst_4
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 50
40: aload 1
ldc "tomcat/jdbc/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 42
41: iconst_0
ireturn
42: StackMap locals:
StackMap stack:
aload 1
ldc "el/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 49
43: aload 1
ldc "catalina/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 49
44: aload 1
ldc "jasper/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 49
45: aload 1
ldc "juli/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 49
46: aload 1
ldc "tomcat/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 49
47: aload 1
ldc "naming/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifne 49
48: aload 1
ldc "coyote/"
bipush 11
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
ifeq 50
49: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 50: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 51 1 name Ljava/lang/String;
0 51 2 isClassName Z
6 22 3 ch C
26 50 3 ch C
MethodParameters:
Name Flags
name
isClassName
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
aload 1
invokespecial java.net.URLClassLoader.addURL:(Ljava/net/URL;)V
1: aload 0
iconst_1
putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
0 3 1 url Ljava/net/URL;
MethodParameters:
Name Flags
url
public java.lang.String getWebappName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
public java.lang.String getHostName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ifnull 4
1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
astore 1
start local 1 2: aload 1
ifnull 4
3: aload 1
invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
areturn
end local 1 4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
2 4 1 host Lorg/apache/catalina/Container;
public java.lang.String getServiceName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
ifnull 6
1: aload 0
getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
astore 1
start local 1 2: aload 1
ifnull 6
3: aload 1
invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
areturn
end local 2 end local 1 6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
2 6 1 host Lorg/apache/catalina/Container;
4 6 2 engine Lorg/apache/catalina/Container;
public boolean hasLoggingConfig();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
ifeq 3
1: new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedHasLoggingConfig
dup
aload 0
invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedHasLoggingConfig.<init>:(Lorg/apache/catalina/loader/WebappClassLoaderBase;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 1
start local 1 2: aload 1
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 1 3: StackMap locals:
StackMap stack:
aload 0
ldc "logging.properties"
invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findResource:(Ljava/lang/String;)Ljava/net/URL;
ifnull 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/catalina/loader/WebappClassLoaderBase;
2 3 1 result Ljava/lang/Boolean;
}
SourceFile: "WebappClassLoaderBase.java"
NestMembers:
org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedFindClassByName org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedGetClassLoader org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedHasLoggingConfig org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedJavaseGetResource
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
private CombinedEnumeration = org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration of org.apache.catalina.loader.WebappClassLoaderBase
protected PrivilegedFindClassByName = org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedFindClassByName of org.apache.catalina.loader.WebappClassLoaderBase
protected final PrivilegedGetClassLoader = org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedGetClassLoader of org.apache.catalina.loader.WebappClassLoaderBase
private PrivilegedHasLoggingConfig = org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedHasLoggingConfig of org.apache.catalina.loader.WebappClassLoaderBase
protected final PrivilegedJavaseGetResource = org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedJavaseGetResource of org.apache.catalina.loader.WebappClassLoaderBase