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 197
            ldc Lorg/apache/catalina/loader/WebappClassLoaderBase;
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
            putstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            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 208
            aload 0 /* this */
            iconst_0
            anewarray java.net.URL
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;)V
         1: .line 272
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         2: .line 282
            aload 0 /* this */
         3: .line 283
            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 295
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         5: .line 298
            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 305
            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 312
            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 341
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
         9: .line 352
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
        10: .line 359
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
        11: .line 368
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
        12: .line 378
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
        13: .line 384
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
        14: .line 390
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
        15: .line 396
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
        16: .line 405
            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 413
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
        18: .line 419
            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 422
            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 210
            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 211
            aload 1 /* p */
            ifnonnull 23
        22: .line 212
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* p */
        23: .line 214
      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 216
            ldc Ljava/lang/String;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* j */
        start local 2 // java.lang.ClassLoader j
        25: .line 217
            aload 2 /* j */
            ifnonnull 30
        26: .line 218
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* j */
        27: .line 219
            goto 29
        28: .line 220
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 2 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 2 /* j */
        29: .line 219
      StackMap locals:
      StackMap stack:
            aload 2 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            ifnonnull 28
        30: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* j */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
        31: .line 225
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
        32: .line 226
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 34
        33: .line 227
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.refreshPolicy:()V
        34: .line 229
      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 243
            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 272
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         2: .line 282
            aload 0 /* this */
         3: .line 283
            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 295
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         5: .line 298
            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 305
            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 312
            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 341
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
         9: .line 352
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
        10: .line 359
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
        11: .line 368
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
        12: .line 378
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
        13: .line 384
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
        14: .line 390
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
        15: .line 396
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
        16: .line 405
            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 413
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
        18: .line 419
            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 422
            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 245
            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 246
            aload 2 /* p */
            ifnonnull 23
        22: .line 247
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* p */
        23: .line 249
      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 251
            ldc Ljava/lang/String;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* j */
        start local 3 // java.lang.ClassLoader j
        25: .line 252
            aload 3 /* j */
            ifnonnull 30
        26: .line 253
            invokestatic org.apache.catalina.loader.WebappClassLoaderBase.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* j */
        27: .line 254
            goto 29
        28: .line 255
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 3 /* j */
        29: .line 254
      StackMap locals:
      StackMap stack:
            aload 3 /* j */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            ifnonnull 28
        30: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* j */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
        31: .line 260
            aload 0 /* this */
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            putfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
        32: .line 261
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 34
        33: .line 262
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.refreshPolicy:()V
        34: .line 264
      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 431
            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 441
            aload 0 /* this */
            aload 1 /* resources */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         1: .line 442
            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 449
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            ifnonnull 2
         1: .line 450
            ldc "Unknown"
            areturn
         2: .line 452
      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 463
            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 481
            aload 0 /* this */
            iload 1 /* delegate */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         1: .line 482
            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 492
            aload 1 /* url */
            ifnonnull 2
         1: .line 493
            return
         2: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 28
         3: .line 496
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            astore 2 /* protocol */
        start local 2 // java.lang.String protocol
         4: .line 497
            ldc "file"
            aload 2 /* protocol */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 24
         5: .line 502
            aload 1 /* url */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            astore 3 /* uri */
        start local 3 // java.net.URI uri
         6: .line 503
            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 504
            aload 4 /* f */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
         8: .line 505
            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 506
            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 507
            ldc "webappClassLoader.addPermissionNoCanonicalFile"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 508
            aload 1 /* url */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            aastore
        13: .line 506
            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 509
            return
        start local 3 // java.net.URI uri
        start local 4 // java.io.File f
        start local 5 // java.lang.String path
        15: .line 511
      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 513
            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 514
            goto 28
      StackMap locals:
      StackMap stack:
        18: aload 4 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 28
        19: .line 515
            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 516
            aload 0 /* this */
            new java.io.FilePermission
            dup
        21: .line 517
            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 516
            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 521
            goto 28
        24: .line 523
      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 524
            ldc "webappClassLoader.addPermissionNoProtocol"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        26: .line 525
            aload 2 /* protocol */
            aastore
            dup
            iconst_1
            aload 1 /* url */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            aastore
        27: .line 523
            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 528
      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 537
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 2
            aload 1 /* permission */
            ifnull 2
         1: .line 538
            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 540
      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 544
            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 549
            aload 0 /* this */
            iload 1 /* clearReferencesRmiTargets */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
         1: .line 550
            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 557
            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 568
            aload 0 /* this */
            iload 1 /* clearReferencesStopThreads */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
         1: .line 569
            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 576
            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 587
            aload 0 /* this */
            iload 1 /* clearReferencesStopTimerThreads */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
         1: .line 588
            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 595
            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 606
            aload 0 /* this */
         1: .line 607
            iload 1 /* clearReferencesLogFactoryRelease */
         2: .line 606
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
         3: .line 608
            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 616
            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 628
            aload 0 /* this */
         1: .line 629
            iload 1 /* clearReferencesHttpClientKeepAliveThread */
         2: .line 628
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
         3: .line 630
            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 634
            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 640
            aload 0 /* this */
            iload 1 /* clearReferencesObjectStreamClassCaches */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:Z
         1: .line 641
            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 645
            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 650
            aload 0 /* this */
            iload 1 /* clearReferencesThreadLocals */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreadLocals:Z
         1: .line 651
            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 655
            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 660
            aload 0 /* this */
            iload 1 /* skipMemoryLeakChecksOnJvmShutdown */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
         1: .line 661
            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 676
            aload 1 /* transformer */
            ifnonnull 4
         1: .line 677
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 678
            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 677
            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 681
      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 683
            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 684
            aload 1 /* transformer */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
         7: .line 683
            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 685
            return
         9: .line 687
      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 689
            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 690
            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 704
            aload 1 /* transformer */
            ifnonnull 2
         1: .line 705
            return
         2: .line 708
      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 709
            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 710
            aload 1 /* transformer */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
         5: .line 709
            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 712
      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 715
            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 716
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.delegate:Z
         2: .line 717
            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 718
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
         4: .line 719
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
         5: .line 720
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
         6: .line 721
            aload 1 /* base */
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
            putfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
         7: .line 722
            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 723
            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 724
            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 725
            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 734
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 735
            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 737
      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 738
            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 739
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         6: .line 740
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
         7: .line 739
            invokeinterface org.apache.catalina.WebResourceRoot.getClassLoaderResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
         8: .line 740
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
         9: .line 739
            lstore 5 /* lastModified */
        start local 5 // long lastModified
        10: .line 741
            lload 5 /* lastModified */
            lload 3 /* cachedLastModified */
            lcmp
            ifeq 18
        11: .line 742
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 17
        12: .line 743
            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 744
            aload 1 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            aastore
            dup
            iconst_1
        14: .line 745
            new java.util.Date
            dup
            lload 3 /* cachedLastModified */
            invokespecial java.util.Date.<init>:(J)V
            aastore
            dup
            iconst_2
        15: .line 746
            new java.util.Date
            dup
            lload 5 /* lastModified */
            invokespecial java.util.Date.<init>:(J)V
            aastore
        16: .line 743
            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 747
      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 737
      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 752
            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 755
            iconst_0
            istore 2 /* jarCount */
        start local 2 // int jarCount
        21: .line 756
            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 757
            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 758
            iinc 2 /* jarCount */ 1
        25: .line 759
            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 760
            aload 7 /* recordedLastModified */
            ifnonnull 31
        27: .line 762
            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 763
            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 762
            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 764
            iconst_1
            ireturn
        31: .line 766
      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 768
            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 769
            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 768
            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 770
            iconst_1
            ireturn
        end local 7 // java.lang.Long recordedLastModified
        end local 3 // org.apache.catalina.WebResource jar
        36: .line 756
      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 775
            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 776
            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 777
            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 776
            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 778
            iconst_1
            ireturn
        43: .line 783
      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 790
            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 791
            aload 1 /* sb */
            ldc "\r\n  context: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 792
            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 793
            aload 1 /* sb */
            ldc "\r\n  delegate: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 794
            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 795
            aload 1 /* sb */
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 796
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.parent:Ljava/lang/ClassLoader;
            ifnull 10
         7: .line 797
            aload 1 /* sb */
            ldc "----------> Parent Classloader:\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 798
            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 799
            aload 1 /* sb */
            ldc "\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 801
      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 802
            aload 1 /* sb */
            ldc "----------> Class file transformers:\r\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 803
            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 804
            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 803
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 807
      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 817
            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 831
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 832
            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 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading:(Ljava/lang/String;)V
         3: .line 837
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 14
         4: .line 838
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* i */
        start local 2 // int i
         5: .line 839
            iload 2 /* i */
            iflt 14
         6: .line 841
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 8
         7: .line 842
            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 843
      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 844
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 3 /* se */
        start local 3 // java.lang.Exception se
        11: .line 845
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 13
        12: .line 846
            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 847
      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 854
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
        15: .line 856
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 17
        16: .line 857
            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 859
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 22
        18: .line 861
            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 860
            astore 3 /* dp */
        start local 3 // java.security.PrivilegedAction dp
        20: .line 862
            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 863
            goto 35
        22: .line 864
      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 866
            goto 35
      StackMap locals:
      StackMap stack: java.security.AccessControlException
        24: astore 3 /* ace */
        start local 3 // java.security.AccessControlException ace
        25: .line 867
            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 868
            aload 3 /* ace */
            invokevirtual java.security.AccessControlException.getMessage:()Ljava/lang/String;
            aastore
        27: .line 867
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        28: .line 868
            aload 3 /* ace */
        29: .line 867
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        30: .line 869
            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 870
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        32: .line 871
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 34
        33: .line 872
            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 873
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.lang.RuntimeException e
        35: .line 875
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            ifnonnull 49
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
            ifeq 49
        36: .line 877
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* clazz */
        37: .line 878
            goto 49
      StackMap locals:
      StackMap stack: java.security.AccessControlException
        38: astore 3 /* ace */
        start local 3 // java.security.AccessControlException ace
        39: .line 879
            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 880
            aload 3 /* ace */
            invokevirtual java.security.AccessControlException.getMessage:()Ljava/lang/String;
            aastore
        41: .line 879
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        42: .line 880
            aload 3 /* ace */
        43: .line 879
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        44: .line 881
            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 882
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
        46: .line 883
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 48
        47: .line 884
            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 885
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.lang.RuntimeException e
        49: .line 888
      StackMap locals:
      StackMap stack:
            aload 2 /* clazz */
            ifnonnull 57
        50: .line 889
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 52
        51: .line 890
            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 891
      StackMap locals:
      StackMap stack:
            new java.lang.ClassNotFoundException
            dup
            aload 1 /* name */
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        53: .line 893
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* e */
        start local 3 // java.lang.ClassNotFoundException e
        54: .line 894
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 56
        55: .line 895
            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 896
      StackMap locals: java.lang.ClassNotFoundException
      StackMap stack:
            aload 3 /* e */
            athrow
        end local 3 // java.lang.ClassNotFoundException e
        57: .line 900
      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 901
            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 903
      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 905
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 64
        61: .line 907
            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 906
            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 908
            goto 65
        end local 3 // java.lang.ClassLoader cl
        64: .line 909
      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 911
      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 913
      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 928
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 929
            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 931
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 933
            aconst_null
            astore 2 /* url */
        start local 2 // java.net.URL url
         4: .line 935
            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 937
            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 938
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 9
         7: .line 939
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            astore 2 /* url */
         8: .line 940
            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 943
      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 944
            aload 0 /* this */
            aload 1 /* name */
            invokespecial java.net.URLClassLoader.findResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* url */
        11: .line 947
      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 948
            aload 2 /* url */
            ifnull 14
        13: .line 949
            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 951
      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 953
      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 958
            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 959
            return
         2: .line 961
      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 962
            aload 3 /* entry */
            aload 2 /* resource */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
            putfield org.apache.catalina.loader.ResourceEntry.lastModified:J
         4: .line 963
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            dup
            astore 4
            monitorenter
         5: .line 964
            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 963
            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 966
      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 981
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 982
            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 984
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 986
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.LinkedHashSet result
         4: .line 988
            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 990
            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 991
            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 992
            aload 5 /* webResource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 10
         9: .line 993
            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 991
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        11: iload 6
            iload 7
            if_icmplt 7
        12: .line 998
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
            ifeq 17
        13: .line 999
            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 1000
            goto 16
        15: .line 1001
      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 1000
      StackMap locals:
      StackMap stack:
            aload 5 /* otherResourcePaths */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 15
        end local 5 // java.util.Enumeration otherResourcePaths
        17: .line 1005
      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 1034
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 1035
            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 1037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 1039
            aconst_null
            astore 2 /* url */
        start local 2 // java.net.URL url
         4: .line 1041
            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 1044
            iload 3 /* delegateFirst */
            ifeq 15
         8: .line 1045
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 1046
            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 1047
      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 1048
            aload 2 /* url */
            ifnull 15
        12: .line 1049
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 1050
            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 1051
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        15: .line 1056
      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 1057
            aload 2 /* url */
            ifnull 20
        17: .line 1058
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 19
        18: .line 1059
            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 1060
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        20: .line 1064
      StackMap locals:
      StackMap stack:
            iload 3 /* delegateFirst */
            ifne 26
        21: .line 1065
            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 1066
            aload 2 /* url */
            ifnull 26
        23: .line 1067
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 25
        24: .line 1068
            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 1069
      StackMap locals:
      StackMap stack:
            aload 2 /* url */
            areturn
        26: .line 1074
      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 1075
            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 1076
      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 1084
            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 1085
            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 1089
            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 1091
            iload 4 /* delegateFirst */
            ifeq 7
         6: .line 1092
            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 1094
      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 1111
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 1112
            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 1114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         3: .line 1116
            aconst_null
            astore 2 /* stream */
        start local 2 // java.io.InputStream stream
         4: .line 1118
            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 1121
            iload 3 /* delegateFirst */
            ifeq 15
         8: .line 1122
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 10
         9: .line 1123
            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 1124
      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 1125
            aload 2 /* stream */
            ifnull 15
        12: .line 1126
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 14
        13: .line 1127
            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 1128
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            areturn
        15: .line 1133
      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 1134
            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 1135
      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 1136
            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 1137
            aload 5 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifeq 22
        20: .line 1138
            aload 5 /* resource */
            invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
            astore 2 /* stream */
        21: .line 1139
            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 1142
      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 1143
            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 1144
            aload 6 /* url */
            ifnull 28
        25: .line 1145
            aload 6 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 2 /* stream */
        end local 6 // java.net.URL url
        26: .line 1148
            goto 28
      StackMap locals:
      StackMap stack: java.io.IOException
        27: pop
        28: .line 1151
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            ifnull 32
        29: .line 1152
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 31
        30: .line 1153
            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 1154
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            areturn
        32: .line 1158
      StackMap locals:
      StackMap stack:
            iload 3 /* delegateFirst */
            ifne 40
        33: .line 1159
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 35
        34: .line 1160
            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 1161
      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 1162
            aload 2 /* stream */
            ifnull 40
        37: .line 1163
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 39
        38: .line 1164
            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 1165
      StackMap locals:
      StackMap stack:
            aload 2 /* stream */
            areturn
        40: .line 1170
      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 1171
            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 1172
      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 1187
            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 1219
            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 1220
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 1221
            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 1222
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         6: .line 1225
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading:(Ljava/lang/String;)V
         7: .line 1228
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.findLoadedClass0:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
         8: .line 1229
            aload 4 /* clazz */
            ifnull 15
         9: .line 1230
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 11
        10: .line 1231
            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 1232
      StackMap locals: java.lang.Class
      StackMap stack:
            iload 2 /* resolve */
            ifeq 13
        12: .line 1233
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        13: .line 1234
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            aload 3
            monitorexit
        14: areturn
        15: .line 1238
      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 1239
            aload 4 /* clazz */
            ifnull 25
        19: .line 1240
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 21
        20: .line 1241
            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 1242
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 23
        22: .line 1243
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        23: .line 1244
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
            aload 3
            monitorexit
        24: areturn
        25: .line 1250
      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 1252
            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 1266
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 31
        28: .line 1267
            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 1268
            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 1269
            goto 32
        end local 8 // java.net.URL url
        31: .line 1270
      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 1272
      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 1273
            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 1275
            aload 8 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        38: .line 1279
            iconst_1
            istore 7 /* tryLoadingFromJavaseLoader */
        end local 8 // java.lang.Throwable t
        start local 7 // boolean tryLoadingFromJavaseLoader
        39: .line 1282
      StackMap locals: int
      StackMap stack:
            iload 7 /* tryLoadingFromJavaseLoader */
            ifeq 48
        40: .line 1284
            aload 6 /* javaseLoader */
            aload 1 /* name */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        41: .line 1285
            aload 4 /* clazz */
            ifnull 48
        42: .line 1286
            iload 2 /* resolve */
            ifeq 44
        43: .line 1287
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        44: .line 1288
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        45: aload 3
            monitorexit
        46: areturn
        47: .line 1290
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        48: .line 1296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 57
        49: .line 1297
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 8 /* i */
        start local 8 // int i
        50: .line 1298
            iload 8 /* i */
            iflt 57
        51: .line 1300
            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 1301
            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 1302
            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 1303
            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 1304
            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 1309
      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 1312
            iload 8 /* delegateLoad */
            ifeq 73
        61: .line 1313
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 63
        62: .line 1314
            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 1316
      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 1317
            aload 4 /* clazz */
            ifnull 73
        65: .line 1318
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 67
        66: .line 1319
            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 1320
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 69
        68: .line 1321
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        69: .line 1322
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        70: aload 3
            monitorexit
        71: areturn
        72: .line 1324
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        73: .line 1330
      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 1331
            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 1333
      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 1334
            aload 4 /* clazz */
            ifnull 85
        77: .line 1335
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 79
        78: .line 1336
            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 1337
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 81
        80: .line 1338
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        81: .line 1339
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        82: aload 3
            monitorexit
        83: areturn
        84: .line 1341
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        85: .line 1346
      StackMap locals:
      StackMap stack:
            iload 8 /* delegateLoad */
            ifne 98
        86: .line 1347
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 88
        87: .line 1348
            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 1350
      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 1351
            aload 4 /* clazz */
            ifnull 98
        90: .line 1352
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 92
        91: .line 1353
            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 1354
      StackMap locals:
      StackMap stack:
            iload 2 /* resolve */
            ifeq 94
        93: .line 1355
            aload 0 /* this */
            aload 4 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.resolveClass:(Ljava/lang/Class;)V
        94: .line 1356
      StackMap locals:
      StackMap stack:
            aload 4 /* clazz */
        95: aload 3
            monitorexit
        96: areturn
        97: .line 1358
      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 1219
      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 1364
      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 1372
            aload 0 /* this */
            aload 1 /* className */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         1: .line 1373
            goto 4
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         2: astore 2 /* ise */
        start local 2 // java.lang.IllegalStateException ise
         3: .line 1374
            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 1376
      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 1382
            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 1383
            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 1384
            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 1385
            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 1386
            aload 3 /* ise */
            athrow
        end local 3 // java.lang.IllegalStateException ise
        end local 2 // java.lang.String msg
         5: .line 1388
      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 1400
            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 1402
            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 1403
            aload 0 /* this */
            aload 1 /* codeSource */
            invokespecial java.net.URLClassLoader.getPermissions:(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;
            astore 3 /* pc */
         4: .line 1404
            aload 3 /* pc */
            ifnull 10
         5: .line 1405
            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 1406
            aload 3 /* pc */
            aload 4 /* p */
            invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
        end local 4 // java.security.Permission p
         8: .line 1405
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 1408
            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 1411
      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 1417
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifne 2
         1: .line 1418
            iconst_1
            ireturn
         2: .line 1420
      StackMap locals:
      StackMap stack:
            invokestatic java.security.Policy.getPolicy:()Ljava/security/Policy;
            astore 2 /* currentPolicy */
        start local 2 // java.security.Policy currentPolicy
         3: .line 1421
            aload 2 /* currentPolicy */
            ifnull 9
         4: .line 1422
            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 1423
            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 1424
            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 1425
            aload 5 /* pc */
            aload 1 /* permission */
            invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
            ifeq 9
         8: .line 1426
            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 1429
      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 1445
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.ArrayList result
         1: .line 1446
            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 1447
            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 1448
            aload 1 /* result */
            iconst_0
            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 1463
            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 1472
            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 1484
            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 1494
            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 1503
            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 1509
            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 1510
            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 1521
            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 1523
            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 1524
            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 1525
            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 1526
            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 1524
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 3
         8: .line 1529
            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 1530
            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 1531
            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 1532
            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 1533
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
        14: .line 1534
            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 1533
            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 1530
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 10
        18: .line 1538
            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 1539
            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 1550
            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 1554
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferences:()V
         2: .line 1556
            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 1558
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         4: .line 1559
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.jarModificationTimes:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         5: .line 1560
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
         6: .line 1562
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.permissionList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         7: .line 1563
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.loaderPC:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         8: .line 1565
            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 1566
            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 1571
            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 1574
            aload 0 /* this */
            invokespecial java.net.URLClassLoader.close:()V
         2: .line 1575
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         4: .line 1576
            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 1578
      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 1579
            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 1585
            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 1589
            aload 1 /* classLoader */
            ifnonnull 4
         1: .line 1590
            new java.lang.IllegalArgumentException
            dup
         2: .line 1591
            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 1590
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classLoader */
            putfield org.apache.catalina.loader.WebappClassLoaderBase.javaseClassLoader:Ljava/lang/ClassLoader;
         5: .line 1594
            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 1602
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.skipMemoryLeakChecksOnJvmShutdown:Z
            ifeq 8
         1: .line 1603
            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 1608
            new java.lang.Thread
            dup
            invokespecial java.lang.Thread.<init>:()V
            astore 1 /* dummyHook */
        start local 1 // java.lang.Thread dummyHook
         3: .line 1609
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 1 /* dummyHook */
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
         4: .line 1610
            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 1611
            goto 8
      StackMap locals:
      StackMap stack: java.lang.IllegalStateException
         6: pop
         7: .line 1612
            return
         8: .line 1616
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.tomcat.util.compat.JreCompat.isGraalAvailable:()Z
            ifne 10
         9: .line 1618
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc:()V
        10: .line 1622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads:()V
        11: .line 1625
            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 1626
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesObjectStreamClassCaches:()V
        13: .line 1630
      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 1631
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalsForLeaks:()V
        15: .line 1635
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:Z
            ifeq 17
        16: .line 1636
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesRmiTargets:()V
        17: .line 1640
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.tomcat.util.IntrospectionUtils.clear:()V
        18: .line 1643
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesLogFactoryRelease:Z
            ifeq 20
        19: .line 1644
            aload 0 /* this */
            invokestatic org.apache.juli.logging.LogFactory.release:(Ljava/lang/ClassLoader;)V
        20: .line 1648
      StackMap locals:
      StackMap stack:
            invokestatic java.beans.Introspector.flushCaches:()V
        21: .line 1651
            aload 0 /* this */
            invokestatic org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.release:(Ljava/lang/ClassLoader;)V
        22: .line 1652
            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 1676
            sipush 2048
            newarray 8
            astore 1 /* classBytes */
        start local 1 // byte[] classBytes
         1: .line 1677
            iconst_0
            istore 2 /* offset */
        start local 2 // int offset
         2: .line 1678
            aconst_null
            astore 3
            aconst_null
            astore 4
         3: aload 0 /* this */
         4: .line 1679
            ldc "org/apache/catalina/loader/JdbcLeakPrevention.class"
         5: .line 1678
            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 1680
            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 1681
            goto 14
         8: .line 1682
      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 1683
            iload 2 /* offset */
            aload 1 /* classBytes */
            arraylength
            if_icmpne 13
        10: .line 1685
            aload 1 /* classBytes */
            arraylength
            iconst_2
            imul
            newarray 8
            astore 7 /* tmp */
        start local 7 // byte[] tmp
        11: .line 1686
            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 1687
            aload 7 /* tmp */
            astore 1 /* classBytes */
        end local 7 // byte[] tmp
        13: .line 1689
      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 1681
      StackMap locals:
      StackMap stack:
            iload 6 /* read */
            iconst_m1
            if_icmpgt 8
        15: .line 1692
            aload 0 /* this */
            ldc "org.apache.catalina.loader.JdbcLeakPrevention"
        16: .line 1693
            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 1692
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
        18: .line 1691
            astore 7 /* lpClass */
        start local 7 // java.lang.Class lpClass
        19: .line 1694
            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 1696
            aload 8 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
        21: .line 1697
            ldc "clearJdbcDriverRegistrations"
            iconst_0
            anewarray java.lang.Class
        22: .line 1696
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        23: .line 1697
            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 1696
            checkcast java.util.List
            astore 9 /* driverNames */
        start local 9 // java.util.List driverNames
        25: .line 1698
            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 1699
            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 1700
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 10 /* name */
            aastore
        29: .line 1699
            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 1698
      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 1702
            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 1704
            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 1705
            aload 4 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        40: .line 1706
            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 1707
            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 1706
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        43: .line 1707
            aload 4 /* t */
        44: .line 1706
            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 1709
      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 1714
            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 1715
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* threadsToStop */
        start local 2 // java.util.List threadsToStop
         2: .line 1718
            aload 1 /* threads */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 66
      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 1719
            aload 3 /* thread */
            ifnull 65
         5: .line 1720
            aload 3 /* thread */
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 7 /* ccl */
        start local 7 // java.lang.ClassLoader ccl
         6: .line 1721
            aload 7 /* ccl */
            aload 0 /* this */
            if_acmpne 65
         7: .line 1723
            aload 3 /* thread */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 9
         8: .line 1724
            goto 65
         9: .line 1727
      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 1730
            aload 3 /* thread */
            invokevirtual java.lang.Thread.getThreadGroup:()Ljava/lang/ThreadGroup;
            astore 9 /* tg */
        start local 9 // java.lang.ThreadGroup tg
        11: .line 1731
            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 1733
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesHttpClientKeepAliveThread:Z
            ifeq 65
        13: .line 1734
            aload 8 /* threadName */
            ldc "Keep-Alive-Timer"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        14: .line 1735
            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 1736
            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 1740
            goto 65
        17: .line 1744
      StackMap locals: java.lang.String java.lang.ThreadGroup
      StackMap stack:
            aload 3 /* thread */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifne 19
        18: .line 1745
            goto 65
        19: .line 1751
      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 1752
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThreads:Z
            ifeq 23
        21: .line 1753
            aload 0 /* this */
            aload 3 /* thread */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopTimerThread:(Ljava/lang/Thread;)V
        22: .line 1754
            goto 65
        23: .line 1757
      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 1758
            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 1759
            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 1758
            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 1760
            goto 31
        28: .line 1761
      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 1762
            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 1761
            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 1767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesStopThreads:Z
            ifne 33
        32: .line 1768
            goto 65
        33: .line 1773
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* usingExecutor */
        start local 10 // boolean usingExecutor
        34: .line 1780
            aconst_null
            astore 11 /* target */
        start local 11 // java.lang.Object target
        35: .line 1781
            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 1783
            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 1784
            aload 16 /* targetField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        39: .line 1785
            aload 16 /* targetField */
            aload 3 /* thread */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* target */
        40: .line 1786
            goto 44
        end local 16 // java.lang.reflect.Field targetField
        41: .line 1787
      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 1781
            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 1794
      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 1795
            aload 11 /* target */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
        46: .line 1796
            ldc "java.util.concurrent.ThreadPoolExecutor.Worker"
        47: .line 1795
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        48: .line 1796
            ifeq 62
        49: .line 1797
            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 1798
            aload 12 /* executorField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        51: .line 1799
            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 1800
            aload 13 /* executor */
            instanceof java.util.concurrent.ThreadPoolExecutor
            ifeq 62
        53: .line 1801
            aload 13 /* executor */
            checkcast java.util.concurrent.ThreadPoolExecutor
            invokevirtual java.util.concurrent.ThreadPoolExecutor.shutdownNow:()Ljava/util/List;
            pop
        54: .line 1802
            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 1805
            goto 62
        56: .line 1806
      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 1807
            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 1808
            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 1807
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        60: .line 1808
            aload 11 /* e */
        61: .line 1807
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Exception e
        62: .line 1814
      StackMap locals:
      StackMap stack:
            iload 10 /* usingExecutor */
            ifne 64
            aload 3 /* thread */
            invokevirtual java.lang.Thread.isInterrupted:()Z
            ifne 64
        63: .line 1815
            aload 3 /* thread */
            invokevirtual java.lang.Thread.interrupt:()V
        64: .line 1822
      StackMap locals:
      StackMap stack:
            aload 2 /* threadsToStop */
            aload 3 /* thread */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        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
        65: .line 1718
      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:
        66: iload 4
            iload 5
            if_icmplt 3
        67: .line 1832
            iconst_0
            istore 3 /* count */
        start local 3 // int count
        68: .line 1833
            aload 2 /* threadsToStop */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 79
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread[] java.util.List int top java.util.Iterator
      StackMap stack:
        69: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Thread
            astore 4 /* t */
        start local 4 // java.lang.Thread t
        70: .line 1834
            goto 76
        71: .line 1836
      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
        72: .line 1837
            goto 75
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        73: pop
        74: .line 1839
            goto 77
        75: .line 1841
      StackMap locals:
      StackMap stack:
            iinc 3 /* count */ 1
        76: .line 1834
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifeq 77
            iload 3 /* count */
            bipush 100
            if_icmplt 71
        77: .line 1843
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual java.lang.Thread.isAlive:()Z
            ifeq 79
        78: .line 1848
            aload 4 /* t */
            invokevirtual java.lang.Thread.stop:()V
        end local 4 // java.lang.Thread t
        79: .line 1833
      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 69
        80: .line 1851
            return
        end local 3 // int count
        end local 2 // java.util.List threadsToStop
        end local 1 // java.lang.Thread[] threads
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   81     0           this  Lorg/apache/catalina/loader/WebappClassLoaderBase;
            1   81     1        threads  [Ljava/lang/Thread;
            2   81     2  threadsToStop  Ljava/util/List<Ljava/lang/Thread;>;
            4   65     3         thread  Ljava/lang/Thread;
            6   65     7            ccl  Ljava/lang/ClassLoader;
           10   65     8     threadName  Ljava/lang/String;
           11   65     9             tg  Ljava/lang/ThreadGroup;
           34   65    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;
           68   81     3          count  I
           70   79     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
          71    72      73  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 1860
            aload 1 /* thread */
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 2 /* elements */
        start local 2 // java.lang.StackTraceElement[] elements
         1: .line 1862
            aload 2 /* elements */
            ifnull 2
            aload 2 /* elements */
            arraylength
            ifne 3
         2: .line 1865
      StackMap locals: java.lang.StackTraceElement[]
      StackMap stack:
            iconst_0
            ireturn
         3: .line 1872
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 12
         5: .line 1873
      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 1874
            ldc "org.apache.catalina.connector.CoyoteAdapter"
         7: .line 1875
            aload 4 /* element */
            invokevirtual java.lang.StackTraceElement.getClassName:()Ljava/lang/String;
         8: .line 1874
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         9: .line 1875
            ifeq 11
        10: .line 1876
            iconst_1
            ireturn
        end local 4 // java.lang.StackTraceElement element
        11: .line 1872
      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 1879
            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 1897
            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 1896
            astore 2 /* newTasksMayBeScheduledField */
        start local 2 // java.lang.reflect.Field newTasksMayBeScheduledField
         2: .line 1898
            aload 2 /* newTasksMayBeScheduledField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         3: .line 1899
            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 1900
            aload 3 /* queueField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         5: .line 1902
            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 1904
            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 1905
            aload 5 /* clearMethod */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         8: .line 1907
            aload 4 /* queue */
            dup
            astore 6
            monitorenter
         9: .line 1908
            aload 2 /* newTasksMayBeScheduledField */
            aload 1 /* thread */
            iconst_0
            invokevirtual java.lang.reflect.Field.setBoolean:(Ljava/lang/Object;Z)V
        10: .line 1909
            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 1912
            aload 4 /* queue */
            invokevirtual java.lang.Object.notifyAll:()V
        12: .line 1907
            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 1915
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Thread
      StackMap stack: java.lang.NoSuchFieldException
            pop
        17: .line 1916
            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 1917
            aload 1 /* thread */
            dup
            astore 3
            monitorenter
        19: .line 1918
            aload 2 /* cancelMethod */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
        20: .line 1919
            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 1917
            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 1923
      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 1924
            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 1923
            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 1926
            goto 38
      StackMap locals:
      StackMap stack: java.lang.Exception
        29: astore 2 /* e */
        start local 2 // java.lang.Exception e
        30: .line 1928
            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 1929
            aload 3 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        32: .line 1930
            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 1931
            ldc "webappClassLoader.stopTimerThreadFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        34: .line 1932
            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 1930
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        36: .line 1932
            aload 3 /* t */
        37: .line 1930
            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 1934
      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=12, args_size=1
        start local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
         0: .line 1937
            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 1943
            ldc Ljava/lang/Thread;
            ldc "threadLocals"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         2: .line 1942
            astore 2 /* threadLocalsField */
        start local 2 // java.lang.reflect.Field threadLocalsField
         3: .line 1944
            aload 2 /* threadLocalsField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         4: .line 1946
            ldc Ljava/lang/Thread;
            ldc "inheritableThreadLocals"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         5: .line 1945
            astore 3 /* inheritableThreadLocalsField */
        start local 3 // java.lang.reflect.Field inheritableThreadLocalsField
         6: .line 1947
            aload 3 /* inheritableThreadLocalsField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         7: .line 1950
            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 1951
            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 1952
            aload 5 /* tableField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        10: .line 1953
            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 1954
            aload 6 /* expungeStaleEntriesMethod */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
        12: .line 1956
            aload 1 /* threads */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 24
      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 top int int java.lang.Thread[]
      StackMap stack:
        13: aload 10
            iload 8
            aaload
            astore 7 /* thread */
        start local 7 // java.lang.Thread thread
        14: .line 1958
            aload 7 /* thread */
            ifnull 23
        15: .line 1961
            aload 2 /* threadLocalsField */
            aload 7 /* thread */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* threadLocalMap */
        start local 11 // java.lang.Object threadLocalMap
        16: .line 1962
            aload 11 /* threadLocalMap */
            ifnull 19
        17: .line 1963
            aload 6 /* expungeStaleEntriesMethod */
            aload 11 /* 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 1964
            aload 0 /* this */
            aload 11 /* threadLocalMap */
            aload 5 /* tableField */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks:(Ljava/lang/Object;Ljava/lang/reflect/Field;)V
        19: .line 1968
      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 java.lang.Thread int int java.lang.Thread[] java.lang.Object
      StackMap stack:
            aload 3 /* inheritableThreadLocalsField */
            aload 7 /* thread */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 11 /* threadLocalMap */
        20: .line 1969
            aload 11 /* threadLocalMap */
            ifnull 23
        21: .line 1970
            aload 6 /* expungeStaleEntriesMethod */
            aload 11 /* 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 1971
            aload 0 /* this */
            aload 11 /* threadLocalMap */
            aload 5 /* tableField */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks:(Ljava/lang/Object;Ljava/lang/reflect/Field;)V
        end local 11 // java.lang.Object threadLocalMap
        end local 7 // java.lang.Thread thread
        23: .line 1956
      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 top int int java.lang.Thread[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        24: iload 8
            iload 9
            if_icmplt 13
        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 1975
            goto 39
      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 1976
            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 1977
            aload 3 /* jreCompat */
            aload 2 /* t */
            invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
            ifeq 32
        29: .line 1980
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.tomcat.util.compat.JreCompat.getModuleName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 4 /* currentModule */
        start local 4 // java.lang.String currentModule
        30: .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"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* currentModule */
            aastore
            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 4 // java.lang.String currentModule
        31: .line 1982
            goto 39
        32: .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
        33: .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;
        34: .line 1985
            ldc "webappClassLoader.checkThreadLocalsForLeaksFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        35: .line 1986
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        36: .line 1984
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        37: .line 1986
            aload 2 /* t */
        38: .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
        39: .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   40     0                          this  Lorg/apache/catalina/loader/WebappClassLoaderBase;
            1   40     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;
           14   23     7                        thread  Ljava/lang/Thread;
           16   23    11                threadLocalMap  Ljava/lang/Object;
           27   39     2                             t  Ljava/lang/Throwable;
           28   39     3                     jreCompat  Lorg/apache/tomcat/util/compat/JreCompat;
           30   31     4                 currentModule  Ljava/lang/String;
      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=15, 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 68
         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 68
         3: .line 2003
            aload 3 /* table */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 67
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         4: aload 7
            iload 5
            aaload
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
         5: .line 2004
            aload 4 /* obj */
            ifnull 66
         6: .line 2005
            iconst_0
            istore 8 /* keyLoadedByWebapp */
        start local 8 // boolean keyLoadedByWebapp
         7: .line 2006
            iconst_0
            istore 9 /* valueLoadedByWebapp */
        start local 9 // boolean valueLoadedByWebapp
         8: .line 2008
            aload 4 /* obj */
            checkcast java.lang.ref.Reference
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            astore 10 /* key */
        start local 10 // java.lang.Object key
         9: .line 2009
            aload 0 /* this */
            aload 10 /* key */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 10
            aload 0 /* this */
            aload 10 /* key */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 2010
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] java.lang.Object int int java.lang.Object[] int int java.lang.Object
      StackMap stack:
            iconst_1
            istore 8 /* keyLoadedByWebapp */
        11: .line 2014
      StackMap locals:
      StackMap stack:
            aload 4 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "value"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
        12: .line 2013
            astore 11 /* valueField */
        start local 11 // java.lang.reflect.Field valueField
        13: .line 2015
            aload 11 /* valueField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        14: .line 2016
            aload 11 /* valueField */
            aload 4 /* obj */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 12 /* value */
        start local 12 // java.lang.Object value
        15: .line 2017
            aload 0 /* this */
            aload 12 /* value */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 16
            aload 0 /* this */
            aload 12 /* value */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 2018
      StackMap locals: java.lang.reflect.Field java.lang.Object
      StackMap stack:
            iconst_1
            istore 9 /* valueLoadedByWebapp */
        17: .line 2020
      StackMap locals:
      StackMap stack:
            iload 8 /* keyLoadedByWebapp */
            ifne 18
            iload 9 /* valueLoadedByWebapp */
            ifeq 66
        18: .line 2021
      StackMap locals:
      StackMap stack:
            iconst_5
            anewarray java.lang.Object
            astore 13 /* args */
        start local 13 // java.lang.Object[] args
        19: .line 2022
            aload 13 /* args */
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        20: .line 2023
            aload 10 /* key */
            ifnull 34
        21: .line 2024
            aload 13 /* args */
            iconst_1
            aload 0 /* this */
            aload 10 /* key */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPrettyClassName:(Ljava/lang/Class;)Ljava/lang/String;
            aastore
        22: .line 2026
            aload 13 /* args */
            iconst_2
            aload 10 /* key */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aastore
        23: .line 2027
            goto 34
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] java.lang.Object int int java.lang.Object[] int int java.lang.Object java.lang.reflect.Field java.lang.Object java.lang.Object[]
      StackMap stack: java.lang.Exception
        24: astore 14 /* e */
        start local 14 // java.lang.Exception e
        25: .line 2028
            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;
        26: .line 2029
            ldc "webappClassLoader.checkThreadLocalsForLeaks.badKey"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        27: .line 2030
            aload 13 /* args */
            iconst_1
            aaload
            aastore
        28: .line 2028
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        29: .line 2030
            aload 14 /* e */
        30: .line 2028
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        31: .line 2031
            aload 13 /* args */
            iconst_2
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
        32: .line 2032
            ldc "webappClassLoader.checkThreadLocalsForLeaks.unknown"
        33: .line 2031
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        end local 14 // java.lang.Exception e
        34: .line 2035
      StackMap locals:
      StackMap stack:
            aload 12 /* value */
            ifnull 48
        35: .line 2036
            aload 13 /* args */
            iconst_3
            aload 0 /* this */
            aload 12 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPrettyClassName:(Ljava/lang/Class;)Ljava/lang/String;
            aastore
        36: .line 2038
            aload 13 /* args */
            iconst_4
            aload 12 /* value */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aastore
        37: .line 2039
            goto 48
      StackMap locals:
      StackMap stack: java.lang.Exception
        38: astore 14 /* e */
        start local 14 // java.lang.Exception e
        39: .line 2040
            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;
        40: .line 2041
            ldc "webappClassLoader.checkThreadLocalsForLeaks.badValue"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        41: .line 2042
            aload 13 /* args */
            iconst_3
            aaload
            aastore
        42: .line 2040
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        43: .line 2042
            aload 14 /* e */
        44: .line 2040
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        45: .line 2043
            aload 13 /* args */
            iconst_4
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
        46: .line 2044
            ldc "webappClassLoader.checkThreadLocalsForLeaks.unknown"
        47: .line 2043
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        end local 14 // java.lang.Exception e
        48: .line 2047
      StackMap locals:
      StackMap stack:
            iload 9 /* valueLoadedByWebapp */
            ifeq 54
        49: .line 2048
            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;
        50: .line 2049
            ldc "webappClassLoader.checkThreadLocalsForLeaks"
        51: .line 2050
            aload 13 /* args */
        52: .line 2048
            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
        53: .line 2051
            goto 66
      StackMap locals:
      StackMap stack:
        54: aload 12 /* value */
            ifnonnull 61
        55: .line 2052
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 66
        56: .line 2053
            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;
        57: .line 2054
            ldc "webappClassLoader.checkThreadLocalsForLeaksNull"
        58: .line 2055
            aload 13 /* args */
        59: .line 2053
            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
        60: .line 2057
            goto 66
        61: .line 2058
      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 66
        62: .line 2059
            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;
        63: .line 2060
            ldc "webappClassLoader.checkThreadLocalsForLeaksNone"
        64: .line 2061
            aload 13 /* args */
        65: .line 2059
            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 13 // java.lang.Object[] args
        end local 12 // java.lang.Object value
        end local 11 // java.lang.reflect.Field valueField
        end local 10 // java.lang.Object key
        end local 9 // boolean valueLoadedByWebapp
        end local 8 // boolean keyLoadedByWebapp
        end local 4 // java.lang.Object obj
        66: .line 2003
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        67: iload 5
            iload 6
            if_icmplt 4
        end local 3 // java.lang.Object[] table
        68: .line 2069
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase java.lang.Object java.lang.reflect.Field
      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   69     0                 this  Lorg/apache/catalina/loader/WebappClassLoaderBase;
            0   69     1                  map  Ljava/lang/Object;
            0   69     2   internalTableField  Ljava/lang/reflect/Field;
            2   68     3                table  [Ljava/lang/Object;
            5   66     4                  obj  Ljava/lang/Object;
            7   66     8    keyLoadedByWebapp  Z
            8   66     9  valueLoadedByWebapp  Z
            9   66    10                  key  Ljava/lang/Object;
           13   66    11           valueField  Ljava/lang/reflect/Field;
           15   66    12                value  Ljava/lang/Object;
           19   66    13                 args  [Ljava/lang/Object;
           25   34    14                    e  Ljava/lang/Exception;
           39   48    14                    e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.Exception
          36    37      38  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 2072
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 2073
            aload 2 /* name */
            ifnonnull 3
         2: .line 2074
            aload 1 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* name */
         3: .line 2076
      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 2080
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* builder */
        start local 2 // java.lang.StringBuilder builder
         1: .line 2081
            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 2082
            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 2081
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 2084
            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 2093
            aload 1 /* o */
            ifnonnull 2
         1: .line 2094
            iconst_0
            ireturn
         2: .line 2098
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof java.lang.Class
            ifeq 5
         3: .line 2099
            aload 1 /* o */
            checkcast java.lang.Class
            astore 2 /* clazz */
        start local 2 // java.lang.Class clazz
         4: .line 2100
            goto 6
        end local 2 // java.lang.Class clazz
         5: .line 2101
      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 2104
      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 2105
            goto 11
         8: .line 2106
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* cl */
            aload 0 /* this */
            if_acmpne 10
         9: .line 2107
            iconst_1
            ireturn
        10: .line 2109
      StackMap locals:
      StackMap stack:
            aload 3 /* cl */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        11: .line 2105
      StackMap locals:
      StackMap stack:
            aload 3 /* cl */
            ifnonnull 8
        12: .line 2112
            aload 1 /* o */
            instanceof java.util.Collection
            ifeq 26
        13: .line 2113
            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 2115
            goto 18
        15: .line 2116
      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 2117
            aload 0 /* this */
            aload 5 /* entry */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 2118
            iconst_1
            ireturn
        end local 5 // java.lang.Object entry
        18: .line 2115
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        19: .line 2121
            goto 26
      StackMap locals:
      StackMap stack: java.util.ConcurrentModificationException
        20: astore 5 /* e */
        start local 5 // java.util.ConcurrentModificationException e
        21: .line 2122
            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 2123
            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 2122
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        24: .line 2124
            aload 5 /* e */
        25: .line 2122
            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 2127
      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 2135
            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 2138
            goto 3
         2: .line 2139
      StackMap locals: java.lang.ThreadGroup
      StackMap stack:
            aload 1 /* tg */
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            astore 1 /* tg */
         3: .line 2138
      StackMap locals:
      StackMap stack:
            aload 1 /* tg */
            invokevirtual java.lang.ThreadGroup.getParent:()Ljava/lang/ThreadGroup;
            ifnonnull 2
         4: .line 2141
            goto 13
      StackMap locals:
      StackMap stack: java.lang.SecurityException
         5: astore 2 /* se */
        start local 2 // java.lang.SecurityException se
         6: .line 2142
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         7: .line 2143
            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 2142
            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 2144
            getstatic org.apache.catalina.loader.WebappClassLoaderBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        10: .line 2145
            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 2146
            goto 13
        12: .line 2147
      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 2151
      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 2152
            iload 2 /* threadCountGuess */
            anewarray java.lang.Thread
            astore 3 /* threads */
        start local 3 // java.lang.Thread[] threads
        15: .line 2153
            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 2155
            goto 20
        17: .line 2156
      StackMap locals: int java.lang.Thread[] int
      StackMap stack:
            iload 2 /* threadCountGuess */
            iconst_2
            imul
            istore 2 /* threadCountGuess */
        18: .line 2157
            iload 2 /* threadCountGuess */
            anewarray java.lang.Thread
            astore 3 /* threads */
        19: .line 2160
            aload 1 /* tg */
            aload 3 /* threads */
            invokevirtual java.lang.ThreadGroup.enumerate:([Ljava/lang/Thread;)I
            istore 4 /* threadCountActual */
        20: .line 2155
      StackMap locals:
      StackMap stack:
            iload 4 /* threadCountActual */
            iload 2 /* threadCountGuess */
            if_icmpeq 17
        21: .line 2163
            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 2176
            ldc "sun.rmi.transport.Target"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
         1: .line 2175
            astore 1 /* objectTargetClass */
        start local 1 // java.lang.Class objectTargetClass
         2: .line 2177
            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 2178
            aload 2 /* cclField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         4: .line 2180
            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 2181
            aload 3 /* stubField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         6: .line 2184
            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 2185
            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 2186
            aload 5 /* objTableField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         9: .line 2187
            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 2188
            aload 6 /* objTable */
            ifnonnull 12
        11: .line 2189
            return
        12: .line 2191
      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 2192
            aload 7 /* tableLockField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        14: .line 2193
            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 2195
            aload 8 /* tableLock */
            dup
            astore 9
            monitorenter
        16: .line 2197
            aload 6 /* objTable */
            instanceof java.util.Map
            ifeq 28
        17: .line 2198
            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 2199
            goto 27
        19: .line 2200
      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 2201
            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 2202
            aload 0 /* this */
            aload 12 /* cclObject */
            if_acmpne 27
        22: .line 2203
            aload 10 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        23: .line 2204
            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 2205
            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 2206
            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 2205
            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 2199
      StackMap locals:
      StackMap stack:
            aload 10 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        end local 10 // java.util.Iterator iter
        28: .line 2212
      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 2213
            aload 10 /* implTableField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
        30: .line 2214
            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 2215
            aload 11 /* implTable */
            ifnonnull 34
        32: .line 2216
            aload 9
            monitorexit
        33: return
        34: .line 2220
      StackMap locals: java.lang.reflect.Field java.lang.Object
      StackMap stack:
            aload 11 /* implTable */
            instanceof java.util.Map
            ifeq 42
        35: .line 2221
            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 2222
            goto 41
        37: .line 2223
      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 2224
            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 2225
            aload 0 /* this */
            aload 14 /* cclObject */
            if_acmpne 41
        40: .line 2226
            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 2222
      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 2195
      StackMap locals:
      StackMap stack:
            aload 9
            monitorexit
        43: goto 67
      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 2231
      StackMap locals: org.apache.catalina.loader.WebappClassLoaderBase
      StackMap stack: java.lang.ClassNotFoundException
            astore 1 /* e */
        start local 1 // java.lang.ClassNotFoundException e
        47: .line 2232
            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 2233
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        49: .line 2232
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        50: .line 2233
            aload 1 /* e */
        51: .line 2232
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.ClassNotFoundException e
        52: goto 67
        53: .line 2235
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        54: .line 2236
            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 2237
            aload 0 /* this */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getContextName:()Ljava/lang/String;
            aastore
        56: .line 2236
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        57: .line 2237
            aload 1 /* e */
        58: .line 2236
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
        59: goto 67
        60: .line 2238
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        61: .line 2239
            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 2240
            aload 2 /* jreCompat */
            aload 1 /* e */
            invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
            ifeq 66
        63: .line 2243
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.tomcat.util.compat.JreCompat.getModuleName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 3 /* currentModule */
        start local 3 // java.lang.String currentModule
        64: .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"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* currentModule */
            aastore
            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 3 // java.lang.String currentModule
        65: .line 2245
            goto 67
        66: .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
        67: .line 2250
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   68     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   67     1                  e  Ljava/lang/Exception;
           62   67     2          jreCompat  Lorg/apache/tomcat/util/compat/JreCompat;
           64   65     3      currentModule  Ljava/lang/String;
      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=4, 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 18
      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: goto 18
        11: .line 2261
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        12: .line 2262
            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
        13: .line 2263
            aload 2 /* jreCompat */
            aload 1 /* e */
            invokevirtual org.apache.tomcat.util.compat.JreCompat.isInstanceOfInaccessibleObjectException:(Ljava/lang/Throwable;)Z
            ifeq 17
        14: .line 2266
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.tomcat.util.compat.JreCompat.getModuleName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 3 /* currentModule */
        start local 3 // java.lang.String currentModule
        15: .line 2267
            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.addExportsJavaIo"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* currentModule */
            aastore
            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
        16: .line 2268
            return
        end local 3 // java.lang.String currentModule
        17: .line 2271
      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
        18: .line 2274
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.loader.WebappClassLoaderBase this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/apache/catalina/loader/WebappClassLoaderBase;
            1    3     1          clazz  Ljava/lang/Class<*>;
            5   10     1              e  Ljava/lang/Exception;
           12   18     1              e  Ljava/lang/Exception;
           13   18     2      jreCompat  Lorg/apache/tomcat/util/compat/JreCompat;
           15   17     3  currentModule  Ljava/lang/String;
      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
           0     3      11  Class java.lang.Exception

  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 2279
            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 2280
            aload 3 /* f */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         2: .line 2281
            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 2282
            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 2283
            goto 10
         5: .line 2284
      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 2285
            aload 6 /* key */
            instanceof java.lang.ref.Reference
            ifeq 10
         7: .line 2286
            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 2287
            aload 0 /* this */
            aload 7 /* clazz */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.loadedByThisOrChild:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 2288
            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 2283
      StackMap locals:
      StackMap stack:
            aload 5 /* keys */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 2292
            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 2304
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading:(Ljava/lang/String;)V
         1: .line 2306
            aload 1 /* name */
            ifnonnull 3
         2: .line 2307
            aconst_null
            areturn
         3: .line 2309
      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 2311
            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 2312
            aconst_null
            astore 4 /* resource */
        start local 4 // org.apache.catalina.WebResource resource
         6: .line 2314
            aload 3 /* entry */
            ifnonnull 22
         7: .line 2315
            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 2317
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 10
         9: .line 2318
            aconst_null
            areturn
        10: .line 2321
      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 2322
            aload 3 /* entry */
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getLastModified:()J
            putfield org.apache.catalina.loader.ResourceEntry.lastModified:J
        12: .line 2325
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resourceEntries:Ljava/util/Map;
            dup
            astore 5
            monitorenter
        13: .line 2329
            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 2330
            aload 6 /* entry2 */
            ifnonnull 17
        15: .line 2331
            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 2332
            goto 18
        17: .line 2333
      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 2325
      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 2338
      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 2339
            aload 5 /* clazz */
            ifnull 25
        24: .line 2340
            aload 5 /* clazz */
            areturn
        25: .line 2342
      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 2343
            aload 3 /* entry */
            getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
            astore 5 /* clazz */
        29: .line 2344
            aload 5 /* clazz */
            ifnull 32
        30: .line 2345
            aload 5 /* clazz */
            aload 6
            monitorexit
        31: areturn
        32: .line 2347
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* resource */
            ifnonnull 34
        33: .line 2348
            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 2351
      StackMap locals:
      StackMap stack:
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.exists:()Z
            ifne 37
        35: .line 2352
            aload 6
            monitorexit
        36: aconst_null
            areturn
        37: .line 2355
      StackMap locals:
      StackMap stack:
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getContent:()[B
            astore 7 /* binaryContent */
        start local 7 // byte[] binaryContent
        38: .line 2356
            aload 7 /* binaryContent */
            ifnonnull 41
        39: .line 2359
            aload 6
            monitorexit
        40: aconst_null
            areturn
        41: .line 2361
      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 2362
            aload 4 /* resource */
            invokeinterface org.apache.catalina.WebResource.getCodeBase:()Ljava/net/URL;
            astore 9 /* codeBase */
        start local 9 // java.net.URL codeBase
        43: .line 2363
            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 2365
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.transformers:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 59
        45: .line 2371
            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 2373
            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 2375
            aload 12 /* transformer */
        49: .line 2376
            aload 0 /* this */
            aload 11 /* internalName */
            aconst_null
            aconst_null
            aload 7 /* binaryContent */
        50: .line 2375
            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 2377
            aload 14 /* transformed */
            ifnull 58
        52: .line 2378
            aload 14 /* transformed */
            astore 7 /* binaryContent */
        end local 14 // byte[] transformed
        53: .line 2380
            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 2381
            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 2382
            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 2373
      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 2388
      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 2389
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 12 /* pos */
        start local 12 // int pos
        61: .line 2390
            iload 12 /* pos */
            iconst_m1
            if_icmpeq 63
        62: .line 2391
            aload 1 /* name */
            iconst_0
            iload 12 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* packageName */
        63: .line 2393
      StackMap locals: java.lang.String int
      StackMap stack:
            aconst_null
            astore 13 /* pkg */
        start local 13 // java.lang.Package pkg
        64: .line 2395
            aload 11 /* packageName */
            ifnull 74
        65: .line 2396
            aload 0 /* this */
            aload 11 /* packageName */
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.getPackage:(Ljava/lang/String;)Ljava/lang/Package;
            astore 13 /* pkg */
        66: .line 2398
            aload 13 /* pkg */
            ifnonnull 74
        67: .line 2400
            aload 8 /* manifest */
            ifnonnull 70
        68: .line 2401
            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 2402
            goto 73
        70: .line 2403
      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 2405
            goto 73
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        72: pop
        73: .line 2408
      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 2412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.securityManager:Ljava/lang/SecurityManager;
            ifnull 89
        75: .line 2415
            aload 13 /* pkg */
            ifnull 89
        76: .line 2416
            iconst_1
            istore 14 /* sealCheck */
        start local 14 // boolean sealCheck
        77: .line 2417
            aload 13 /* pkg */
            invokevirtual java.lang.Package.isSealed:()Z
            ifeq 80
        78: .line 2418
            aload 13 /* pkg */
            aload 9 /* codeBase */
            invokevirtual java.lang.Package.isSealed:(Ljava/net/URL;)Z
            istore 14 /* sealCheck */
        79: .line 2419
            goto 83
        80: .line 2420
      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 2422
      StackMap locals:
      StackMap stack:
            iload 14 /* sealCheck */
            ifne 89
        84: .line 2423
            new java.lang.SecurityException
            dup
        85: .line 2424
            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 2425
            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 2424
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        88: .line 2423
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // boolean sealCheck
        89: .line 2431
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 7 /* binaryContent */
            iconst_0
        90: .line 2432
            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 2431
            invokevirtual org.apache.catalina.loader.WebappClassLoaderBase.defineClass:(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;
            astore 5 /* clazz */
        92: .line 2433
            goto 101
      StackMap locals:
      StackMap stack: java.lang.UnsupportedClassVersionError
        93: astore 14 /* ucve */
        start local 14 // java.lang.UnsupportedClassVersionError ucve
        94: .line 2434
            new java.lang.UnsupportedClassVersionError
            dup
        95: .line 2435
            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 2436
            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 2437
            aload 1 /* name */
            aastore
        98: .line 2436
            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 2435
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       100: .line 2434
            invokespecial java.lang.UnsupportedClassVersionError.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // java.lang.UnsupportedClassVersionError ucve
       101: .line 2439
      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 2342
            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 2442
      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 2448
            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 2449
            iload 2 /* withLeadingSlash */
            ifeq 3
         2: .line 2450
            aload 3 /* path */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 2452
      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 2453
            aload 3 /* path */
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 2454
            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 2459
            aload 1 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 2460
            aload 1 /* name */
            areturn
         2: .line 2462
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
         3: .line 2463
            iconst_1
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            iadd
         4: .line 2462
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* path */
        start local 2 // java.lang.StringBuilder path
         5: .line 2464
            aload 2 /* path */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 2465
            aload 2 /* path */
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 2466
            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 2480
            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 2481
            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 2482
            aconst_null
            astore 5 /* sealed */
        start local 5 // java.lang.String sealed
         3: .line 2483
            aload 4 /* attr */
            ifnull 5
         4: .line 2484
            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 2486
      StackMap locals: java.lang.String java.util.jar.Attributes java.lang.String
      StackMap stack:
            aload 5 /* sealed */
            ifnonnull 8
         6: .line 2487
            aload 2 /* man */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            dup
            astore 4 /* attr */
            ifnull 8
         7: .line 2488
            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 2491
      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 2506
            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 2508
            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 2509
            aload 3 /* entry */
            ifnull 4
         3: .line 2510
            aload 3 /* entry */
            getfield org.apache.catalina.loader.ResourceEntry.loadedClass:Ljava/lang/Class;
            areturn
         4: .line 2512
      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 2525
            invokestatic java.security.Policy.getPolicy:()Ljava/security/Policy;
            astore 1 /* policy */
        start local 1 // java.security.Policy policy
         1: .line 2526
            aload 1 /* policy */
            invokevirtual java.security.Policy.refresh:()V
        end local 1 // java.security.Policy policy
         2: .line 2527
            goto 4
      StackMap locals:
      StackMap stack: java.security.AccessControlException
         3: pop
         4: .line 2532
      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 2545
            aload 1 /* name */
            ifnonnull 2
         1: .line 2546
            iconst_0
            ireturn
         2: .line 2549
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "jakarta"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 22
         3: .line 2551
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            bipush 7
            if_icmpne 5
         4: .line 2552
            iconst_0
            ireturn
         5: .line 2554
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            bipush 7
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
         6: .line 2555
            iload 2 /* isClassName */
            ifeq 14
            iload 3 /* ch */
            bipush 46
            if_icmpne 14
         7: .line 2557
            aload 1 /* name */
            ldc "servlet.jsp.jstl."
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 9
         8: .line 2558
            iconst_0
            ireturn
         9: .line 2560
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            ldc "el."
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 13
        10: .line 2561
            aload 1 /* name */
            ldc "servlet."
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 13
        11: .line 2562
            aload 1 /* name */
            ldc "websocket."
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 13
        12: .line 2563
            aload 1 /* name */
            ldc "security.auth.message."
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        13: .line 2564
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        14: .line 2566
      StackMap locals:
      StackMap stack:
            iload 2 /* isClassName */
            ifne 60
            iload 3 /* ch */
            bipush 47
            if_icmpne 60
        15: .line 2568
            aload 1 /* name */
            ldc "servlet/jsp/jstl/"
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 17
        16: .line 2569
            iconst_0
            ireturn
        17: .line 2571
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "el/"
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 21
        18: .line 2572
            aload 1 /* name */
            ldc "servlet/"
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 21
        19: .line 2573
            aload 1 /* name */
            ldc "websocket/"
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 21
        20: .line 2574
            aload 1 /* name */
            ldc "security/auth/message/"
            bipush 8
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        21: .line 2575
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // char ch
        22: .line 2578
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "javax"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 32
        23: .line 2580
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_5
            if_icmpne 25
        24: .line 2581
            iconst_0
            ireturn
        25: .line 2583
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_5
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
        26: .line 2584
            iload 2 /* isClassName */
            ifeq 29
            iload 3 /* ch */
            bipush 46
            if_icmpne 29
        27: .line 2586
            aload 1 /* name */
            ldc "websocket."
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        28: .line 2587
            iconst_1
            ireturn
        29: .line 2589
      StackMap locals: int
      StackMap stack:
            iload 2 /* isClassName */
            ifne 60
            iload 3 /* ch */
            bipush 47
            if_icmpne 60
        30: .line 2591
            aload 1 /* name */
            ldc "websocket/"
            bipush 6
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        31: .line 2592
            iconst_1
            ireturn
        end local 3 // char ch
        32: .line 2595
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "org"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 60
        33: .line 2597
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmpne 35
        34: .line 2598
            iconst_0
            ireturn
        35: .line 2600
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            iconst_3
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
        36: .line 2601
            iload 2 /* isClassName */
            ifeq 48
            iload 3 /* ch */
            bipush 46
            if_icmpne 48
        37: .line 2603
            aload 1 /* name */
            ldc "apache."
            iconst_4
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        38: .line 2605
            aload 1 /* name */
            ldc "tomcat.jdbc."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 40
        39: .line 2606
            iconst_0
            ireturn
        40: .line 2608
      StackMap locals: int
      StackMap stack:
            aload 1 /* name */
            ldc "el."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 47
        41: .line 2609
            aload 1 /* name */
            ldc "catalina."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 47
        42: .line 2610
            aload 1 /* name */
            ldc "jasper."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 47
        43: .line 2611
            aload 1 /* name */
            ldc "juli."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 47
        44: .line 2612
            aload 1 /* name */
            ldc "tomcat."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 47
        45: .line 2613
            aload 1 /* name */
            ldc "naming."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 47
        46: .line 2614
            aload 1 /* name */
            ldc "coyote."
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        47: .line 2615
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        48: .line 2618
      StackMap locals:
      StackMap stack:
            iload 2 /* isClassName */
            ifne 60
            iload 3 /* ch */
            bipush 47
            if_icmpne 60
        49: .line 2620
            aload 1 /* name */
            ldc "apache/"
            iconst_4
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        50: .line 2622
            aload 1 /* name */
            ldc "tomcat/jdbc/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 52
        51: .line 2623
            iconst_0
            ireturn
        52: .line 2625
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc "el/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 59
        53: .line 2626
            aload 1 /* name */
            ldc "catalina/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 59
        54: .line 2627
            aload 1 /* name */
            ldc "jasper/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 59
        55: .line 2628
            aload 1 /* name */
            ldc "juli/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 59
        56: .line 2629
            aload 1 /* name */
            ldc "tomcat/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 59
        57: .line 2630
            aload 1 /* name */
            ldc "naming/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifne 59
        58: .line 2631
            aload 1 /* name */
            ldc "coyote/"
            bipush 11
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;I)Z
            ifeq 60
        59: .line 2632
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // char ch
        60: .line 2637
      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   61     0         this  Lorg/apache/catalina/loader/WebappClassLoaderBase;
            0   61     1         name  Ljava/lang/String;
            0   61     2  isClassName  Z
            6   22     3           ch  C
           26   32     3           ch  C
           36   60     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 2643
            aload 0 /* this */
            aload 1 /* url */
            invokespecial java.net.URLClassLoader.addURL:(Ljava/net/URL;)V
         1: .line 2644
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.loader.WebappClassLoaderBase.hasExternalRepositories:Z
         2: .line 2645
            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 2650
            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 2656
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            ifnull 4
         1: .line 2657
            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 2658
            aload 1 /* host */
            ifnull 4
         3: .line 2659
            aload 1 /* host */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            areturn
        end local 1 // org.apache.catalina.Container host
         4: .line 2662
      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 2668
            aload 0 /* this */
            getfield org.apache.catalina.loader.WebappClassLoaderBase.resources:Lorg/apache/catalina/WebResourceRoot;
            ifnull 6
         1: .line 2669
            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 2670
            aload 1 /* host */
            ifnull 6
         3: .line 2671
            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 2672
            aload 2 /* engine */
            ifnull 6
         5: .line 2673
            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 2677
      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 2683
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 3
         1: .line 2684
            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 2685
            aload 1 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.Boolean result
         3: .line 2687
      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