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: .line 127
            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: .line 133
            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: .line 140
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifne 4
         3: .line 141
            invokestatic java.lang.ClassLoader.registerAsParallelCapable:()Z
            pop
         4: .line 143
      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: .line 144
            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: .line 198
            ldc "org.apache.catalina.loader"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         7: .line 197
            putstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         8: .line 198
            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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 209
            aload 0 /* this */
            iconst_0
            anewarray java.net.URL
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;)V
         1: .line 273
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         2: .line 283
            aload 0 /* this */
         3: .line 284
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
         4: .line 296
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         5: .line 299
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
         6: .line 306
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
         7: .line 313
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
         8: .line 342
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
         9: .line 353
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
        10: .line 360
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
        11: .line 369
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
        12: .line 379
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
        13: .line 385
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
        14: .line 391
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
        15: .line 397
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
        16: .line 406
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
        17: .line 414
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
        18: .line 420
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
        19: .line 423
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.NEW:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
        20: .line 211
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getParent:()Ljava/lang/ClassLoader;
            astore 1 /* p */
        start local 1 // java.lang.ClassLoader p
        21: .line 212
            aload 1 /* p */
            ifnonnull 23
        22: .line 213
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* p */
        23: .line 215
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
        24: .line 217
            ldc Ljava/lang/String;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* j */
        start local 2 // java.lang.ClassLoader j
        25: .line 218
            aload 2 /* j */
            ifnonnull 30
        26: .line 219
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* j */
        27: .line 220
            goto 29
        28: .line 221
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 2 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 2 /* j */
        29: .line 220
      StackMap locals:
      StackMap stack:
            aload 2 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            ifnonnull 28
        30: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* j */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
        31: .line 226
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
        32: .line 227
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 34
        33: .line 228
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.refreshPolicy:()V
        34: .line 230
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.ClassLoader j
        end local 1 // java.lang.ClassLoader p
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.ClassLoader parent
         0: .line 244
            aload 0 /* this */
            iconst_0
            anewarray java.net.URL
            aload 1 /* parent */
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
         1: .line 273
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         2: .line 283
            aload 0 /* this */
         3: .line 284
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
         4: .line 296
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         5: .line 299
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
         6: .line 306
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
         7: .line 313
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
         8: .line 342
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
         9: .line 353
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
        10: .line 360
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
        11: .line 369
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
        12: .line 379
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
        13: .line 385
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
        14: .line 391
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
        15: .line 397
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
        16: .line 406
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
        17: .line 414
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
        18: .line 420
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
        19: .line 423
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.NEW:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
        20: .line 246
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getParent:()Ljava/lang/ClassLoader;
            astore 2 /* p */
        start local 2 // java.lang.ClassLoader p
        21: .line 247
            aload 2 /* p */
            ifnonnull 23
        22: .line 248
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* p */
        23: .line 250
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack:
            aload 0 /* this */
            aload 2 /* p */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
        24: .line 252
            ldc Ljava/lang/String;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* j */
        start local 3 // java.lang.ClassLoader j
        25: .line 253
            aload 3 /* j */
            ifnonnull 30
        26: .line 254
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* j */
        27: .line 255
            goto 29
        28: .line 256
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 3 /* j */
        29: .line 255
      StackMap locals:
      StackMap stack:
            aload 3 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            ifnonnull 28
        30: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* j */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
        31: .line 261
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
        32: .line 262
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 34
        33: .line 263
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.refreshPolicy:()V
        34: .line 265
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.ClassLoader j
        end local 2 // java.lang.ClassLoader p
        end local 1 // java.lang.ClassLoader parent
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 432
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // org.apache.catalina.WebResourceRoot resources
         0: .line 442
            aload 0 /* this */
            aload 1 /* resources */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         1: .line 443
            return
        end local 1 // org.apache.catalina.WebResourceRoot resources
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 450
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            ifnonnull 2
         1: .line 451
            ldc "Unknown"
            areturn
         2: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 464
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean delegate
         0: .line 482
            aload 0 /* this */
            iload 1 /* delegate */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         1: .line 483
            return
        end local 1 // boolean delegate
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.net.URL url
         0: .line 493
            aload 1 /* url */
            ifnonnull 2
         1: .line 494
            return
         2: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 28
         3: .line 497
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            astore 2 /* protocol */
        start local 2 // java.lang.String protocol
         4: .line 498
            ldc "file"
            aload 2 /* protocol */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 24
         5: .line 503
            aload 1 /* url */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            astore 3 /* uri */
        start local 3 // java.net.URI uri
         6: .line 504
            new java.io.File
            dup
            aload 3 /* uri */
            invokespecial java.io.File.<init>:(Ljava/net/URI;)V
            astore 4 /* f */
        start local 4 // java.io.File f
         7: .line 505
            aload 4 /* f */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
         8: .line 506
            goto 15
        end local 5 // java.lang.String path
        end local 4 // java.io.File f
        end local 3 // java.net.URI uri
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.net.URL java.lang.String
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 507
            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: .line 508
            ldc "webappClassLoader.addPermisionNoCanonicalFile"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 509
            aload 1 /* url */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            aastore
        13: .line 507
            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: .line 510
            return
        start local 3 // java.net.URI uri
        start local 4 // java.io.File f
        start local 5 // java.lang.String path
        15: .line 512
      StackMap locals: java.net.URI java.io.File java.lang.String
      StackMap stack:
            aload 4 /* f */
            invokevirtual java.io.File.isFile:()Z
            ifeq 18
        16: .line 514
            aload 0 /* this */
            new java.io.FilePermission
            dup
            aload 5 /* path */
            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: .line 515
            goto 28
      StackMap locals:
      StackMap stack:
        18: aload 4 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 28
        19: .line 516
            aload 0 /* this */
            new java.io.FilePermission
            dup
            aload 5 /* path */
            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: .line 517
            aload 0 /* this */
            new java.io.FilePermission
            dup
        21: .line 518
            new java.lang.StringBuilder
            dup
            aload 5 /* path */
            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: .line 517
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.addPermission:(Ljava/security/Permission;)V
        end local 5 // java.lang.String path
        end local 4 // java.io.File f
        end local 3 // java.net.URI uri
        23: .line 522
            goto 28
        24: .line 524
      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: .line 525
            ldc "webappClassLoader.addPermisionNoProtocol"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        26: .line 526
            aload 2 /* protocol */
            aastore
            dup
            iconst_1
            aload 1 /* url */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            aastore
        27: .line 524
            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 // java.lang.String protocol
        28: .line 529
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.net.URL url
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.security.Permission permission
         0: .line 538
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 2
            aload 1 /* permission */
            ifnull 2
         1: .line 539
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
            aload 1 /* permission */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 541
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.security.Permission permission
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 545
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesRmiTargets
         0: .line 550
            aload 0 /* this */
            iload 1 /* clearReferencesRmiTargets */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
         1: .line 551
            return
        end local 1 // boolean clearReferencesRmiTargets
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 558
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesStopThreads
         0: .line 569
            aload 0 /* this */
            iload 1 /* clearReferencesStopThreads */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
         1: .line 570
            return
        end local 1 // boolean clearReferencesStopThreads
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 577
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesStopTimerThreads
         0: .line 588
            aload 0 /* this */
            iload 1 /* clearReferencesStopTimerThreads */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
         1: .line 589
            return
        end local 1 // boolean clearReferencesStopTimerThreads
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 596
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesLogFactoryRelease
         0: .line 607
            aload 0 /* this */
         1: .line 608
            iload 1 /* clearReferencesLogFactoryRelease */
         2: .line 607
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
         3: .line 609
            return
        end local 1 // boolean clearReferencesLogFactoryRelease
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 617
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesHttpClientKeepAliveThread
         0: .line 629
            aload 0 /* this */
         1: .line 630
            iload 1 /* clearReferencesHttpClientKeepAliveThread */
         2: .line 629
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
         3: .line 631
            return
        end local 1 // boolean clearReferencesHttpClientKeepAliveThread
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 635
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesObjectStreamClassCaches
         0: .line 641
            aload 0 /* this */
            iload 1 /* clearReferencesObjectStreamClassCaches */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
         1: .line 642
            return
        end local 1 // boolean clearReferencesObjectStreamClassCaches
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 646
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean clearReferencesThreadLocals
         0: .line 651
            aload 0 /* this */
            iload 1 /* clearReferencesThreadLocals */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
         1: .line 652
            return
        end local 1 // boolean clearReferencesThreadLocals
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 656
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
            ireturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // boolean skipMemoryLeakChecksOnJvmShutdown
         0: .line 661
            aload 0 /* this */
            iload 1 /* skipMemoryLeakChecksOnJvmShutdown */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
         1: .line 662
            return
        end local 1 // boolean skipMemoryLeakChecksOnJvmShutdown
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
         0: .line 677
            aload 1 /* transformer */
            ifnonnull 4
         1: .line 678
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 679
            ldc "webappClassLoader.addTransformer.illegalArgument"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
         3: .line 678
            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: .line 682
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
            aload 1 /* transformer */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 684
            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: .line 685
            aload 1 /* transformer */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
         7: .line 684
            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: .line 686
            return
         9: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
            aload 1 /* transformer */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 690
            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 /* transformer */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            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: .line 691
            return
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.instrument.ClassFileTransformer transformer
         0: .line 705
            aload 1 /* transformer */
            ifnonnull 2
         1: .line 706
            return
         2: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
            aload 1 /* transformer */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 710
            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: .line 711
            aload 1 /* transformer */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
         5: .line 710
            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: .line 713
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.instrument.ClassFileTransformer transformer
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // org.apache.catalina.loader.WebappClassLoaderBase base
         0: .line 716
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         1: .line 717
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         2: .line 718
            aload 1 /* base */
            getstatic org.apache.catalina.LifecycleState.NEW:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         3: .line 719
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
         4: .line 720
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
         5: .line 721
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
         6: .line 722
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
         7: .line 723
            aload 1 /* base */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         8: .line 724
            aload 1 /* base */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 725
            aload 1 /* base */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.putAll:(Ljava/util/Map;)V
        10: .line 726
            return
        end local 1 // org.apache.catalina.loader.WebappClassLoaderBase base
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 735
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 736
            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: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* entry */
        start local 1 // java.util.Map$Entry entry
         4: .line 739
            aload 1 /* entry */
            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 /* cachedLastModified */
        start local 3 // long cachedLastModified
         5: .line 740
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         6: .line 741
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
         7: .line 740
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
         8: .line 741
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
         9: .line 740
            lstore 5 /* lastModified */
        start local 5 // long lastModified
        10: .line 742
            lload 5 /* lastModified */
            lload 3 /* cachedLastModified */
            lcmp
            ifeq 18
        11: .line 743
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 17
        12: .line 744
            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: .line 745
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            aastore
            dup
            iconst_1
        14: .line 746
            new java.util.Date
            dup
            lload 3 /* cachedLastModified */
            invokespecial java.util.Date.<init>:(J)V
            aastore
            dup
            iconst_2
        15: .line 747
            new java.util.Date
            dup
            lload 5 /* lastModified */
            invokespecial java.util.Date.<init>:(J)V
            aastore
        16: .line 744
            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: .line 748
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.util.Map$Entry java.util.Iterator long long
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // long lastModified
        end local 3 // long cachedLastModified
        end local 1 // java.util.Map$Entry entry
        18: .line 738
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        19: .line 753
            aload 0 /* this */
            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 /* jars */
        start local 1 // org.apache.catalina.WebResource[] jars
        20: .line 756
            iconst_0
            istore 2 /* jarCount */
        start local 2 // int jarCount
        21: .line 757
            aload 1 /* jars */
            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 /* jar */
        start local 3 // org.apache.catalina.WebResource jar
        23: .line 758
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 36
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.isFile:()Z
            ifeq 36
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.canRead:()Z
            ifeq 36
        24: .line 759
            iinc 2 /* jarCount */ 1
        25: .line 760
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
            aload 3 /* jar */
            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 /* recordedLastModified */
        start local 7 // java.lang.Long recordedLastModified
        26: .line 761
            aload 7 /* recordedLastModified */
            ifnonnull 31
        27: .line 763
            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: .line 764
            aload 0 /* this */
            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: .line 763
            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: .line 765
            iconst_1
            ireturn
        31: .line 767
      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 /* recordedLastModified */
            invokevirtual java.lang.Long.longValue:()J
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
            lcmp
            ifeq 36
        32: .line 769
            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: .line 770
            aload 0 /* this */
            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: .line 769
            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: .line 771
            iconst_1
            ireturn
        end local 7 // java.lang.Long recordedLastModified
        end local 3 // org.apache.catalina.WebResource jar
        36: .line 757
      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: .line 776
            iload 2 /* jarCount */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            if_icmpge 43
        39: .line 777
            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: .line 778
            aload 0 /* this */
            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: .line 777
            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: .line 779
            iconst_1
            ireturn
        43: .line 784
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase org.apache.catalina.WebResource[] int
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // int jarCount
        end local 1 // org.apache.catalina.WebResource[] jars
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 791
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            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 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 792
            aload 1 /* sb */
            ldc "\r\n  context: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 793
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 794
            aload 1 /* sb */
            ldc "\r\n  delegate: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 795
            aload 1 /* sb */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            pop
         5: .line 796
            aload 1 /* sb */
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 797
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            ifnull 10
         7: .line 798
            aload 1 /* sb */
            ldc "----------> Parent Classloader:\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 799
            aload 1 /* sb */
            aload 0 /* this */
            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: .line 800
            aload 1 /* sb */
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 802
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 16
        11: .line 803
            aload 1 /* sb */
            ldc "----------> Class file transformers:\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 804
            aload 0 /* this */
            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 /* transformer */
        start local 2 // java.lang.instrument.ClassFileTransformer transformer
        14: .line 805
            aload 1 /* sb */
            aload 2 /* transformer */
            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 // java.lang.instrument.ClassFileTransformer transformer
        15: .line 804
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 808
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
        start local 2 // byte[] b
        start local 3 // int off
        start local 4 // int len
        start local 5 // java.security.ProtectionDomain protectionDomain
         0: .line 818
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* b */
            iload 3 /* off */
            iload 4 /* len */
            aload 5 /* protectionDomain */
            invokespecial java.net.URLClassLoader.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
            areturn
        end local 5 // java.security.ProtectionDomain protectionDomain
        end local 4 // int len
        end local 3 // int off
        end local 2 // byte[] b
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 832
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 833
            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 /* name */
            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: .line 835
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading:(Ljava/lang/String;)V
         3: .line 838
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 14
         4: .line 839
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* i */
        start local 2 // int i
         5: .line 840
            iload 2 /* i */
            iflt 14
         6: .line 842
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 8
         7: .line 843
            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: .line 844
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            aload 1 /* name */
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.SecurityManager.checkPackageDefinition:(Ljava/lang/String;)V
         9: .line 845
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 3 /* se */
        start local 3 // java.lang.Exception se
        11: .line 846
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 13
        12: .line 847
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            ldc "      -->Exception-->ClassNotFoundException"
            aload 3 /* se */
            invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        13: .line 848
      StackMap locals: java.lang.Exception
      StackMap stack:
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            aload 3 /* se */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception se
        end local 2 // int i
        14: .line 855
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
        15: .line 857
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 17
        16: .line 858
            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 /* name */
            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: .line 860
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 22
        18: .line 862
            new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedFindClassByName
            dup
            aload 0 /* this */
            aload 1 /* name */
            invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedFindClassByName.<init>:(Lorg/apache/catalina/loader/WebappClassLoaderBase;Ljava/lang/String;)V
        19: .line 861
            astore 3 /* dp */
        start local 3 // java.security.PrivilegedAction dp
        20: .line 863
            aload 3 /* dp */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* clazz */
        end local 3 // java.security.PrivilegedAction dp
        21: .line 864
            goto 35
        22: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* clazz */
        23: .line 867
            goto 35
      StackMap locals:
      StackMap stack: java.security.AccessControlException
        24: astore 3 /* ace */
        start local 3 // java.security.AccessControlException ace
        25: .line 868
            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 /* name */
            aastore
            dup
            iconst_1
        26: .line 869
            aload 3 /* ace */
            invokevirtual java.security.AccessControlException.getMessage:()Ljava/lang/String;
            aastore
        27: .line 868
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        28: .line 869
            aload 3 /* ace */
        29: .line 868
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        30: .line 870
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            aload 3 /* ace */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.AccessControlException ace
        31: .line 871
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        32: .line 872
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 34
        33: .line 873
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            ldc "      -->RuntimeException Rethrown"
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        34: .line 874
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.lang.RuntimeException e
        35: .line 876
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            ifnonnull 49
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
            ifeq 49
        36: .line 878
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* clazz */
        37: .line 879
            goto 49
      StackMap locals:
      StackMap stack: java.security.AccessControlException
        38: astore 3 /* ace */
        start local 3 // java.security.AccessControlException ace
        39: .line 880
            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 /* name */
            aastore
            dup
            iconst_1
        40: .line 881
            aload 3 /* ace */
            invokevirtual java.security.AccessControlException.getMessage:()Ljava/lang/String;
            aastore
        41: .line 880
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        42: .line 881
            aload 3 /* ace */
        43: .line 880
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        44: .line 882
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            aload 3 /* ace */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.security.AccessControlException ace
        45: .line 883
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        46: .line 884
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 48
        47: .line 885
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            ldc "      -->RuntimeException Rethrown"
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        48: .line 886
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.lang.RuntimeException e
        49: .line 889
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            ifnonnull 57
        50: .line 890
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 52
        51: .line 891
            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: .line 892
      StackMap locals:
      StackMap stack:
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        53: .line 894
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* e */
        start local 3 // java.lang.ClassNotFoundException e
        54: .line 895
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 56
        55: .line 896
            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: .line 897
      StackMap locals: java.lang.ClassNotFoundException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.lang.ClassNotFoundException e
        57: .line 901
      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: .line 902
            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 /* clazz */
            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: .line 904
      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: .line 906
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 64
        61: .line 908
            new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedGetClassLoader
            dup
            aload 2 /* clazz */
            invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedGetClassLoader.<init>:(Ljava/lang/Class;)V
        62: .line 907
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.ClassLoader
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
        63: .line 909
            goto 65
        end local 3 // java.lang.ClassLoader cl
        64: .line 910
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
        65: .line 912
      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 /* cl */
            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 // java.lang.ClassLoader cl
        66: .line 914
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            areturn
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 929
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 930
            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 /* name */
            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: .line 932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 934
            aconst_null
            astore 2 /* url */
        start local 2 // java.net.URL url
         4: .line 936
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.nameToPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         5: .line 938
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 4 /* resource */
        start local 4 // org.apache.catalina.WebResource resource
         6: .line 939
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 9
         7: .line 940
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            astore 2 /* url */
         8: .line 941
            aload 0 /* this */
            aload 3 /* path */
            aload 4 /* resource */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.trackLastModified:(Ljava/lang/String;Lorg/apache/catalina/WebResource;)V
         9: .line 944
      StackMap locals: java.net.URL java.lang.String org.apache.catalina.WebResource
      StackMap stack:
            aload 2 /* url */
            ifnonnull 11
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
            ifeq 11
        10: .line 945
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* url */
        11: .line 948
      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: .line 949
            aload 2 /* url */
            ifnull 14
        13: .line 950
            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 /* url */
            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: .line 952
      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: .line 954
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        end local 4 // org.apache.catalina.WebResource resource
        end local 3 // java.lang.String path
        end local 2 // java.net.URL url
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String path
        start local 2 // org.apache.catalina.WebResource resource
         0: .line 959
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            aload 1 /* path */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 960
            return
         2: .line 962
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.loader.ResourceEntry
            dup
            invokespecial org.apache.catalina.loader.ResourceEntry.<init>:()V
            astore 3 /* entry */
        start local 3 // org.apache.catalina.loader.ResourceEntry entry
         3: .line 963
            aload 3 /* entry */
            aload 2 /* resource */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
            putfield org.apache.catalina.loader.ResourceEntry.lastModified:J
         4: .line 964
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            dup
            astore 4
            monitorenter
         5: .line 965
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            aload 1 /* path */
            aload 3 /* entry */
            invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 964
            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: .line 967
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.catalina.loader.ResourceEntry entry
        end local 2 // org.apache.catalina.WebResource resource
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 982
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 983
            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 /* name */
            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: .line 985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 987
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.LinkedHashSet result
         4: .line 989
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.nameToPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         5: .line 991
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 3 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
            astore 4 /* webResources */
        start local 4 // org.apache.catalina.WebResource[] webResources
         6: .line 992
            aload 4 /* webResources */
            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 /* webResource */
        start local 5 // org.apache.catalina.WebResource webResource
         8: .line 993
            aload 5 /* webResource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 10
         9: .line 994
            aload 2 /* result */
            aload 5 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.apache.catalina.WebResource webResource
        10: .line 992
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        11: iload 6
            iload 7
            if_icmplt 7
        12: .line 999
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
            ifeq 17
        13: .line 1000
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 5 /* otherResourcePaths */
        start local 5 // java.util.Enumeration otherResourcePaths
        14: .line 1001
            goto 16
        15: .line 1002
      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 /* result */
            aload 5 /* otherResourcePaths */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.URL
            invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
            pop
        16: .line 1001
      StackMap locals:
      StackMap stack:
            aload 5 /* otherResourcePaths */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        end local 5 // java.util.Enumeration otherResourcePaths
        17: .line 1006
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            invokestatic java.util.Collections.enumeration:(Ljava/util/Collection;)Ljava/util/Enumeration;
            areturn
        end local 4 // org.apache.catalina.WebResource[] webResources
        end local 3 // java.lang.String path
        end local 2 // java.util.LinkedHashSet result
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 1035
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 1036
            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 /* name */
            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: .line 1038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 1040
            aconst_null
            astore 2 /* url */
        start local 2 // java.net.URL url
         4: .line 1042
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            ifne 5
            aload 0 /* this */
            aload 1 /* name */
            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 /* delegateFirst */
        start local 3 // boolean delegateFirst
         7: .line 1045
            iload 3 /* delegateFirst */
            ifeq 15
         8: .line 1046
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 1047
            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 /* this */
            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: .line 1048
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* url */
        11: .line 1049
            aload 2 /* url */
            ifnull 15
        12: .line 1050
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 1051
            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 /* url */
            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: .line 1052
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        15: .line 1057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* url */
        16: .line 1058
            aload 2 /* url */
            ifnull 20
        17: .line 1059
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 19
        18: .line 1060
            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 /* url */
            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: .line 1061
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        20: .line 1065
      StackMap locals:
      StackMap stack:
            iload 3 /* delegateFirst */
            ifne 26
        21: .line 1066
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* url */
        22: .line 1067
            aload 2 /* url */
            ifnull 26
        23: .line 1068
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 25
        24: .line 1069
            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 /* url */
            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: .line 1070
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        26: .line 1075
      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: .line 1076
            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: .line 1077
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // boolean delegateFirst
        end local 2 // java.net.URL url
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 1085
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getParent:()Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 2 /* parentResources */
        start local 2 // java.util.Enumeration parentResources
         1: .line 1086
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 3 /* localResources */
        start local 3 // java.util.Enumeration localResources
         2: .line 1090
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            ifne 3
            aload 0 /* this */
            aload 1 /* name */
            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 /* delegateFirst */
        start local 4 // boolean delegateFirst
         5: .line 1092
            iload 4 /* delegateFirst */
            ifeq 7
         6: .line 1093
            new org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration
            dup
            aload 2 /* parentResources */
            aload 3 /* localResources */
            invokespecial org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.<init>:(Ljava/util/Enumeration;Ljava/util/Enumeration;)V
            areturn
         7: .line 1095
      StackMap locals: int
      StackMap stack:
            new org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration
            dup
            aload 3 /* localResources */
            aload 2 /* parentResources */
            invokespecial org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.<init>:(Ljava/util/Enumeration;Ljava/util/Enumeration;)V
            areturn
        end local 4 // boolean delegateFirst
        end local 3 // java.util.Enumeration localResources
        end local 2 // java.util.Enumeration parentResources
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 1112
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 1113
            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 /* name */
            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: .line 1115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 1117
            aconst_null
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         4: .line 1119
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            ifne 5
            aload 0 /* this */
            aload 1 /* name */
            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 /* delegateFirst */
        start local 3 // boolean delegateFirst
         7: .line 1122
            iload 3 /* delegateFirst */
            ifeq 15
         8: .line 1123
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 1124
            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 /* this */
            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: .line 1125
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* stream */
        11: .line 1126
            aload 2 /* stream */
            ifnull 15
        12: .line 1127
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 1128
            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: .line 1129
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            areturn
        15: .line 1134
      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: .line 1135
            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: .line 1136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.nameToPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
        18: .line 1137
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 4 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 5 /* resource */
        start local 5 // org.apache.catalina.WebResource resource
        19: .line 1138
            aload 5 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 22
        20: .line 1139
            aload 5 /* resource */
            invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
            astore 2 /* stream */
        21: .line 1140
            aload 0 /* this */
            aload 4 /* path */
            aload 5 /* resource */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.trackLastModified:(Ljava/lang/String;Lorg/apache/catalina/WebResource;)V
        22: .line 1143
      StackMap locals: java.lang.String org.apache.catalina.WebResource
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
            ifeq 28
            aload 2 /* stream */
            ifnonnull 28
        23: .line 1144
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 6 /* url */
        start local 6 // java.net.URL url
        24: .line 1145
            aload 6 /* url */
            ifnull 28
        25: .line 1146
            aload 6 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 2 /* stream */
        end local 6 // java.net.URL url
        26: .line 1149
            goto 28
      StackMap locals:
      StackMap stack: java.io.IOException
        27: pop
        28: .line 1152
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            ifnull 32
        29: .line 1153
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 31
        30: .line 1154
            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: .line 1155
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            areturn
        32: .line 1159
      StackMap locals:
      StackMap stack:
            iload 3 /* delegateFirst */
            ifne 40
        33: .line 1160
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 35
        34: .line 1161
            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 /* this */
            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: .line 1162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* stream */
        36: .line 1163
            aload 2 /* stream */
            ifnull 40
        37: .line 1164
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 39
        38: .line 1165
            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: .line 1166
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            areturn
        40: .line 1171
      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: .line 1172
            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: .line 1173
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // org.apache.catalina.WebResource resource
        end local 4 // java.lang.String path
        end local 3 // boolean delegateFirst
        end local 2 // java.io.InputStream stream
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 1188
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
        start local 2 // boolean resolve
         0: .line 1220
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifeq 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* name */
            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: .line 1221
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 1222
            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 /* name */
            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 /* resolve */
            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: .line 1223
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         6: .line 1226
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading:(Ljava/lang/String;)V
         7: .line 1229
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findLoadedClass0:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
         8: .line 1230
            aload 4 /* clazz */
            ifnull 15
         9: .line 1231
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 11
        10: .line 1232
            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: .line 1233
      StackMap locals: java.lang.Class
      StackMap stack:
            iload 2 /* resolve */
            ifeq 13
        12: .line 1234
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        13: .line 1235
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            aload 3
            monitorexit
        14: areturn
        15: .line 1239
      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 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findLoadedClass:(Ljava/lang/String;)Ljava/lang/Class;
      StackMap locals:
      StackMap stack: java.lang.Class
        17: astore 4 /* clazz */
        18: .line 1240
            aload 4 /* clazz */
            ifnull 25
        19: .line 1241
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 21
        20: .line 1242
            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: .line 1243
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 23
        22: .line 1244
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        23: .line 1245
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            aload 3
            monitorexit
        24: areturn
        25: .line 1251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 5 /* resourceName */
        start local 5 // java.lang.String resourceName
        26: .line 1253
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getJavaseClassLoader:()Ljava/lang/ClassLoader;
            astore 6 /* javaseLoader */
        start local 6 // java.lang.ClassLoader javaseLoader
        27: .line 1267
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 31
        28: .line 1268
            new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedJavaseGetResource
            dup
            aload 0 /* this */
            aload 5 /* resourceName */
            invokespecial org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedJavaseGetResource.<init>:(Lorg/apache/catalina/loader/WebappClassLoaderBase;Ljava/lang/String;)V
            astore 9 /* dp */
        start local 9 // java.security.PrivilegedAction dp
        29: .line 1269
            aload 9 /* dp */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.net.URL
            astore 8 /* url */
        end local 9 // java.security.PrivilegedAction dp
        start local 8 // java.net.URL url
        30: .line 1270
            goto 32
        end local 8 // java.net.URL url
        31: .line 1271
      StackMap locals: java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 6 /* javaseLoader */
            aload 5 /* resourceName */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 8 /* url */
        start local 8 // java.net.URL url
        32: .line 1273
      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 /* url */
            ifnull 33
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: istore 7 /* tryLoadingFromJavaseLoader */
        end local 8 // java.net.URL url
        start local 7 // boolean tryLoadingFromJavaseLoader
        35: .line 1274
            goto 39
        end local 7 // boolean tryLoadingFromJavaseLoader
      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 /* t */
        start local 8 // java.lang.Throwable t
        37: .line 1276
            aload 8 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        38: .line 1280
            iconst_1
            istore 7 /* tryLoadingFromJavaseLoader */
        end local 8 // java.lang.Throwable t
        start local 7 // boolean tryLoadingFromJavaseLoader
        39: .line 1283
      StackMap locals: int
      StackMap stack:
            iload 7 /* tryLoadingFromJavaseLoader */
            ifeq 48
        40: .line 1285
            aload 6 /* javaseLoader */
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        41: .line 1286
            aload 4 /* clazz */
            ifnull 48
        42: .line 1287
            iload 2 /* resolve */
            ifeq 44
        43: .line 1288
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        44: .line 1289
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        45: aload 3
            monitorexit
        46: areturn
        47: .line 1291
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        48: .line 1297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 57
        49: .line 1298
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 8 /* i */
        start local 8 // int i
        50: .line 1299
            iload 8 /* i */
            iflt 57
        51: .line 1301
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            aload 1 /* name */
            iconst_0
            iload 8 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.SecurityManager.checkPackageAccess:(Ljava/lang/String;)V
        52: .line 1302
            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 /* se */
        start local 9 // java.lang.SecurityException se
        54: .line 1303
            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 /* name */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 10 /* error */
        start local 10 // java.lang.String error
        55: .line 1304
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            aload 10 /* error */
            aload 9 /* se */
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        56: .line 1305
            new java.lang.ClassNotFoundException
            dup
            aload 10 /* error */
            aload 9 /* se */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 10 // java.lang.String error
        end local 9 // java.lang.SecurityException se
        end local 8 // int i
        57: .line 1310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            ifne 58
            aload 0 /* this */
            aload 1 /* name */
            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 /* delegateLoad */
        start local 8 // boolean delegateLoad
        60: .line 1313
            iload 8 /* delegateLoad */
            ifeq 73
        61: .line 1314
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 63
        62: .line 1315
            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 /* this */
            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: .line 1317
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            iconst_0
            aload 0 /* this */
            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 /* clazz */
        64: .line 1318
            aload 4 /* clazz */
            ifnull 73
        65: .line 1319
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 67
        66: .line 1320
            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: .line 1321
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 69
        68: .line 1322
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        69: .line 1323
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        70: aload 3
            monitorexit
        71: areturn
        72: .line 1325
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        73: .line 1331
      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: .line 1332
            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: .line 1334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        76: .line 1335
            aload 4 /* clazz */
            ifnull 85
        77: .line 1336
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 79
        78: .line 1337
            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: .line 1338
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 81
        80: .line 1339
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        81: .line 1340
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        82: aload 3
            monitorexit
        83: areturn
        84: .line 1342
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        85: .line 1347
      StackMap locals:
      StackMap stack:
            iload 8 /* delegateLoad */
            ifne 98
        86: .line 1348
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 88
        87: .line 1349
            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 /* this */
            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: .line 1351
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_0
            aload 0 /* this */
            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 /* clazz */
        89: .line 1352
            aload 4 /* clazz */
            ifnull 98
        90: .line 1353
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 92
        91: .line 1354
            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: .line 1355
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 94
        93: .line 1356
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        94: .line 1357
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        95: aload 3
            monitorexit
        96: areturn
        97: .line 1359
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        end local 8 // boolean delegateLoad
        end local 7 // boolean tryLoadingFromJavaseLoader
        end local 6 // java.lang.ClassLoader javaseLoader
        end local 5 // java.lang.String resourceName
        end local 4 // java.lang.Class clazz
        98: .line 1220
      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: .line 1365
      StackMap locals:
      StackMap stack:
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // boolean resolve
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String className
         0: .line 1373
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         1: .line 1374
            goto 4
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         2: astore 2 /* ise */
        start local 2 // java.lang.IllegalStateException ise
         3: .line 1375
            new java.lang.ClassNotFoundException
            dup
            aload 2 /* ise */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 2 /* ise */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalStateException ise
         4: .line 1377
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String resource
         0: .line 1383
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifne 5
         1: .line 1384
            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 /* resource */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* msg */
        start local 2 // java.lang.String msg
         2: .line 1385
            new java.lang.IllegalStateException
            dup
            aload 2 /* msg */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            astore 3 /* ise */
        start local 3 // java.lang.IllegalStateException ise
         3: .line 1386
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            aload 2 /* msg */
            aload 3 /* ise */
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 1387
            aload 3 /* ise */
            athrow
        end local 3 // java.lang.IllegalStateException ise
        end local 2 // java.lang.String msg
         5: .line 1389
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String resource
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.security.CodeSource codeSource
         0: .line 1401
            aload 1 /* codeSource */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            astore 2 /* codeUrl */
        start local 2 // java.lang.String codeUrl
         1: .line 1403
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
            aload 2 /* codeUrl */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.PermissionCollection
            dup
            astore 3 /* pc */
        start local 3 // java.security.PermissionCollection pc
         2: ifnonnull 10
         3: .line 1404
            aload 0 /* this */
            aload 1 /* codeSource */
            invokespecial java.net.URLClassLoader.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
            astore 3 /* pc */
         4: .line 1405
            aload 3 /* pc */
            ifnull 10
         5: .line 1406
            aload 0 /* this */
            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 /* p */
        start local 4 // java.security.Permission p
         7: .line 1407
            aload 3 /* pc */
            aload 4 /* p */
            invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
        end local 4 // java.security.Permission p
         8: .line 1406
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 1409
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
            aload 2 /* codeUrl */
            aload 3 /* pc */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 1412
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.security.CodeSource java.lang.String java.security.PermissionCollection
      StackMap stack:
            aload 3 /* pc */
            areturn
        end local 3 // java.security.PermissionCollection pc
        end local 2 // java.lang.String codeUrl
        end local 1 // java.security.CodeSource codeSource
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.security.Permission permission
         0: .line 1418
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifne 2
         1: .line 1419
            iconst_1
            ireturn
         2: .line 1421
      StackMap locals:
      StackMap stack:
            invokestatic java.security.Policy.getPolicy:()Ljava/security/Policy;
            astore 2 /* currentPolicy */
        start local 2 // java.security.Policy currentPolicy
         3: .line 1422
            aload 2 /* currentPolicy */
            ifnull 9
         4: .line 1423
            aload 0 /* this */
            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 /* contextRootUrl */
        start local 3 // java.net.URL contextRootUrl
         5: .line 1424
            new java.security.CodeSource
            dup
            aload 3 /* contextRootUrl */
            aconst_null
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
            astore 4 /* cs */
        start local 4 // java.security.CodeSource cs
         6: .line 1425
            aload 2 /* currentPolicy */
            aload 4 /* cs */
            invokevirtual java.security.Policy.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
            astore 5 /* pc */
        start local 5 // java.security.PermissionCollection pc
         7: .line 1426
            aload 5 /* pc */
            aload 1 /* permission */
            invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
            ifeq 9
         8: .line 1427
            iconst_1
            ireturn
        end local 5 // java.security.PermissionCollection pc
        end local 4 // java.security.CodeSource cs
        end local 3 // java.net.URL contextRootUrl
         9: .line 1430
      StackMap locals: java.security.Policy
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.security.Policy currentPolicy
        end local 1 // java.security.Permission permission
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1446
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.ArrayList result
         1: .line 1447
            aload 1 /* result */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 1448
            aload 1 /* result */
            aload 0 /* this */
            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: .line 1449
            aload 1 /* result */
            aload 1 /* result */
            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 // java.util.ArrayList result
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // org.apache.catalina.LifecycleListener listener
         0: .line 1464
            return
        end local 1 // org.apache.catalina.LifecycleListener listener
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1473
            iconst_0
            anewarray org.apache.catalina.LifecycleListener
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // org.apache.catalina.LifecycleListener listener
         0: .line 1485
            return
        end local 1 // org.apache.catalina.LifecycleListener listener
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1495
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1504
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1510
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.INITIALIZED:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         1: .line 1511
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1522
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STARTING_PREP:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         1: .line 1524
            aload 0 /* this */
            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 /* classesResources */
        start local 1 // org.apache.catalina.WebResource[] classesResources
         2: .line 1525
            aload 1 /* classesResources */
            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 /* classes */
        start local 2 // org.apache.catalina.WebResource classes
         4: .line 1526
            aload 2 /* classes */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 6
            aload 2 /* classes */
            invokeinterface org.apache.catalina.WebResource.canRead:()Z
            ifeq 6
         5: .line 1527
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
            aload 2 /* classes */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.catalina.WebResource classes
         6: .line 1525
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 3
         8: .line 1530
            aload 0 /* this */
            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 /* jars */
        start local 2 // org.apache.catalina.WebResource[] jars
         9: .line 1531
            aload 2 /* jars */
            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 /* jar */
        start local 3 // org.apache.catalina.WebResource jar
        11: .line 1532
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 16
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.isFile:()Z
            ifeq 16
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.canRead:()Z
            ifeq 16
        12: .line 1533
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.localRepositories:Ljava/util/List;
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 1534
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
        14: .line 1535
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
            aload 3 /* jar */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
        15: .line 1534
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // org.apache.catalina.WebResource jar
        16: .line 1531
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 10
        18: .line 1539
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STARTED:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
        19: .line 1540
            return
        end local 2 // org.apache.catalina.WebResource[] jars
        end local 1 // org.apache.catalina.WebResource[] classesResources
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1551
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPING_PREP:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         1: .line 1555
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferences:()V
         2: .line 1557
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         3: .line 1559
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         4: .line 1560
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         5: .line 1561
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         6: .line 1563
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         7: .line 1564
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         8: .line 1566
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPED:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         9: .line 1567
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1572
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.DESTROYING:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         1: .line 1575
            aload 0 /* this */
            invokespecial java.net.URLClassLoader.close:()V
         2: .line 1576
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         4: .line 1577
            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 /* ioe */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException ioe
         5: .line 1579
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.DESTROYED:Lorg/apache/catalina/LifecycleState;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.state:Lorg/apache/catalina/LifecycleState;
         6: .line 1580
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1586
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 1590
            aload 1 /* classLoader */
            ifnonnull 4
         1: .line 1591
            new java.lang.IllegalArgumentException
            dup
         2: .line 1592
            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: .line 1591
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classLoader */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
         5: .line 1595
            return
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1603
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
            ifeq 8
         1: .line 1604
            aload 0 /* this */
            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: .line 1609
            new java.lang.Thread
            dup
            invokespecial java.lang.Thread.<init>:()V
            astore 1 /* dummyHook */
        start local 1 // java.lang.Thread dummyHook
         3: .line 1610
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 1 /* dummyHook */
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
         4: .line 1611
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 1 /* dummyHook */
            invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
            pop
        end local 1 // java.lang.Thread dummyHook
         5: .line 1612
            goto 8
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         6: pop
         7: .line 1613
            return
         8: .line 1617
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifne 10
         9: .line 1619
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc:()V
        10: .line 1623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads:()V
        11: .line 1626
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
            ifeq 13
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifne 13
        12: .line 1627
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:()V
        13: .line 1631
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
            ifeq 15
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifne 15
        14: .line 1632
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalsForLeaks:()V
        15: .line 1636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
            ifeq 17
        16: .line 1637
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:()V
        17: .line 1641
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.tomcat.util.IntrospectionUtils.clear:()V
        18: .line 1644
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
            ifeq 20
        19: .line 1645
            aload 0 /* this */
            invokestatic org.apache.juli.logging.LogFactory.release:(Ljava/lang/ClassLoader;)V
        20: .line 1649
      StackMap locals:
      StackMap stack:
            invokestatic java.beans.Introspector.flushCaches:()V
        21: .line 1652
            aload 0 /* this */
            invokestatic org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.release:(Ljava/lang/ClassLoader;)V
        22: .line 1653
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1677
            sipush 2048
            newarray 8
            astore 1 /* classBytes */
        start local 1 // byte[] classBytes
         1: .line 1678
            iconst_0
            istore 2 /* offset */
        start local 2 // int offset
         2: .line 1679
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
         4: .line 1680
            ldc "org/apache/catalina/loader/JdbcLeakPrevention.class"
         5: .line 1679
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 5 /* is */
        start local 5 // java.io.InputStream is
         6: .line 1681
            aload 5 /* is */
            aload 1 /* classBytes */
            iload 2 /* offset */
            aload 1 /* classBytes */
            arraylength
            iload 2 /* offset */
            isub
            invokevirtual java.io.InputStream.read:([BII)I
            istore 6 /* read */
        start local 6 // int read
         7: .line 1682
            goto 14
         8: .line 1683
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase byte[] int java.lang.Throwable java.lang.Throwable java.io.InputStream int
      StackMap stack:
            iload 2 /* offset */
            iload 6 /* read */
            iadd
            istore 2 /* offset */
         9: .line 1684
            iload 2 /* offset */
            aload 1 /* classBytes */
            arraylength
            if_icmpne 13
        10: .line 1686
            aload 1 /* classBytes */
            arraylength
            iconst_2
            imul
            newarray 8
            astore 7 /* tmp */
        start local 7 // byte[] tmp
        11: .line 1687
            aload 1 /* classBytes */
            iconst_0
            aload 7 /* tmp */
            iconst_0
            aload 1 /* classBytes */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        12: .line 1688
            aload 7 /* tmp */
            astore 1 /* classBytes */
        end local 7 // byte[] tmp
        13: .line 1690
      StackMap locals:
      StackMap stack:
            aload 5 /* is */
            aload 1 /* classBytes */
            iload 2 /* offset */
            aload 1 /* classBytes */
            arraylength
            iload 2 /* offset */
            isub
            invokevirtual java.io.InputStream.read:([BII)I
            istore 6 /* read */
        14: .line 1682
      StackMap locals:
      StackMap stack:
            iload 6 /* read */
            iconst_m1
            if_icmpgt 8
        15: .line 1693
            aload 0 /* this */
            ldc "org.apache.catalina.loader.JdbcLeakPrevention"
        16: .line 1694
            aload 1 /* classBytes */
            iconst_0
            iload 2 /* offset */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
        17: .line 1693
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
        18: .line 1692
            astore 7 /* lpClass */
        start local 7 // java.lang.Class lpClass
        19: .line 1695
            aload 7 /* lpClass */
            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 /* obj */
        start local 8 // java.lang.Object obj
        20: .line 1697
            aload 8 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
        21: .line 1698
            ldc "clearJdbcDriverRegistrations"
            iconst_0
            anewarray java.lang.Class
        22: .line 1697
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        23: .line 1698
            aload 8 /* obj */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
        24: .line 1697
            checkcast java.util.List
            astore 9 /* driverNames */
        start local 9 // java.util.List driverNames
        25: .line 1699
            aload 9 /* driverNames */
            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 /* name */
        start local 10 // java.lang.String name
        27: .line 1700
            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: .line 1701
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 10 /* name */
            aastore
        29: .line 1700
            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 // java.lang.String name
        30: .line 1699
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        end local 9 // java.util.List driverNames
        end local 8 // java.lang.Object obj
        end local 7 // java.lang.Class lpClass
        end local 6 // int read
        31: .line 1703
            aload 5 /* is */
            ifnull 45
            aload 5 /* is */
            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 /* is */
            ifnull 33
            aload 5 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream is
      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 /* e */
        start local 3 // java.lang.Exception e
        38: .line 1705
            aload 3 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.unwrapInvocationTargetException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
        39: .line 1706
            aload 4 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        40: .line 1707
            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: .line 1708
            ldc "webappClassLoader.jdbcRemoveFailed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        42: .line 1707
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        43: .line 1708
            aload 4 /* t */
        44: .line 1707
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable t
        end local 3 // java.lang.Exception e
        45: .line 1710
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int offset
        end local 1 // byte[] classBytes
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1715
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getThreads:()[Ljava/lang/Thread;
            astore 1 /* threads */
        start local 1 // java.lang.Thread[] threads
         1: .line 1716
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* executorThreadsToStop */
        start local 2 // java.util.List executorThreadsToStop
         2: .line 1719
            aload 1 /* threads */
            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 /* thread */
        start local 3 // java.lang.Thread thread
         4: .line 1720
            aload 3 /* thread */
            ifnull 66
         5: .line 1721
            aload 3 /* thread */
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 7 /* ccl */
        start local 7 // java.lang.ClassLoader ccl
         6: .line 1722
            aload 7 /* ccl */
            aload 0 /* this */
            if_acmpne 66
         7: .line 1724
            aload 3 /* thread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 9
         8: .line 1725
            goto 66
         9: .line 1728
      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 /* thread */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            astore 8 /* threadName */
        start local 8 // java.lang.String threadName
        10: .line 1731
            aload 3 /* thread */
            invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
            astore 9 /* tg */
        start local 9 // java.lang.ThreadGroup tg
        11: .line 1732
            aload 9 /* tg */
            ifnull 17
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.JVM_THREAD_GROUP_NAMES:Ljava/util/List;
            aload 9 /* tg */
            invokevirtual java.lang.ThreadGroup.getName:()Ljava/lang/String;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 17
        12: .line 1734
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
            ifeq 66
        13: .line 1735
            aload 8 /* threadName */
            ldc "Keep-Alive-Timer"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 66
        14: .line 1736
            aload 3 /* thread */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        15: .line 1737
            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: .line 1741
            goto 66
        17: .line 1745
      StackMap locals: java.lang.String java.lang.ThreadGroup
      StackMap stack:
            aload 3 /* thread */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 19
        18: .line 1746
            goto 66
        19: .line 1752
      StackMap locals:
      StackMap stack:
            aload 3 /* thread */
            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: .line 1753
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
            ifeq 23
        21: .line 1754
            aload 0 /* this */
            aload 3 /* thread */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThread:(Ljava/lang/Thread;)V
        22: .line 1755
            goto 66
        23: .line 1758
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* thread */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.isRequestThread:(Ljava/lang/Thread;)Z
            ifeq 28
        24: .line 1759
            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: .line 1760
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 8 /* threadName */
            aastore
            dup
            iconst_2
            aload 0 /* this */
            aload 3 /* thread */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getStackTrace:(Ljava/lang/Thread;)Ljava/lang/String;
            aastore
        26: .line 1759
            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: .line 1761
            goto 31
        28: .line 1762
      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: .line 1763
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 8 /* threadName */
            aastore
            dup
            iconst_2
            aload 0 /* this */
            aload 3 /* thread */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getStackTrace:(Ljava/lang/Thread;)Ljava/lang/String;
            aastore
        30: .line 1762
            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: .line 1768
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
            ifne 33
        32: .line 1769
            goto 66
        33: .line 1774
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* usingExecutor */
        start local 10 // boolean usingExecutor
        34: .line 1781
            aconst_null
            astore 11 /* target */
        start local 11 // java.lang.Object target
        35: .line 1782
            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 /* fieldName */
        start local 12 // java.lang.String fieldName
        37: .line 1784
            aload 3 /* thread */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 12 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 16 /* targetField */
        start local 16 // java.lang.reflect.Field targetField
        38: .line 1785
            aload 16 /* targetField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        39: .line 1786
            aload 16 /* targetField */
            aload 3 /* thread */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* target */
        40: .line 1787
            goto 44
        end local 16 // java.lang.reflect.Field targetField
        41: .line 1788
      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 // java.lang.String fieldName
        42: .line 1782
            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: .line 1795
      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 /* target */
            ifnull 62
            aload 11 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            ifnull 62
        45: .line 1796
            aload 11 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
        46: .line 1797
            ldc "java.util.concurrent.ThreadPoolExecutor.Worker"
        47: .line 1796
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        48: .line 1797
            ifeq 62
        49: .line 1798
            aload 11 /* target */
            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 /* executorField */
        start local 12 // java.lang.reflect.Field executorField
        50: .line 1799
            aload 12 /* executorField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        51: .line 1800
            aload 12 /* executorField */
            aload 11 /* target */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* executor */
        start local 13 // java.lang.Object executor
        52: .line 1801
            aload 13 /* executor */
            instanceof java.util.concurrent.ThreadPoolExecutor
            ifeq 62
        53: .line 1802
            aload 13 /* executor */
            checkcast java.util.concurrent.ThreadPoolExecutor
            invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
            pop
        54: .line 1803
            iconst_1
            istore 10 /* usingExecutor */
        end local 13 // java.lang.Object executor
        end local 12 // java.lang.reflect.Field executorField
        end local 11 // java.lang.Object target
        55: .line 1806
            goto 62
        56: .line 1807
      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 /* e */
        start local 11 // java.lang.Exception e
        57: .line 1808
            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: .line 1809
            aload 3 /* thread */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        59: .line 1808
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        60: .line 1809
            aload 11 /* e */
        61: .line 1808
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Exception e
        62: .line 1812
      StackMap locals:
      StackMap stack:
            iload 10 /* usingExecutor */
            ifeq 65
        63: .line 1816
            aload 2 /* executorThreadsToStop */
            aload 3 /* thread */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        64: .line 1817
            goto 66
        65: .line 1822
      StackMap locals:
      StackMap stack:
            aload 3 /* thread */
            invokevirtual java.lang.Thread.stop:()V
        end local 10 // boolean usingExecutor
        end local 9 // java.lang.ThreadGroup tg
        end local 8 // java.lang.String threadName
        end local 7 // java.lang.ClassLoader ccl
        end local 3 // java.lang.Thread thread
        66: .line 1719
      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: .line 1833
            iconst_0
            istore 3 /* count */
        start local 3 // int count
        69: .line 1834
            aload 2 /* executorThreadsToStop */
            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 /* t */
        start local 4 // java.lang.Thread t
        71: .line 1835
            goto 77
        72: .line 1837
      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: .line 1838
            goto 76
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        74: pop
        75: .line 1840
            goto 78
        76: .line 1842
      StackMap locals:
      StackMap stack:
            iinc 3 /* count */ 1
        77: .line 1835
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifeq 78
            iload 3 /* count */
            bipush 100
            if_icmplt 72
        78: .line 1844
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifeq 80
        79: .line 1849
            aload 4 /* t */
            invokevirtual java.lang.Thread.stop:()V
        end local 4 // java.lang.Thread t
        80: .line 1834
      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: .line 1852
            return
        end local 3 // int count
        end local 2 // java.util.List executorThreadsToStop
        end local 1 // java.lang.Thread[] threads
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Thread thread
         0: .line 1861
            aload 1 /* thread */
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 2 /* elements */
        start local 2 // java.lang.StackTraceElement[] elements
         1: .line 1863
            aload 2 /* elements */
            ifnull 2
            aload 2 /* elements */
            arraylength
            ifne 3
         2: .line 1866
      StackMap locals: java.lang.StackTraceElement[]
      StackMap stack:
            iconst_0
            ireturn
         3: .line 1873
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 12
         5: .line 1874
      StackMap locals: int
      StackMap stack:
            aload 2 /* elements */
            aload 2 /* elements */
            arraylength
            iload 3 /* i */
            iconst_1
            iadd
            isub
            aaload
            astore 4 /* element */
        start local 4 // java.lang.StackTraceElement element
         6: .line 1875
            ldc "org.apache.catalina.connector.CoyoteAdapter"
         7: .line 1876
            aload 4 /* element */
            invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
         8: .line 1875
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         9: .line 1876
            ifeq 11
        10: .line 1877
            iconst_1
            ireturn
        end local 4 // java.lang.StackTraceElement element
        11: .line 1873
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 3 /* i */
            aload 2 /* elements */
            arraylength
            if_icmplt 5
        end local 3 // int i
        13: .line 1880
            iconst_0
            ireturn
        end local 2 // java.lang.StackTraceElement[] elements
        end local 1 // java.lang.Thread thread
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Thread thread
         0: .line 1898
            aload 1 /* thread */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "newTasksMayBeScheduled"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         1: .line 1897
            astore 2 /* newTasksMayBeScheduledField */
        start local 2 // java.lang.reflect.Field newTasksMayBeScheduledField
         2: .line 1899
            aload 2 /* newTasksMayBeScheduledField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         3: .line 1900
            aload 1 /* thread */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "queue"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 3 /* queueField */
        start local 3 // java.lang.reflect.Field queueField
         4: .line 1901
            aload 3 /* queueField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         5: .line 1903
            aload 3 /* queueField */
            aload 1 /* thread */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* queue */
        start local 4 // java.lang.Object queue
         6: .line 1905
            aload 4 /* queue */
            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 /* clearMethod */
        start local 5 // java.lang.reflect.Method clearMethod
         7: .line 1906
            aload 5 /* clearMethod */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         8: .line 1908
            aload 4 /* queue */
            dup
            astore 6
            monitorenter
         9: .line 1909
            aload 2 /* newTasksMayBeScheduledField */
            aload 1 /* thread */
            iconst_0
            invokevirtual java.lang.reflect.Field.setBoolean:(Ljava/lang/Object;Z)V
        10: .line 1910
            aload 5 /* clearMethod */
            aload 4 /* queue */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 1913
            aload 4 /* queue */
            invokevirtual java.lang.Object.notifyAll:()V
        12: .line 1908
            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 // java.lang.reflect.Method clearMethod
        end local 4 // java.lang.Object queue
        end local 3 // java.lang.reflect.Field queueField
        end local 2 // java.lang.reflect.Field newTasksMayBeScheduledField
        16: .line 1916
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread
      StackMap stack: java.lang.NoSuchFieldException
            pop
        17: .line 1917
            aload 1 /* thread */
            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 /* cancelMethod */
        start local 2 // java.lang.reflect.Method cancelMethod
        18: .line 1918
            aload 1 /* thread */
            dup
            astore 3
            monitorenter
        19: .line 1919
            aload 2 /* cancelMethod */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
        20: .line 1920
            aload 2 /* cancelMethod */
            aload 1 /* thread */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 1918
            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 // java.lang.reflect.Method cancelMethod
        25: .line 1924
      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: .line 1925
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* thread */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            aastore
        27: .line 1924
            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: .line 1927
            goto 38
      StackMap locals:
      StackMap stack: java.lang.Exception
        29: astore 2 /* e */
        start local 2 // java.lang.Exception e
        30: .line 1929
            aload 2 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.unwrapInvocationTargetException:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
        31: .line 1930
            aload 3 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        32: .line 1931
            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: .line 1932
            ldc "webappClassLoader.stopTimerThreadFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        34: .line 1933
            aload 1 /* thread */
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        35: .line 1931
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        36: .line 1933
            aload 3 /* t */
        37: .line 1931
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
        end local 2 // java.lang.Exception e
        38: .line 1935
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread thread
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1938
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getThreads:()[Ljava/lang/Thread;
            astore 1 /* threads */
        start local 1 // java.lang.Thread[] threads
         1: .line 1944
            ldc Ljava/lang/Thread;
            ldc "threadLocals"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         2: .line 1943
            astore 2 /* threadLocalsField */
        start local 2 // java.lang.reflect.Field threadLocalsField
         3: .line 1945
            aload 2 /* threadLocalsField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         4: .line 1947
            ldc Ljava/lang/Thread;
            ldc "inheritableThreadLocals"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         5: .line 1946
            astore 3 /* inheritableThreadLocalsField */
        start local 3 // java.lang.reflect.Field inheritableThreadLocalsField
         6: .line 1948
            aload 3 /* inheritableThreadLocalsField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         7: .line 1951
            ldc "java.lang.ThreadLocal$ThreadLocalMap"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* tlmClass */
        start local 4 // java.lang.Class tlmClass
         8: .line 1952
            aload 4 /* tlmClass */
            ldc "table"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 5 /* tableField */
        start local 5 // java.lang.reflect.Field tableField
         9: .line 1953
            aload 5 /* tableField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        10: .line 1954
            aload 4 /* tlmClass */
            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 /* expungeStaleEntriesMethod */
        start local 6 // java.lang.reflect.Method expungeStaleEntriesMethod
        11: .line 1955
            aload 6 /* expungeStaleEntriesMethod */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
        12: .line 1957
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        13: goto 24
        14: .line 1959
      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 /* threads */
            iload 7 /* i */
            aaload
            ifnull 23
        15: .line 1962
            aload 2 /* threadLocalsField */
            aload 1 /* threads */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* threadLocalMap */
        start local 8 // java.lang.Object threadLocalMap
        16: .line 1963
            aload 8 /* threadLocalMap */
            ifnull 19
        17: .line 1964
            aload 6 /* expungeStaleEntriesMethod */
            aload 8 /* threadLocalMap */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 1965
            aload 0 /* this */
            aload 8 /* threadLocalMap */
            aload 5 /* tableField */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks:(Ljava/lang/Object;Ljava/lang/reflect/Field;)V
        19: .line 1969
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* inheritableThreadLocalsField */
            aload 1 /* threads */
            iload 7 /* i */
            aaload
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* threadLocalMap */
        20: .line 1970
            aload 8 /* threadLocalMap */
            ifnull 23
        21: .line 1971
            aload 6 /* expungeStaleEntriesMethod */
            aload 8 /* threadLocalMap */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 1972
            aload 0 /* this */
            aload 8 /* threadLocalMap */
            aload 5 /* tableField */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks:(Ljava/lang/Object;Ljava/lang/reflect/Field;)V
        end local 8 // java.lang.Object threadLocalMap
        23: .line 1957
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 7 /* i */
            aload 1 /* threads */
            arraylength
            if_icmplt 14
        end local 7 // int i
        end local 6 // java.lang.reflect.Method expungeStaleEntriesMethod
        end local 5 // java.lang.reflect.Field tableField
        end local 4 // java.lang.Class tlmClass
        end local 3 // java.lang.reflect.Field inheritableThreadLocalsField
        end local 2 // java.lang.reflect.Field threadLocalsField
        25: .line 1976
            goto 38
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[]
      StackMap stack: java.lang.Throwable
        26: astore 2 /* t */
        start local 2 // java.lang.Throwable t
        27: .line 1977
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            astore 3 /* jreCompat */
        start local 3 // org.apache.tomcat.util.compat.JreCompat jreCompat
        28: .line 1978
            aload 3 /* jreCompat */
            aload 2 /* t */
            invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
            ifeq 31
        29: .line 1981
            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: .line 1982
            goto 38
        31: .line 1983
      StackMap locals: java.lang.Throwable org.apache.tomcat.util.compat.JreCompat
      StackMap stack:
            aload 2 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        32: .line 1984
            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: .line 1985
            ldc "webappClassLoader.checkThreadLocalsForLeaksFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        34: .line 1986
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        35: .line 1984
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        36: .line 1986
            aload 2 /* t */
        37: .line 1984
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // org.apache.tomcat.util.compat.JreCompat jreCompat
        end local 2 // java.lang.Throwable t
        38: .line 1989
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread[] threads
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Object map
        start local 2 // java.lang.reflect.Field internalTableField
         0: .line 2000
            aload 1 /* map */
            ifnull 69
         1: .line 2001
            aload 2 /* internalTableField */
            aload 1 /* map */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 3 /* table */
        start local 3 // java.lang.Object[] table
         2: .line 2002
            aload 3 /* table */
            ifnull 69
         3: .line 2003
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         4: goto 68
         5: .line 2004
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 3 /* table */
            iload 4 /* j */
            aaload
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
         6: .line 2005
            aload 5 /* obj */
            ifnull 67
         7: .line 2006
            iconst_0
            istore 6 /* keyLoadedByWebapp */
        start local 6 // boolean keyLoadedByWebapp
         8: .line 2007
            iconst_0
            istore 7 /* valueLoadedByWebapp */
        start local 7 // boolean valueLoadedByWebapp
         9: .line 2009
            aload 5 /* obj */
            checkcast java.lang.ref.Reference
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            astore 8 /* key */
        start local 8 // java.lang.Object key
        10: .line 2010
            aload 0 /* this */
            aload 8 /* key */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 0 /* this */
            aload 8 /* key */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 2011
      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 /* keyLoadedByWebapp */
        12: .line 2015
      StackMap locals:
      StackMap stack:
            aload 5 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "value"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
        13: .line 2014
            astore 9 /* valueField */
        start local 9 // java.lang.reflect.Field valueField
        14: .line 2016
            aload 9 /* valueField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        15: .line 2017
            aload 9 /* valueField */
            aload 5 /* obj */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 10 /* value */
        start local 10 // java.lang.Object value
        16: .line 2018
            aload 0 /* this */
            aload 10 /* value */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 17
            aload 0 /* this */
            aload 10 /* value */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 2019
      StackMap locals: java.lang.reflect.Field java.lang.Object
      StackMap stack:
            iconst_1
            istore 7 /* valueLoadedByWebapp */
        18: .line 2021
      StackMap locals:
      StackMap stack:
            iload 6 /* keyLoadedByWebapp */
            ifne 19
            iload 7 /* valueLoadedByWebapp */
            ifeq 67
        19: .line 2022
      StackMap locals:
      StackMap stack:
            iconst_5
            anewarray java.lang.Object
            astore 11 /* args */
        start local 11 // java.lang.Object[] args
        20: .line 2023
            aload 11 /* args */
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        21: .line 2024
            aload 8 /* key */
            ifnull 35
        22: .line 2025
            aload 11 /* args */
            iconst_1
            aload 0 /* this */
            aload 8 /* key */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPrettyClassName:(Ljava/lang/Class;)Ljava/lang/String;
            aastore
        23: .line 2027
            aload 11 /* args */
            iconst_2
            aload 8 /* key */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aastore
        24: .line 2028
            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 /* e */
        start local 12 // java.lang.Exception e
        26: .line 2029
            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: .line 2030
            ldc "webappClassLoader.checkThreadLocalsForLeaks.badKey"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        28: .line 2031
            aload 11 /* args */
            iconst_1
            aaload
            aastore
        29: .line 2029
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        30: .line 2031
            aload 12 /* e */
        31: .line 2029
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        32: .line 2032
            aload 11 /* args */
            iconst_2
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
        33: .line 2033
            ldc "webappClassLoader.checkThreadLocalsForLeaks.unknown"
        34: .line 2032
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        end local 12 // java.lang.Exception e
        35: .line 2036
      StackMap locals:
      StackMap stack:
            aload 10 /* value */
            ifnull 49
        36: .line 2037
            aload 11 /* args */
            iconst_3
            aload 0 /* this */
            aload 10 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPrettyClassName:(Ljava/lang/Class;)Ljava/lang/String;
            aastore
        37: .line 2039
            aload 11 /* args */
            iconst_4
            aload 10 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aastore
        38: .line 2040
            goto 49
      StackMap locals:
      StackMap stack: java.lang.Exception
        39: astore 12 /* e */
        start local 12 // java.lang.Exception e
        40: .line 2041
            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: .line 2042
            ldc "webappClassLoader.checkThreadLocalsForLeaks.badValue"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        42: .line 2043
            aload 11 /* args */
            iconst_3
            aaload
            aastore
        43: .line 2041
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        44: .line 2043
            aload 12 /* e */
        45: .line 2041
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        46: .line 2044
            aload 11 /* args */
            iconst_4
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
        47: .line 2045
            ldc "webappClassLoader.checkThreadLocalsForLeaks.unknown"
        48: .line 2044
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        end local 12 // java.lang.Exception e
        49: .line 2048
      StackMap locals:
      StackMap stack:
            iload 7 /* valueLoadedByWebapp */
            ifeq 55
        50: .line 2049
            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: .line 2050
            ldc "webappClassLoader.checkThreadLocalsForLeaks"
        52: .line 2051
            aload 11 /* args */
        53: .line 2049
            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: .line 2052
            goto 67
      StackMap locals:
      StackMap stack:
        55: aload 10 /* value */
            ifnonnull 62
        56: .line 2053
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 67
        57: .line 2054
            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: .line 2055
            ldc "webappClassLoader.checkThreadLocalsForLeaksNull"
        59: .line 2056
            aload 11 /* args */
        60: .line 2054
            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: .line 2058
            goto 67
        62: .line 2059
      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: .line 2060
            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: .line 2061
            ldc "webappClassLoader.checkThreadLocalsForLeaksNone"
        65: .line 2062
            aload 11 /* args */
        66: .line 2060
            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 // java.lang.Object[] args
        end local 10 // java.lang.Object value
        end local 9 // java.lang.reflect.Field valueField
        end local 8 // java.lang.Object key
        end local 7 // boolean valueLoadedByWebapp
        end local 6 // boolean keyLoadedByWebapp
        end local 5 // java.lang.Object obj
        67: .line 2003
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] int
      StackMap stack:
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        68: iload 4 /* j */
            aload 3 /* table */
            arraylength
            if_icmplt 5
        end local 4 // int j
        end local 3 // java.lang.Object[] table
        69: .line 2070
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.reflect.Field internalTableField
        end local 1 // java.lang.Object map
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Class clazz
         0: .line 2073
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 2074
            aload 2 /* name */
            ifnonnull 3
         2: .line 2075
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* name */
         3: .line 2077
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* name */
            areturn
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class clazz
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Thread thread
         0: .line 2081
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* builder */
        start local 2 // java.lang.StringBuilder builder
         1: .line 2082
            aload 1 /* thread */
            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 /* ste */
        start local 3 // java.lang.StackTraceElement ste
         3: .line 2083
            aload 2 /* builder */
            ldc "\n "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* ste */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.StackTraceElement ste
         4: .line 2082
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 2085
            aload 2 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder builder
        end local 1 // java.lang.Thread thread
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Object o
         0: .line 2094
            aload 1 /* o */
            ifnonnull 2
         1: .line 2095
            iconst_0
            ireturn
         2: .line 2099
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof java.lang.Class
            ifeq 5
         3: .line 2100
            aload 1 /* o */
            checkcast java.lang.Class
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         4: .line 2101
            goto 6
        end local 2 // java.lang.Class clazz
         5: .line 2102
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         6: .line 2105
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         7: .line 2106
            goto 11
         8: .line 2107
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* cl */
            aload 0 /* this */
            if_acmpne 10
         9: .line 2108
            iconst_1
            ireturn
        10: .line 2110
      StackMap locals:
      StackMap stack:
            aload 3 /* cl */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        11: .line 2106
      StackMap locals:
      StackMap stack:
            aload 3 /* cl */
            ifnonnull 8
        12: .line 2113
            aload 1 /* o */
            instanceof java.util.Collection
            ifeq 26
        13: .line 2114
            aload 1 /* o */
            checkcast java.util.Collection
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
        14: .line 2116
            goto 18
        15: .line 2117
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 5 /* entry */
        start local 5 // java.lang.Object entry
        16: .line 2118
            aload 0 /* this */
            aload 5 /* entry */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 2119
            iconst_1
            ireturn
        end local 5 // java.lang.Object entry
        18: .line 2116
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        19: .line 2122
            goto 26
      StackMap locals:
      StackMap stack: java.util.ConcurrentModificationException
        20: astore 5 /* e */
        start local 5 // java.util.ConcurrentModificationException e
        21: .line 2123
            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: .line 2124
            ldc "webappClassLoader.loadedByThisOrChildFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        23: .line 2123
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        24: .line 2125
            aload 5 /* e */
        25: .line 2123
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.util.ConcurrentModificationException e
        end local 4 // java.util.Iterator iter
        26: .line 2128
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.lang.Class clazz
        end local 1 // java.lang.Object o
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2136
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
            astore 1 /* tg */
        start local 1 // java.lang.ThreadGroup tg
         1: .line 2139
            goto 3
         2: .line 2140
      StackMap locals: java.lang.ThreadGroup
      StackMap stack:
            aload 1 /* tg */
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            astore 1 /* tg */
         3: .line 2139
      StackMap locals:
      StackMap stack:
            aload 1 /* tg */
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            ifnonnull 2
         4: .line 2142
            goto 13
      StackMap locals:
      StackMap stack: java.lang.SecurityException
         5: astore 2 /* se */
        start local 2 // java.lang.SecurityException se
         6: .line 2143
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         7: .line 2144
            ldc "webappClassLoader.getThreadGroupError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* tg */
            invokevirtual java.lang.ThreadGroup.getName:()Ljava/lang/String;
            aastore
         8: .line 2143
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         9: .line 2145
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        10: .line 2146
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            aload 3 /* msg */
            aload 2 /* se */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        11: .line 2147
            goto 13
        12: .line 2148
      StackMap locals: java.lang.SecurityException java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            aload 3 /* msg */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        end local 3 // java.lang.String msg
        end local 2 // java.lang.SecurityException se
        13: .line 2152
      StackMap locals:
      StackMap stack:
            aload 1 /* tg */
            invokevirtual java.lang.ThreadGroup.activeCount:()I
            bipush 50
            iadd
            istore 2 /* threadCountGuess */
        start local 2 // int threadCountGuess
        14: .line 2153
            iload 2 /* threadCountGuess */
            anewarray java.lang.Thread
            astore 3 /* threads */
        start local 3 // java.lang.Thread[] threads
        15: .line 2154
            aload 1 /* tg */
            aload 3 /* threads */
            invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;)I
            istore 4 /* threadCountActual */
        start local 4 // int threadCountActual
        16: .line 2156
            goto 20
        17: .line 2157
      StackMap locals: int java.lang.Thread[] int
      StackMap stack:
            iload 2 /* threadCountGuess */
            iconst_2
            imul
            istore 2 /* threadCountGuess */
        18: .line 2158
            iload 2 /* threadCountGuess */
            anewarray java.lang.Thread
            astore 3 /* threads */
        19: .line 2161
            aload 1 /* tg */
            aload 3 /* threads */
            invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;)I
            istore 4 /* threadCountActual */
        20: .line 2156
      StackMap locals:
      StackMap stack:
            iload 4 /* threadCountActual */
            iload 2 /* threadCountGuess */
            if_icmpeq 17
        21: .line 2164
            aload 3 /* threads */
            areturn
        end local 4 // int threadCountActual
        end local 3 // java.lang.Thread[] threads
        end local 2 // int threadCountGuess
        end local 1 // java.lang.ThreadGroup tg
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2177
            ldc "sun.rmi.transport.Target"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
         1: .line 2176
            astore 1 /* objectTargetClass */
        start local 1 // java.lang.Class objectTargetClass
         2: .line 2178
            aload 1 /* objectTargetClass */
            ldc "ccl"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* cclField */
        start local 2 // java.lang.reflect.Field cclField
         3: .line 2179
            aload 2 /* cclField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         4: .line 2181
            aload 1 /* objectTargetClass */
            ldc "stub"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 3 /* stubField */
        start local 3 // java.lang.reflect.Field stubField
         5: .line 2182
            aload 3 /* stubField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         6: .line 2185
            ldc "sun.rmi.transport.ObjectTable"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* objectTableClass */
        start local 4 // java.lang.Class objectTableClass
         7: .line 2186
            aload 4 /* objectTableClass */
            ldc "objTable"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 5 /* objTableField */
        start local 5 // java.lang.reflect.Field objTableField
         8: .line 2187
            aload 5 /* objTableField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         9: .line 2188
            aload 5 /* objTableField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 6 /* objTable */
        start local 6 // java.lang.Object objTable
        10: .line 2189
            aload 6 /* objTable */
            ifnonnull 12
        11: .line 2190
            return
        12: .line 2192
      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 /* objectTableClass */
            ldc "tableLock"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 7 /* tableLockField */
        start local 7 // java.lang.reflect.Field tableLockField
        13: .line 2193
            aload 7 /* tableLockField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        14: .line 2194
            aload 7 /* tableLockField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* tableLock */
        start local 8 // java.lang.Object tableLock
        15: .line 2196
            aload 8 /* tableLock */
            dup
            astore 9
            monitorenter
        16: .line 2198
            aload 6 /* objTable */
            instanceof java.util.Map
            ifeq 28
        17: .line 2199
            aload 6 /* objTable */
            checkcast java.util.Map
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10 /* iter */
        start local 10 // java.util.Iterator iter
        18: .line 2200
            goto 27
        19: .line 2201
      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 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 11 /* obj */
        start local 11 // java.lang.Object obj
        20: .line 2202
            aload 2 /* cclField */
            aload 11 /* obj */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 12 /* cclObject */
        start local 12 // java.lang.Object cclObject
        21: .line 2203
            aload 0 /* this */
            aload 12 /* cclObject */
            if_acmpne 27
        22: .line 2204
            aload 10 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        23: .line 2205
            aload 3 /* stubField */
            aload 11 /* obj */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 13 /* stubObject */
        start local 13 // java.lang.Object stubObject
        24: .line 2206
            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: .line 2207
            aload 13 /* stubObject */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 13 /* stubObject */
            aastore
        26: .line 2206
            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 // java.lang.Object stubObject
        end local 12 // java.lang.Object cclObject
        end local 11 // java.lang.Object obj
        27: .line 2200
      StackMap locals:
      StackMap stack:
            aload 10 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        end local 10 // java.util.Iterator iter
        28: .line 2213
      StackMap locals:
      StackMap stack:
            aload 4 /* objectTableClass */
            ldc "implTable"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 10 /* implTableField */
        start local 10 // java.lang.reflect.Field implTableField
        29: .line 2214
            aload 10 /* implTableField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        30: .line 2215
            aload 10 /* implTableField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* implTable */
        start local 11 // java.lang.Object implTable
        31: .line 2216
            aload 11 /* implTable */
            ifnonnull 34
        32: .line 2217
            aload 9
            monitorexit
        33: return
        34: .line 2221
      StackMap locals: java.lang.reflect.Field java.lang.Object
      StackMap stack:
            aload 11 /* implTable */
            instanceof java.util.Map
            ifeq 42
        35: .line 2222
            aload 11 /* implTable */
            checkcast java.util.Map
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12 /* iter */
        start local 12 // java.util.Iterator iter
        36: .line 2223
            goto 41
        37: .line 2224
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 12 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 13 /* obj */
        start local 13 // java.lang.Object obj
        38: .line 2225
            aload 2 /* cclField */
            aload 13 /* obj */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 14 /* cclObject */
        start local 14 // java.lang.Object cclObject
        39: .line 2226
            aload 0 /* this */
            aload 14 /* cclObject */
            if_acmpne 41
        40: .line 2227
            aload 12 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 14 // java.lang.Object cclObject
        end local 13 // java.lang.Object obj
        41: .line 2223
      StackMap locals:
      StackMap stack:
            aload 12 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        end local 12 // java.util.Iterator iter
        end local 11 // java.lang.Object implTable
        end local 10 // java.lang.reflect.Field implTableField
        42: .line 2196
      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 // java.lang.Object tableLock
        end local 7 // java.lang.reflect.Field tableLockField
        end local 6 // java.lang.Object objTable
        end local 5 // java.lang.reflect.Field objTableField
        end local 4 // java.lang.Class objectTableClass
        end local 3 // java.lang.reflect.Field stubField
        end local 2 // java.lang.reflect.Field cclField
        end local 1 // java.lang.Class objectTargetClass
        46: .line 2232
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase
      StackMap stack: java.lang.ClassNotFoundException
            astore 1 /* e */
        start local 1 // java.lang.ClassNotFoundException e
        47: .line 2233
            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: .line 2234
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        49: .line 2233
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        50: .line 2234
            aload 1 /* e */
        51: .line 2233
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.ClassNotFoundException e
        52: goto 66
        53: .line 2236
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        54: .line 2237
            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: .line 2238
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        56: .line 2237
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        57: .line 2238
            aload 1 /* e */
        58: .line 2237
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
        59: goto 66
        60: .line 2239
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        61: .line 2240
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            astore 2 /* jreCompat */
        start local 2 // org.apache.tomcat.util.compat.JreCompat jreCompat
        62: .line 2241
            aload 2 /* jreCompat */
            aload 1 /* e */
            invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
            ifeq 65
        63: .line 2244
            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: .line 2245
            goto 66
        65: .line 2247
      StackMap locals: java.lang.Exception org.apache.tomcat.util.compat.JreCompat
      StackMap stack:
            aload 1 /* e */
            athrow
        end local 2 // org.apache.tomcat.util.compat.JreCompat jreCompat
        end local 1 // java.lang.Exception e
        66: .line 2250
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2255
            ldc "java.io.ObjectStreamClass$Caches"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         1: .line 2256
            aload 0 /* this */
            aload 1 /* clazz */
            ldc "localDescs"
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearCache:(Ljava/lang/Class;Ljava/lang/String;)V
         2: .line 2257
            aload 0 /* this */
            aload 1 /* clazz */
            ldc "reflectors"
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearCache:(Ljava/lang/Class;Ljava/lang/String;)V
        end local 1 // java.lang.Class clazz
         3: .line 2258
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 1 /* e */
        start local 1 // java.lang.Exception e
         5: .line 2259
            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: .line 2260
            ldc "webappClassLoader.clearObjectStreamClassCachesFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
         7: .line 2259
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         8: .line 2260
            aload 1 /* e */
         9: .line 2259
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
        10: .line 2262
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.Class target
        start local 2 // java.lang.String mapName
         0: .line 2267
            aload 1 /* target */
            aload 2 /* mapName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 3 /* f */
        start local 3 // java.lang.reflect.Field f
         1: .line 2268
            aload 3 /* f */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         2: .line 2269
            aload 3 /* f */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 4 /* map */
        start local 4 // java.util.Map map
         3: .line 2270
            aload 4 /* map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5 /* keys */
        start local 5 // java.util.Iterator keys
         4: .line 2271
            goto 10
         5: .line 2272
      StackMap locals: java.lang.reflect.Field java.util.Map java.util.Iterator
      StackMap stack:
            aload 5 /* keys */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* key */
        start local 6 // java.lang.Object key
         6: .line 2273
            aload 6 /* key */
            instanceof java.lang.ref.Reference
            ifeq 10
         7: .line 2274
            aload 6 /* key */
            checkcast java.lang.ref.Reference
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            astore 7 /* clazz */
        start local 7 // java.lang.Object clazz
         8: .line 2275
            aload 0 /* this */
            aload 7 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 2276
            aload 5 /* keys */
            invokeinterface java.util.Iterator.remove:()V
        end local 7 // java.lang.Object clazz
        end local 6 // java.lang.Object key
        10: .line 2271
      StackMap locals:
      StackMap stack:
            aload 5 /* keys */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 2280
            return
        end local 5 // java.util.Iterator keys
        end local 4 // java.util.Map map
        end local 3 // java.lang.reflect.Field f
        end local 2 // java.lang.String mapName
        end local 1 // java.lang.Class target
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 2292
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         1: .line 2294
            aload 1 /* name */
            ifnonnull 3
         2: .line 2295
            aconst_null
            areturn
         3: .line 2297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         4: .line 2299
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            aload 2 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.loader.ResourceEntry
            astore 3 /* entry */
        start local 3 // org.apache.catalina.loader.ResourceEntry entry
         5: .line 2300
            aconst_null
            astore 4 /* resource */
        start local 4 // org.apache.catalina.WebResource resource
         6: .line 2302
            aload 3 /* entry */
            ifnonnull 22
         7: .line 2303
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 2 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 4 /* resource */
         8: .line 2305
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 10
         9: .line 2306
            aconst_null
            areturn
        10: .line 2309
      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 /* entry */
        11: .line 2310
            aload 3 /* entry */
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
            putfield org.apache.catalina.loader.ResourceEntry.lastModified:J
        12: .line 2313
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        13: .line 2317
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            aload 2 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.loader.ResourceEntry
            astore 6 /* entry2 */
        start local 6 // org.apache.catalina.loader.ResourceEntry entry2
        14: .line 2318
            aload 6 /* entry2 */
            ifnonnull 17
        15: .line 2319
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            aload 2 /* path */
            aload 3 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 2320
            goto 18
        17: .line 2321
      StackMap locals: java.util.Map org.apache.catalina.loader.ResourceEntry
      StackMap stack:
            aload 6 /* entry2 */
            astore 3 /* entry */
        end local 6 // org.apache.catalina.loader.ResourceEntry entry2
        18: .line 2313
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 5
            monitorexit
        21: athrow
        22: .line 2326
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
            astore 5 /* clazz */
        start local 5 // java.lang.Class clazz
        23: .line 2327
            aload 5 /* clazz */
            ifnull 25
        24: .line 2328
            aload 5 /* clazz */
            areturn
        25: .line 2330
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifeq 26
            aload 0 /* this */
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 0 /* this */
            aload 1 /* name */
            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: .line 2331
            aload 3 /* entry */
            getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
            astore 5 /* clazz */
        29: .line 2332
            aload 5 /* clazz */
            ifnull 32
        30: .line 2333
            aload 5 /* clazz */
            aload 6
            monitorexit
        31: areturn
        32: .line 2335
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* resource */
            ifnonnull 34
        33: .line 2336
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            aload 2 /* path */
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 4 /* resource */
        34: .line 2339
      StackMap locals:
      StackMap stack:
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 37
        35: .line 2340
            aload 6
            monitorexit
        36: aconst_null
            areturn
        37: .line 2343
      StackMap locals:
      StackMap stack:
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getContent:()[B
            astore 7 /* binaryContent */
        start local 7 // byte[] binaryContent
        38: .line 2344
            aload 7 /* binaryContent */
            ifnonnull 41
        39: .line 2347
            aload 6
            monitorexit
        40: aconst_null
            areturn
        41: .line 2349
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getManifest:()Ljava/util/jar/Manifest;
            astore 8 /* manifest */
        start local 8 // java.util.jar.Manifest manifest
        42: .line 2350
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getCodeBase:()Ljava/net/URL;
            astore 9 /* codeBase */
        start local 9 // java.net.URL codeBase
        43: .line 2351
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getCertificates:()[Ljava/security/cert/Certificate;
            astore 10 /* certificates */
        start local 10 // java.security.cert.Certificate[] certificates
        44: .line 2353
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 59
        45: .line 2359
            aload 2 /* path */
            iconst_1
            aload 2 /* path */
            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 /* internalName */
        start local 11 // java.lang.String internalName
        46: .line 2361
            aload 0 /* this */
            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 /* transformer */
        start local 12 // java.lang.instrument.ClassFileTransformer transformer
        48: .line 2363
            aload 12 /* transformer */
        49: .line 2364
            aload 0 /* this */
            aload 11 /* internalName */
            aconst_null
            aconst_null
            aload 7 /* binaryContent */
        50: .line 2363
            invokeinterface java.lang.instrument.ClassFileTransformer.transform:(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/Class;Ljava/security/ProtectionDomain;[B)[B
            astore 14 /* transformed */
        start local 14 // byte[] transformed
        51: .line 2365
            aload 14 /* transformed */
            ifnull 58
        52: .line 2366
            aload 14 /* transformed */
            astore 7 /* binaryContent */
        end local 14 // byte[] transformed
        53: .line 2368
            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 /* e */
        start local 14 // java.lang.instrument.IllegalClassFormatException e
        55: .line 2369
            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 /* name */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 14 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        56: .line 2370
            aload 6
            monitorexit
        57: aconst_null
            areturn
        end local 14 // java.lang.instrument.IllegalClassFormatException e
        end local 12 // java.lang.instrument.ClassFileTransformer transformer
        58: .line 2361
      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 // java.lang.String internalName
        59: .line 2376
      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 /* packageName */
        start local 11 // java.lang.String packageName
        60: .line 2377
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 12 /* pos */
        start local 12 // int pos
        61: .line 2378
            iload 12 /* pos */
            iconst_m1
            if_icmpeq 63
        62: .line 2379
            aload 1 /* name */
            iconst_0
            iload 12 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* packageName */
        63: .line 2381
      StackMap locals: java.lang.String int
      StackMap stack:
            aconst_null
            astore 13 /* pkg */
        start local 13 // java.lang.Package pkg
        64: .line 2383
            aload 11 /* packageName */
            ifnull 74
        65: .line 2384
            aload 0 /* this */
            aload 11 /* packageName */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
            astore 13 /* pkg */
        66: .line 2386
            aload 13 /* pkg */
            ifnonnull 74
        67: .line 2388
            aload 8 /* manifest */
            ifnonnull 70
        68: .line 2389
            aload 0 /* this */
            aload 11 /* packageName */
            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: .line 2390
            goto 73
        70: .line 2391
      StackMap locals: java.lang.Package
      StackMap stack:
            aload 0 /* this */
            aload 11 /* packageName */
            aload 8 /* manifest */
            aload 9 /* codeBase */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.definePackage:(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;
            pop
        71: .line 2393
            goto 73
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        72: pop
        73: .line 2396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* packageName */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
            astore 13 /* pkg */
        74: .line 2400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 89
        75: .line 2403
            aload 13 /* pkg */
            ifnull 89
        76: .line 2404
            iconst_1
            istore 14 /* sealCheck */
        start local 14 // boolean sealCheck
        77: .line 2405
            aload 13 /* pkg */
            invokevirtual java.lang.Package.isSealed:()Z
            ifeq 80
        78: .line 2406
            aload 13 /* pkg */
            aload 9 /* codeBase */
            invokevirtual java.lang.Package.isSealed:(Ljava/net/URL;)Z
            istore 14 /* sealCheck */
        79: .line 2407
            goto 83
        80: .line 2408
      StackMap locals: int
      StackMap stack:
            aload 8 /* manifest */
            ifnull 81
            aload 0 /* this */
            aload 11 /* packageName */
            aload 8 /* manifest */
            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 /* sealCheck */
        83: .line 2410
      StackMap locals:
      StackMap stack:
            iload 14 /* sealCheck */
            ifne 89
        84: .line 2411
            new java.lang.SecurityException
            dup
        85: .line 2412
            new java.lang.StringBuilder
            dup
            ldc "Sealing violation loading "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            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: .line 2413
            aload 11 /* packageName */
            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: .line 2412
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        88: .line 2411
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // boolean sealCheck
        89: .line 2419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 7 /* binaryContent */
            iconst_0
        90: .line 2420
            aload 7 /* binaryContent */
            arraylength
            new java.security.CodeSource
            dup
            aload 9 /* codeBase */
            aload 10 /* certificates */
            invokespecial java.security.CodeSource.<init>:(Ljava/net/URL;[Ljava/security/cert/Certificate;)V
        91: .line 2419
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.defineClass:(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;
            astore 5 /* clazz */
        92: .line 2421
            goto 101
      StackMap locals:
      StackMap stack: java.lang.UnsupportedClassVersionError
        93: astore 14 /* ucve */
        start local 14 // java.lang.UnsupportedClassVersionError ucve
        94: .line 2422
            new java.lang.UnsupportedClassVersionError
            dup
        95: .line 2423
            new java.lang.StringBuilder
            dup
            aload 14 /* ucve */
            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: .line 2424
            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: .line 2425
            aload 1 /* name */
            aastore
        98: .line 2424
            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: .line 2423
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       100: .line 2422
            invokespecial java.lang.UnsupportedClassVersionError.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // java.lang.UnsupportedClassVersionError ucve
       101: .line 2427
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            aload 5 /* clazz */
            putfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
        end local 13 // java.lang.Package pkg
        end local 12 // int pos
        end local 11 // java.lang.String packageName
        end local 10 // java.security.cert.Certificate[] certificates
        end local 9 // java.net.URL codeBase
        end local 8 // java.util.jar.Manifest manifest
        end local 7 // byte[] binaryContent
       102: .line 2330
            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: .line 2430
      StackMap locals:
      StackMap stack:
            aload 5 /* clazz */
            areturn
        end local 5 // java.lang.Class clazz
        end local 4 // org.apache.catalina.WebResource resource
        end local 3 // org.apache.catalina.loader.ResourceEntry entry
        end local 2 // java.lang.String path
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String binaryName
        start local 2 // boolean withLeadingSlash
         0: .line 2436
            new java.lang.StringBuilder
            dup
            bipush 7
            aload 1 /* binaryName */
            invokevirtual java.lang.String.length:()I
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 3 /* path */
        start local 3 // java.lang.StringBuilder path
         1: .line 2437
            iload 2 /* withLeadingSlash */
            ifeq 3
         2: .line 2438
            aload 3 /* path */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 2440
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* path */
            aload 1 /* binaryName */
            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: .line 2441
            aload 3 /* path */
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 2442
            aload 3 /* path */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder path
        end local 2 // boolean withLeadingSlash
        end local 1 // java.lang.String binaryName
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 2447
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 2448
            aload 1 /* name */
            areturn
         2: .line 2450
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
         3: .line 2451
            iconst_1
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            iadd
         4: .line 2450
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* path */
        start local 2 // java.lang.StringBuilder path
         5: .line 2452
            aload 2 /* path */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 2453
            aload 2 /* path */
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2454
            aload 2 /* path */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder path
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
        start local 2 // java.util.jar.Manifest man
         0: .line 2468
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            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 /* path */
        start local 3 // java.lang.String path
         1: .line 2469
            aload 2 /* man */
            aload 3 /* path */
            invokevirtual java.util.jar.Manifest.getAttributes:(Ljava/lang/String;)Ljava/util/jar/Attributes;
            astore 4 /* attr */
        start local 4 // java.util.jar.Attributes attr
         2: .line 2470
            aconst_null
            astore 5 /* sealed */
        start local 5 // java.lang.String sealed
         3: .line 2471
            aload 4 /* attr */
            ifnull 5
         4: .line 2472
            aload 4 /* attr */
            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 /* sealed */
         5: .line 2474
      StackMap locals: java.lang.String java.util.jar.Attributes java.lang.String
      StackMap stack:
            aload 5 /* sealed */
            ifnonnull 8
         6: .line 2475
            aload 2 /* man */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            dup
            astore 4 /* attr */
            ifnull 8
         7: .line 2476
            aload 4 /* attr */
            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 /* sealed */
         8: .line 2479
      StackMap locals:
      StackMap stack:
            ldc "true"
            aload 5 /* sealed */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        end local 5 // java.lang.String sealed
        end local 4 // java.util.jar.Attributes attr
        end local 3 // java.lang.String path
        end local 2 // java.util.jar.Manifest man
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
         0: .line 2494
            aload 0 /* this */
            aload 1 /* name */
            iconst_1
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.binaryNameToPath:(Ljava/lang/String;Z)Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         1: .line 2496
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            aload 2 /* path */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.loader.ResourceEntry
            astore 3 /* entry */
        start local 3 // org.apache.catalina.loader.ResourceEntry entry
         2: .line 2497
            aload 3 /* entry */
            ifnull 4
         3: .line 2498
            aload 3 /* entry */
            getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
            areturn
         4: .line 2500
      StackMap locals: java.lang.String org.apache.catalina.loader.ResourceEntry
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.apache.catalina.loader.ResourceEntry entry
        end local 2 // java.lang.String path
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2513
            invokestatic java.security.Policy.getPolicy:()Ljava/security/Policy;
            astore 1 /* policy */
        start local 1 // java.security.Policy policy
         1: .line 2514
            aload 1 /* policy */
            invokevirtual java.security.Policy.refresh:()V
        end local 1 // java.security.Policy policy
         2: .line 2515
            goto 4
      StackMap locals:
      StackMap stack: java.security.AccessControlException
         3: pop
         4: .line 2520
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.lang.String name
        start local 2 // boolean isClassName
         0: .line 2533
            aload 1 /* name */
            ifnonnull 2
         1: .line 2534
            iconst_0
            ireturn
         2: .line 2537
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "javax"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
         3: .line 2539
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_5
            if_icmpne 5
         4: .line 2540
            iconst_0
            ireturn
         5: .line 2542
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_5
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
         6: .line 2543
            iload 2 /* isClassName */
            ifeq 14
            iload 3 /* ch */
            bipush 46
            if_icmpne 14
         7: .line 2545
            aload 1 /* name */
            ldc "servlet.jsp.jstl."
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 9
         8: .line 2546
            iconst_0
            ireturn
         9: .line 2548
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            ldc "el."
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 13
        10: .line 2549
            aload 1 /* name */
            ldc "servlet."
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 13
        11: .line 2550
            aload 1 /* name */
            ldc "websocket."
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 13
        12: .line 2551
            aload 1 /* name */
            ldc "security.auth.message."
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 50
        13: .line 2552
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        14: .line 2554
      StackMap locals:
      StackMap stack:
            iload 2 /* isClassName */
            ifne 50
            iload 3 /* ch */
            bipush 47
            if_icmpne 50
        15: .line 2556
            aload 1 /* name */
            ldc "servlet/jsp/jstl/"
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 17
        16: .line 2557
            iconst_0
            ireturn
        17: .line 2559
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "el/"
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 21
        18: .line 2560
            aload 1 /* name */
            ldc "servlet/"
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 21
        19: .line 2561
            aload 1 /* name */
            ldc "websocket/"
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 21
        20: .line 2562
            aload 1 /* name */
            ldc "security/auth/message/"
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 50
        21: .line 2563
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // char ch
        22: .line 2566
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "org"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 50
        23: .line 2568
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmpne 25
        24: .line 2569
            iconst_0
            ireturn
        25: .line 2571
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_3
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
        26: .line 2572
            iload 2 /* isClassName */
            ifeq 38
            iload 3 /* ch */
            bipush 46
            if_icmpne 38
        27: .line 2574
            aload 1 /* name */
            ldc "apache."
            iconst_4
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 50
        28: .line 2576
            aload 1 /* name */
            ldc "tomcat.jdbc."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 30
        29: .line 2577
            iconst_0
            ireturn
        30: .line 2579
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            ldc "el."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 37
        31: .line 2580
            aload 1 /* name */
            ldc "catalina."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 37
        32: .line 2581
            aload 1 /* name */
            ldc "jasper."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 37
        33: .line 2582
            aload 1 /* name */
            ldc "juli."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 37
        34: .line 2583
            aload 1 /* name */
            ldc "tomcat."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 37
        35: .line 2584
            aload 1 /* name */
            ldc "naming."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 37
        36: .line 2585
            aload 1 /* name */
            ldc "coyote."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 50
        37: .line 2586
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        38: .line 2589
      StackMap locals:
      StackMap stack:
            iload 2 /* isClassName */
            ifne 50
            iload 3 /* ch */
            bipush 47
            if_icmpne 50
        39: .line 2591
            aload 1 /* name */
            ldc "apache/"
            iconst_4
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 50
        40: .line 2593
            aload 1 /* name */
            ldc "tomcat/jdbc/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 42
        41: .line 2594
            iconst_0
            ireturn
        42: .line 2596
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "el/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 49
        43: .line 2597
            aload 1 /* name */
            ldc "catalina/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 49
        44: .line 2598
            aload 1 /* name */
            ldc "jasper/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 49
        45: .line 2599
            aload 1 /* name */
            ldc "juli/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 49
        46: .line 2600
            aload 1 /* name */
            ldc "tomcat/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 49
        47: .line 2601
            aload 1 /* name */
            ldc "naming/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 49
        48: .line 2602
            aload 1 /* name */
            ldc "coyote/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 50
        49: .line 2603
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // char ch
        50: .line 2608
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean isClassName
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
        start local 1 // java.net.URL url
         0: .line 2614
            aload 0 /* this */
            aload 1 /* url */
            invokespecial java.net.URLClassLoader.addURL:(Ljava/net/URL;)V
         1: .line 2615
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
         2: .line 2616
            return
        end local 1 // java.net.URL url
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2621
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2627
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            ifnull 4
         1: .line 2628
            aload 0 /* this */
            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 /* host */
        start local 1 // org.apache.catalina.Container host
         2: .line 2629
            aload 1 /* host */
            ifnull 4
         3: .line 2630
            aload 1 /* host */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            areturn
        end local 1 // org.apache.catalina.Container host
         4: .line 2633
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2639
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            ifnull 6
         1: .line 2640
            aload 0 /* this */
            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 /* host */
        start local 1 // org.apache.catalina.Container host
         2: .line 2641
            aload 1 /* host */
            ifnull 6
         3: .line 2642
            aload 1 /* host */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            astore 2 /* engine */
        start local 2 // org.apache.catalina.Container engine
         4: .line 2643
            aload 2 /* engine */
            ifnull 6
         5: .line 2644
            aload 2 /* engine */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            areturn
        end local 2 // org.apache.catalina.Container engine
        end local 1 // org.apache.catalina.Container host
         6: .line 2648
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      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 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 2654
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 3
         1: .line 2655
            new org.apache.catalina.loader.WebappClassLoaderBase$PrivilegedHasLoggingConfig
            dup
            aload 0 /* this */
            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 /* result */
        start local 1 // java.lang.Boolean result
         2: .line 2656
            aload 1 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.Boolean result
         3: .line 2658
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 // org.apache.catalina.loader.WebappClassLoaderBase this
      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