public class org.apache.catalina.startup.ContextConfig implements org.apache.catalina.LifecycleListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.startup.ContextConfig
  super_class: java.lang.Object
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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 static final org.apache.tomcat.util.descriptor.web.LoginConfig DUMMY_LOGIN_CONFIG;
    descriptor: Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected static final java.util.Properties authenticators;
    descriptor: Ljava/util/Properties;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected static long deploymentCount;
    descriptor: J
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static final java.util.Map<org.apache.catalina.Host, org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry> hostWebXmlCache;
    descriptor: Ljava/util/Map;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/apache/catalina/Host;Lorg/apache/catalina/startup/ContextConfig$DefaultWebXmlCacheEntry;>;

  private static final java.util.Set<jakarta.servlet.ServletContainerInitializer> EMPTY_SCI_SET;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;

  protected java.util.Map<java.lang.String, org.apache.catalina.Authenticator> customAuthenticators;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/Authenticator;>;

  protected volatile org.apache.catalina.Context context;
    descriptor: Lorg/apache/catalina/Context;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected java.lang.String defaultWebXml;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected boolean ok;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String originalDocBase;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  private java.io.File antiLockingDocBase;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  protected final java.util.Map<jakarta.servlet.ServletContainerInitializer, java.util.Set<java.lang.Class<?>>> initializerClassMap;
    descriptor: Ljava/util/Map;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Map<Ljakarta/servlet/ServletContainerInitializer;Ljava/util/Set<Ljava/lang/Class<*>;>;>;

  protected final java.util.Map<java.lang.Class<?>, java.util.Set<jakarta.servlet.ServletContainerInitializer>> typeInitializerMap;
    descriptor: Ljava/util/Map;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;>;

  protected boolean handlesTypesAnnotations;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean handlesTypesNonAnnotations;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=0
         0: .line 125
            ldc Lorg/apache/catalina/startup/ContextConfig;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
         1: .line 131
            ldc "org.apache.catalina.startup"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         2: .line 130
            putstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
         3: .line 135
            new org.apache.tomcat.util.descriptor.web.LoginConfig
            dup
            ldc "NONE"
            aconst_null
            aconst_null
            aconst_null
            invokespecial org.apache.tomcat.util.descriptor.web.LoginConfig.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 134
            putstatic org.apache.catalina.startup.ContextConfig.DUMMY_LOGIN_CONFIG:Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
         5: .line 147
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 0 /* props */
        start local 0 // java.util.Properties props
         6: .line 148
            aconst_null
            astore 1
            aconst_null
            astore 2
         7: ldc Lorg/apache/catalina/startup/ContextConfig;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         8: .line 149
            ldc "org/apache/catalina/startup/Authenticators.properties"
         9: .line 148
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 3 /* is */
        start local 3 // java.io.InputStream is
        10: .line 150
            aload 3 /* is */
            ifnull 12
        11: .line 151
            aload 0 /* props */
            aload 3 /* is */
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
        12: .line 153
      StackMap locals: java.util.Properties java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 3 /* is */
            ifnull 20
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 1
            aload 3 /* is */
            ifnull 14
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 3 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        14: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 2
            aload 1
            ifnonnull 16
            aload 2
            astore 1
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 1
            aload 2
            if_acmpeq 17
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 1
            athrow
      StackMap locals: java.util.Properties
      StackMap stack: java.io.IOException
        18: pop
        19: .line 154
            aconst_null
            astore 0 /* props */
        20: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* props */
            putstatic org.apache.catalina.startup.ContextConfig.authenticators:Ljava/util/Properties;
        end local 0 // java.util.Properties props
        21: .line 162
            lconst_0
            putstatic org.apache.catalina.startup.ContextConfig.deploymentCount:J
        22: .line 169
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
        23: .line 168
            putstatic org.apache.catalina.startup.ContextConfig.hostWebXmlCache:Ljava/util/Map;
        24: .line 176
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            putstatic org.apache.catalina.startup.ContextConfig.EMPTY_SCI_SET:Ljava/util/Set;
            return
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            6   21     0  props  Ljava/util/Properties;
           10   14     3     is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
          10    12      13  any
           7    15      15  any
           6    18      18  Class java.io.IOException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 123
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 189
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
         2: .line 195
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
         3: .line 201
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
         4: .line 207
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.ContextConfig.originalDocBase:Ljava/lang/String;
         5: .line 214
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
         6: .line 220
            aload 0 /* this */
         7: .line 221
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
         8: .line 227
            aload 0 /* this */
         9: .line 228
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
        10: .line 234
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.handlesTypesAnnotations:Z
        11: .line 240
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.handlesTypesNonAnnotations:Z
        12: .line 123
            return
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/catalina/startup/ContextConfig;

  public java.lang.String getDefaultWebXml();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 252
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
            ifnonnull 2
         1: .line 253
            aload 0 /* this */
            ldc "conf/web.xml"
            putfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
         2: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/startup/ContextConfig;

  public void setDefaultWebXml(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String path
         0: .line 266
            aload 0 /* this */
            aload 1 /* path */
            putfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
         1: .line 267
            return
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/startup/ContextConfig;
            0    2     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public void setCustomAuthenticators(java.util.Map<java.lang.String, org.apache.catalina.Authenticator>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.util.Map customAuthenticators
         0: .line 278
            aload 0 /* this */
            aload 1 /* customAuthenticators */
            putfield org.apache.catalina.startup.ContextConfig.customAuthenticators:Ljava/util/Map;
         1: .line 279
            return
        end local 1 // java.util.Map customAuthenticators
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/catalina/startup/ContextConfig;
            0    2     1  customAuthenticators  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/Authenticator;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/Authenticator;>;)V
    MethodParameters:
                      Name  Flags
      customAuthenticators  

  public void lifecycleEvent(org.apache.catalina.LifecycleEvent);
    descriptor: (Lorg/apache/catalina/LifecycleEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.catalina.LifecycleEvent event
         0: .line 295
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getLifecycle:()Lorg/apache/catalina/Lifecycle;
            checkcast org.apache.catalina.Context
            putfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
         1: .line 296
            goto 5
      StackMap locals:
      StackMap stack: java.lang.ClassCastException
         2: astore 2 /* e */
        start local 2 // java.lang.ClassCastException e
         3: .line 297
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.cce"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getLifecycle:()Lorg/apache/catalina/Lifecycle;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 2 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 298
            return
        end local 2 // java.lang.ClassCastException e
         5: .line 302
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getType:()Ljava/lang/String;
            ldc "configure_start"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 303
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.configureStart:()V
         7: .line 304
            goto 23
      StackMap locals:
      StackMap stack:
         8: aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getType:()Ljava/lang/String;
            ldc "before_start"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 305
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.beforeStart:()V
        10: .line 306
            goto 23
      StackMap locals:
      StackMap stack:
        11: aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getType:()Ljava/lang/String;
            ldc "after_start"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        12: .line 308
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.originalDocBase:Ljava/lang/String;
            ifnull 23
        13: .line 309
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.originalDocBase:Ljava/lang/String;
            invokeinterface org.apache.catalina.Context.setDocBase:(Ljava/lang/String;)V
        14: .line 311
            goto 23
      StackMap locals:
      StackMap stack:
        15: aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getType:()Ljava/lang/String;
            ldc "configure_stop"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 312
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.configureStop:()V
        17: .line 313
            goto 23
      StackMap locals:
      StackMap stack:
        18: aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getType:()Ljava/lang/String;
            ldc "after_init"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        19: .line 314
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.init:()V
        20: .line 315
            goto 23
      StackMap locals:
      StackMap stack:
        21: aload 1 /* event */
            invokevirtual org.apache.catalina.LifecycleEvent.getType:()Ljava/lang/String;
            ldc "after_destroy"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 316
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.destroy:()V
        23: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.catalina.LifecycleEvent event
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Lorg/apache/catalina/startup/ContextConfig;
            0   24     1  event  Lorg/apache/catalina/LifecycleEvent;
            3    5     2      e  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassCastException
    MethodParameters:
       Name  Flags
      event  

  protected void applicationAnnotationsConfig();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 330
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 1 /* t1 */
        start local 1 // long t1
         1: .line 332
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations:(Lorg/apache/catalina/Context;)V
         2: .line 334
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 3 /* t2 */
        start local 3 // long t2
         3: .line 335
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 7
         4: .line 336
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            lload 3 /* t2 */
            lload 1 /* t1 */
            lsub
         5: .line 337
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getStartupTime:()J
            ladd
         6: .line 336
            invokevirtual org.apache.catalina.core.StandardContext.setStartupTime:(J)V
         7: .line 339
      StackMap locals: long long
      StackMap stack:
            return
        end local 3 // long t2
        end local 1 // long t1
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/catalina/startup/ContextConfig;
            1    8     1    t1  J
            3    8     3    t2  J

  protected void authenticatorConfig();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 348
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLoginConfig:()Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            astore 1 /* loginConfig */
        start local 1 // org.apache.tomcat.util.descriptor.web.LoginConfig loginConfig
         1: .line 349
            aload 1 /* loginConfig */
            ifnonnull 4
         2: .line 351
            getstatic org.apache.catalina.startup.ContextConfig.DUMMY_LOGIN_CONFIG:Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            astore 1 /* loginConfig */
         3: .line 352
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* loginConfig */
            invokeinterface org.apache.catalina.Context.setLoginConfig:(Lorg/apache/tomcat/util/descriptor/web/LoginConfig;)V
         4: .line 356
      StackMap locals: org.apache.tomcat.util.descriptor.web.LoginConfig
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getAuthenticator:()Lorg/apache/catalina/Authenticator;
            ifnull 6
         5: .line 357
            return
         6: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getRealm:()Lorg/apache/catalina/Realm;
            ifnonnull 10
         7: .line 362
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.missingRealm"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
         8: .line 363
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
         9: .line 364
            return
        10: .line 372
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* authenticator */
        start local 2 // org.apache.catalina.Valve authenticator
        11: .line 373
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.customAuthenticators:Ljava/util/Map;
            ifnull 13
        12: .line 374
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.customAuthenticators:Ljava/util/Map;
            aload 1 /* loginConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getAuthMethod:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.Valve
            astore 2 /* authenticator */
        13: .line 377
      StackMap locals: org.apache.catalina.Valve
      StackMap stack:
            aload 2 /* authenticator */
            ifnonnull 37
        14: .line 378
            getstatic org.apache.catalina.startup.ContextConfig.authenticators:Ljava/util/Properties;
            ifnonnull 18
        15: .line 379
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.authenticatorResources"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        16: .line 380
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        17: .line 381
            return
        18: .line 385
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.authenticators:Ljava/util/Properties;
            aload 1 /* loginConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getAuthMethod:()Ljava/lang/String;
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* authenticatorName */
        start local 3 // java.lang.String authenticatorName
        19: .line 386
            aload 3 /* authenticatorName */
            ifnonnull 25
        20: .line 387
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.authenticatorMissing"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        21: .line 388
            aload 1 /* loginConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getAuthMethod:()Ljava/lang/String;
            aastore
        22: .line 387
            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
        23: .line 389
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        24: .line 390
            return
        25: .line 395
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* authenticatorName */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* authenticatorClass */
        start local 4 // java.lang.Class authenticatorClass
        26: .line 396
            aload 4 /* authenticatorClass */
            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;
            checkcast org.apache.catalina.Valve
            astore 2 /* authenticator */
        end local 4 // java.lang.Class authenticatorClass
        27: .line 397
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: astore 4 /* t */
        start local 4 // java.lang.Throwable t
        29: .line 398
            aload 4 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        30: .line 399
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
        31: .line 400
            ldc "contextConfig.authenticatorInstantiate"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        32: .line 401
            aload 3 /* authenticatorName */
            aastore
        33: .line 399
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        34: .line 402
            aload 4 /* t */
        35: .line 399
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        36: .line 403
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        end local 4 // java.lang.Throwable t
        end local 3 // java.lang.String authenticatorName
        37: .line 407
      StackMap locals:
      StackMap stack:
            aload 2 /* authenticator */
            ifnull 46
        38: .line 408
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPipeline:()Lorg/apache/catalina/Pipeline;
            astore 3 /* pipeline */
        start local 3 // org.apache.catalina.Pipeline pipeline
        39: .line 409
            aload 3 /* pipeline */
            ifnull 46
        40: .line 410
            aload 3 /* pipeline */
            aload 2 /* authenticator */
            invokeinterface org.apache.catalina.Pipeline.addValve:(Lorg/apache/catalina/Valve;)V
        41: .line 411
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 46
        42: .line 412
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
        43: .line 413
            ldc "contextConfig.authenticatorConfigured"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        44: .line 414
            aload 1 /* loginConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.LoginConfig.getAuthMethod:()Ljava/lang/String;
            aastore
        45: .line 412
            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 3 // org.apache.catalina.Pipeline pipeline
        46: .line 418
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.catalina.Valve authenticator
        end local 1 // org.apache.tomcat.util.descriptor.web.LoginConfig loginConfig
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   47     0                this  Lorg/apache/catalina/startup/ContextConfig;
            1   47     1         loginConfig  Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
           11   47     2       authenticator  Lorg/apache/catalina/Valve;
           19   37     3   authenticatorName  Ljava/lang/String;
           26   27     4  authenticatorClass  Ljava/lang/Class<*>;
           29   37     4                   t  Ljava/lang/Throwable;
           39   46     3            pipeline  Lorg/apache/catalina/Pipeline;
      Exception table:
        from    to  target  type
          25    27      28  Class java.lang.Throwable

  protected org.apache.tomcat.util.digester.Digester createContextDigester();
    descriptor: ()Lorg/apache/tomcat/util/digester/Digester;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 427
            new org.apache.tomcat.util.digester.Digester
            dup
            invokespecial org.apache.tomcat.util.digester.Digester.<init>:()V
            astore 1 /* digester */
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         1: .line 428
            aload 1 /* digester */
            iconst_0
            invokevirtual org.apache.tomcat.util.digester.Digester.setValidating:(Z)V
         2: .line 429
            aload 1 /* digester */
            iconst_1
            invokevirtual org.apache.tomcat.util.digester.Digester.setRulesValidation:(Z)V
         3: .line 430
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* fakeAttributes */
        start local 2 // java.util.Map fakeAttributes
         4: .line 431
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* objectAttrs */
        start local 3 // java.util.List objectAttrs
         5: .line 432
            aload 3 /* objectAttrs */
            ldc "className"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 433
            aload 2 /* fakeAttributes */
            ldc Ljava/lang/Object;
            aload 3 /* objectAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 435
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* contextAttrs */
        start local 4 // java.util.List contextAttrs
         8: .line 436
            aload 4 /* contextAttrs */
            ldc "source"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 437
            aload 2 /* fakeAttributes */
            ldc Lorg/apache/catalina/core/StandardContext;
            aload 4 /* contextAttrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 438
            aload 1 /* digester */
            aload 2 /* fakeAttributes */
            invokevirtual org.apache.tomcat.util.digester.Digester.setFakeAttributes:(Ljava/util/Map;)V
        11: .line 439
            new org.apache.catalina.startup.ContextRuleSet
            dup
            ldc ""
            iconst_0
            invokespecial org.apache.catalina.startup.ContextRuleSet.<init>:(Ljava/lang/String;Z)V
            astore 5 /* contextRuleSet */
        start local 5 // org.apache.tomcat.util.digester.RuleSet contextRuleSet
        12: .line 440
            aload 1 /* digester */
            aload 5 /* contextRuleSet */
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
        13: .line 441
            new org.apache.catalina.startup.NamingRuleSet
            dup
            ldc "Context/"
            invokespecial org.apache.catalina.startup.NamingRuleSet.<init>:(Ljava/lang/String;)V
            astore 6 /* namingRuleSet */
        start local 6 // org.apache.tomcat.util.digester.RuleSet namingRuleSet
        14: .line 442
            aload 1 /* digester */
            aload 6 /* namingRuleSet */
            invokevirtual org.apache.tomcat.util.digester.Digester.addRuleSet:(Lorg/apache/tomcat/util/digester/RuleSet;)V
        15: .line 443
            aload 1 /* digester */
            areturn
        end local 6 // org.apache.tomcat.util.digester.RuleSet namingRuleSet
        end local 5 // org.apache.tomcat.util.digester.RuleSet contextRuleSet
        end local 4 // java.util.List contextAttrs
        end local 3 // java.util.List objectAttrs
        end local 2 // java.util.Map fakeAttributes
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lorg/apache/catalina/startup/ContextConfig;
            1   16     1        digester  Lorg/apache/tomcat/util/digester/Digester;
            4   16     2  fakeAttributes  Ljava/util/Map<Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/String;>;>;
            5   16     3     objectAttrs  Ljava/util/List<Ljava/lang/String;>;
            8   16     4    contextAttrs  Ljava/util/List<Ljava/lang/String;>;
           12   16     5  contextRuleSet  Lorg/apache/tomcat/util/digester/RuleSet;
           14   16     6   namingRuleSet  Lorg/apache/tomcat/util/digester/RuleSet;

  protected boolean getGenerateCode();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 448
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.Container.getService:(Lorg/apache/catalina/Container;)Lorg/apache/catalina/Service;
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.getCatalina:()Lorg/apache/catalina/startup/Catalina;
            astore 1 /* catalina */
        start local 1 // org.apache.catalina.startup.Catalina catalina
         1: .line 449
            aload 1 /* catalina */
            ifnull 3
         2: .line 450
            aload 1 /* catalina */
            invokevirtual org.apache.catalina.startup.Catalina.getGenerateCode:()Z
            ireturn
         3: .line 452
      StackMap locals: org.apache.catalina.startup.Catalina
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.apache.catalina.startup.Catalina catalina
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/catalina/startup/ContextConfig;
            1    4     1  catalina  Lorg/apache/catalina/startup/Catalina;

  protected boolean getUseGeneratedCode();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 458
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.Container.getService:(Lorg/apache/catalina/Container;)Lorg/apache/catalina/Service;
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.getCatalina:()Lorg/apache/catalina/startup/Catalina;
            astore 1 /* catalina */
        start local 1 // org.apache.catalina.startup.Catalina catalina
         1: .line 459
            aload 1 /* catalina */
            ifnull 3
         2: .line 460
            aload 1 /* catalina */
            invokevirtual org.apache.catalina.startup.Catalina.getUseGeneratedCode:()Z
            ireturn
         3: .line 462
      StackMap locals: org.apache.catalina.startup.Catalina
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.apache.catalina.startup.Catalina catalina
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/catalina/startup/ContextConfig;
            1    4     1  catalina  Lorg/apache/catalina/startup/Catalina;

  protected java.io.File getGeneratedCodeLocation();
    descriptor: ()Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 468
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.Container.getService:(Lorg/apache/catalina/Container;)Lorg/apache/catalina/Service;
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.getCatalina:()Lorg/apache/catalina/startup/Catalina;
            astore 1 /* catalina */
        start local 1 // org.apache.catalina.startup.Catalina catalina
         1: .line 469
            aload 1 /* catalina */
            ifnull 3
         2: .line 470
            aload 1 /* catalina */
            invokevirtual org.apache.catalina.startup.Catalina.getGeneratedCodeLocation:()Ljava/io/File;
            areturn
         3: .line 473
      StackMap locals: org.apache.catalina.startup.Catalina
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.apache.catalina.startup.Catalina catalina
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/catalina/startup/ContextConfig;
            1    4     1  catalina  Lorg/apache/catalina/startup/Catalina;

  protected java.lang.String getGeneratedCodePackage();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 479
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.Container.getService:(Lorg/apache/catalina/Container;)Lorg/apache/catalina/Service;
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
            invokeinterface org.apache.catalina.Server.getCatalina:()Lorg/apache/catalina/startup/Catalina;
            astore 1 /* catalina */
        start local 1 // org.apache.catalina.startup.Catalina catalina
         1: .line 480
            aload 1 /* catalina */
            ifnull 3
         2: .line 481
            aload 1 /* catalina */
            invokevirtual org.apache.catalina.startup.Catalina.getGeneratedCodePackage:()Ljava/lang/String;
            areturn
         3: .line 483
      StackMap locals: org.apache.catalina.startup.Catalina
      StackMap stack:
            ldc "generatedCodePackage"
            areturn
        end local 1 // org.apache.catalina.startup.Catalina catalina
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/catalina/startup/ContextConfig;
            1    4     1  catalina  Lorg/apache/catalina/startup/Catalina;

  protected static java.lang.String getContextXmlPackageName(java.lang.String, org.apache.catalina.Container);
    descriptor: (Ljava/lang/String;Lorg/apache/catalina/Container;)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.lang.String generatedCodePackage
        start local 1 // org.apache.catalina.Container container
         0: .line 489
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* result */
        start local 2 // java.lang.StringBuilder result
         1: .line 490
            aconst_null
            astore 3 /* host */
        start local 3 // org.apache.catalina.Container host
         2: .line 491
            aconst_null
            astore 4 /* engine */
        start local 4 // org.apache.catalina.Container engine
         3: .line 492
            goto 10
         4: .line 493
      StackMap locals: java.lang.StringBuilder org.apache.catalina.Container org.apache.catalina.Container
      StackMap stack:
            aload 1 /* container */
            instanceof org.apache.catalina.Host
            ifeq 7
         5: .line 494
            aload 1 /* container */
            astore 3 /* host */
         6: .line 495
            goto 9
      StackMap locals:
      StackMap stack:
         7: aload 1 /* container */
            instanceof org.apache.catalina.Engine
            ifeq 9
         8: .line 496
            aload 1 /* container */
            astore 4 /* engine */
         9: .line 498
      StackMap locals:
      StackMap stack:
            aload 1 /* container */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            astore 1 /* container */
        10: .line 492
      StackMap locals:
      StackMap stack:
            aload 1 /* container */
            ifnonnull 4
        11: .line 500
            aload 2 /* result */
            aload 0 /* generatedCodePackage */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 501
            aload 4 /* engine */
            ifnull 14
        13: .line 502
            aload 2 /* result */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 504
      StackMap locals:
      StackMap stack:
            aload 4 /* engine */
            ifnull 18
        15: .line 505
            aload 2 /* result */
            aload 4 /* engine */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 506
            aload 3 /* host */
            ifnull 18
        17: .line 507
            aload 2 /* result */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 510
      StackMap locals:
      StackMap stack:
            aload 3 /* host */
            ifnull 20
        19: .line 511
            aload 2 /* result */
            aload 3 /* host */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 513
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // org.apache.catalina.Container engine
        end local 3 // org.apache.catalina.Container host
        end local 2 // java.lang.StringBuilder result
        end local 1 // org.apache.catalina.Container container
        end local 0 // java.lang.String generatedCodePackage
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   21     0  generatedCodePackage  Ljava/lang/String;
            0   21     1             container  Lorg/apache/catalina/Container;
            1   21     2                result  Ljava/lang/StringBuilder;
            2   21     3                  host  Lorg/apache/catalina/Container;
            3   21     4                engine  Lorg/apache/catalina/Container;
    MethodParameters:
                      Name  Flags
      generatedCodePackage  
      container             

  protected java.io.File getContextXmlJavaSource(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String contextXmlPackageName
        start local 2 // java.lang.String contextXmlSimpleClassName
         0: .line 518
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getGeneratedCodeLocation:()Ljava/io/File;
            astore 3 /* generatedSourceFolder */
        start local 3 // java.io.File generatedSourceFolder
         1: .line 519
            aload 1 /* contextXmlPackageName */
            bipush 46
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
         2: .line 520
            new java.io.File
            dup
            aload 3 /* generatedSourceFolder */
            aload 4 /* path */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* packageFolder */
        start local 5 // java.io.File packageFolder
         3: .line 521
            aload 5 /* packageFolder */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 4
            aload 5 /* packageFolder */
            invokevirtual java.io.File.mkdirs:()Z
            ifeq 5
         4: .line 522
      StackMap locals: java.io.File java.lang.String java.io.File
      StackMap stack:
            new java.io.File
            dup
            aload 5 /* packageFolder */
            new java.lang.StringBuilder
            dup
            aload 2 /* contextXmlSimpleClassName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".java"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
         5: .line 524
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.io.File packageFolder
        end local 4 // java.lang.String path
        end local 3 // java.io.File generatedSourceFolder
        end local 2 // java.lang.String contextXmlSimpleClassName
        end local 1 // java.lang.String contextXmlPackageName
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    6     0                       this  Lorg/apache/catalina/startup/ContextConfig;
            0    6     1      contextXmlPackageName  Ljava/lang/String;
            0    6     2  contextXmlSimpleClassName  Ljava/lang/String;
            1    6     3      generatedSourceFolder  Ljava/io/File;
            2    6     4                       path  Ljava/lang/String;
            3    6     5              packageFolder  Ljava/io/File;
    MethodParameters:
                           Name  Flags
      contextXmlPackageName      
      contextXmlSimpleClassName  

  protected void generateClassHeader(org.apache.tomcat.util.digester.Digester, java.lang.String, java.lang.String);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
        start local 2 // java.lang.String packageName
        start local 3 // java.lang.String resourceName
         0: .line 529
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            astore 4 /* code */
        start local 4 // java.lang.StringBuilder code
         1: .line 530
            aload 4 /* code */
            ldc "package "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* packageName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 59
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 531
            aload 4 /* code */
            ldc "public class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* resourceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " implements "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 532
            aload 4 /* code */
            ldc Lorg/apache/catalina/startup/ContextConfig$ContextXml;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 36
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 533
            aload 4 /* code */
            ldc " {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 534
            aload 4 /* code */
            ldc "public void load("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 535
            aload 4 /* code */
            ldc Lorg/apache/catalina/Context;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 536
            aload 1 /* digester */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokevirtual org.apache.tomcat.util.digester.Digester.toVariableName:(Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* contextArgument */
        start local 5 // java.lang.String contextArgument
         8: .line 537
            aload 4 /* code */
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 5 /* contextArgument */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") {"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 539
            aload 1 /* digester */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokevirtual org.apache.tomcat.util.digester.Digester.setKnown:(Ljava/lang/Object;)V
        10: .line 540
            aload 4 /* code */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* digester */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokevirtual org.apache.tomcat.util.digester.Digester.toVariableName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 541
            aload 4 /* code */
            ldc " = ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()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;
            aload 5 /* contextArgument */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 542
            aload 4 /* code */
            bipush 59
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 543
            return
        end local 5 // java.lang.String contextArgument
        end local 4 // java.lang.StringBuilder code
        end local 3 // java.lang.String resourceName
        end local 2 // java.lang.String packageName
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lorg/apache/catalina/startup/ContextConfig;
            0   14     1         digester  Lorg/apache/tomcat/util/digester/Digester;
            0   14     2      packageName  Ljava/lang/String;
            0   14     3     resourceName  Ljava/lang/String;
            1   14     4             code  Ljava/lang/StringBuilder;
            8   14     5  contextArgument  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      digester      
      packageName   
      resourceName  

  protected void generateClassFooter(org.apache.tomcat.util.digester.Digester);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         0: .line 547
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            astore 2 /* code */
        start local 2 // java.lang.StringBuilder code
         1: .line 548
            aload 2 /* code */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 549
            aload 2 /* code */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 550
            return
        end local 2 // java.lang.StringBuilder code
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/catalina/startup/ContextConfig;
            0    4     1  digester  Lorg/apache/tomcat/util/digester/Digester;
            1    4     2      code  Ljava/lang/StringBuilder;
    MethodParameters:
          Name  Flags
      digester  

  protected void contextConfig(org.apache.tomcat.util.digester.Digester);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=18, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
         0: .line 564
            aconst_null
            astore 2 /* defaultContextXml */
        start local 2 // java.lang.String defaultContextXml
         1: .line 566
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getGenerateCode:()Z
            istore 3 /* generateCode */
        start local 3 // boolean generateCode
         2: .line 567
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getUseGeneratedCode:()Z
            istore 4 /* useGeneratedCode */
        start local 4 // boolean useGeneratedCode
         3: .line 569
            aconst_null
            astore 5 /* contextXmlPackageName */
        start local 5 // java.lang.String contextXmlPackageName
         4: .line 570
            aconst_null
            astore 6 /* contextXmlSimpleClassName */
        start local 6 // java.lang.String contextXmlSimpleClassName
         5: .line 571
            aconst_null
            astore 7 /* contextXmlClassName */
        start local 7 // java.lang.String contextXmlClassName
         6: .line 572
            aconst_null
            astore 8 /* contextXmlJavaSource */
        start local 8 // java.io.File contextXmlJavaSource
         7: .line 575
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 9
         8: .line 576
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getDefaultContextXml:()Ljava/lang/String;
            astore 2 /* defaultContextXml */
         9: .line 579
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File
      StackMap stack:
            aload 2 /* defaultContextXml */
            ifnonnull 11
        10: .line 580
            ldc "conf/context.xml"
            astore 2 /* defaultContextXml */
        11: .line 583
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* contextXml */
        start local 9 // org.apache.catalina.startup.ContextConfig$ContextXml contextXml
        12: .line 585
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getOverride:()Z
            ifne 100
        13: .line 587
            iload 4 /* useGeneratedCode */
            ifne 14
            iload 3 /* generateCode */
            ifeq 17
        14: .line 588
      StackMap locals: org.apache.catalina.startup.ContextConfig$ContextXml
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getGeneratedCodePackage:()Ljava/lang/String;
            astore 5 /* contextXmlPackageName */
        15: .line 589
            ldc "ContextXmlDefault"
            astore 6 /* contextXmlSimpleClassName */
        16: .line 590
            new java.lang.StringBuilder
            dup
            aload 5 /* contextXmlPackageName */
            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;
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* contextXmlClassName */
        17: .line 592
      StackMap locals:
      StackMap stack:
            iload 4 /* useGeneratedCode */
            ifeq 19
        18: .line 593
            aload 7 /* contextXmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.loadGeneratedClass:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$ContextXml
            astore 9 /* contextXml */
        19: .line 595
      StackMap locals:
      StackMap stack:
            aload 9 /* contextXml */
            ifnull 23
        20: .line 596
            aload 9 /* contextXml */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.startup.ContextConfig$ContextXml.load:(Lorg/apache/catalina/Context;)V
        21: .line 597
            aconst_null
            astore 9 /* contextXml */
        22: .line 598
            goto 56
      StackMap locals:
      StackMap stack:
        23: iload 4 /* useGeneratedCode */
            ifne 56
        24: .line 599
            aconst_null
            astore 10
            aconst_null
            astore 11
        25: .line 600
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            aload 2 /* defaultContextXml */
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getResource:(Ljava/lang/String;)Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
        26: .line 599
            astore 12 /* contextXmlResource */
        start local 12 // org.apache.tomcat.util.file.ConfigurationSource$Resource contextXmlResource
        27: .line 601
            iload 3 /* generateCode */
            ifeq 31
        28: .line 602
            aload 0 /* this */
            aload 5 /* contextXmlPackageName */
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.getContextXmlJavaSource:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 8 /* contextXmlJavaSource */
        29: .line 603
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.startGeneratingCode:()V
        30: .line 604
            aload 0 /* this */
            aload 1 /* digester */
            aload 5 /* contextXmlPackageName */
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.generateClassHeader:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;Ljava/lang/String;)V
        31: .line 606
      StackMap locals: java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource
      StackMap stack:
            aload 12 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            astore 13 /* defaultContextUrl */
        start local 13 // java.net.URL defaultContextUrl
        32: .line 607
            aload 0 /* this */
            aload 1 /* digester */
            aload 13 /* defaultContextUrl */
            aload 12 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getInputStream:()Ljava/io/InputStream;
            invokevirtual org.apache.catalina.startup.ContextConfig.processContextConfig:(Lorg/apache/tomcat/util/digester/Digester;Ljava/net/URL;Ljava/io/InputStream;)V
        33: .line 608
            iload 3 /* generateCode */
            ifeq 46
        34: .line 609
            aload 0 /* this */
            aload 1 /* digester */
            invokevirtual org.apache.catalina.startup.ContextConfig.generateClassFooter:(Lorg/apache/tomcat/util/digester/Digester;)V
        35: .line 610
            aconst_null
            astore 14
            aconst_null
            astore 15
        36: new java.io.FileWriter
            dup
            aload 8 /* contextXmlJavaSource */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 16 /* writer */
        start local 16 // java.io.FileWriter writer
        37: .line 611
            aload 16 /* writer */
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
        38: .line 612
            aload 16 /* writer */
            ifnull 44
            aload 16 /* writer */
            invokevirtual java.io.FileWriter.close:()V
            goto 44
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource java.net.URL java.lang.Throwable java.lang.Throwable java.io.FileWriter
      StackMap stack: java.lang.Throwable
        39: astore 14
            aload 16 /* writer */
            ifnull 40
            aload 16 /* writer */
            invokevirtual java.io.FileWriter.close:()V
        end local 16 // java.io.FileWriter writer
      StackMap locals:
      StackMap stack:
        40: aload 14
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: astore 15
            aload 14
            ifnonnull 42
            aload 15
            astore 14
            goto 43
      StackMap locals:
      StackMap stack:
        42: aload 14
            aload 15
            if_acmpeq 43
            aload 14
            aload 15
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        43: aload 14
            athrow
        44: .line 613
      StackMap locals:
      StackMap stack:
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.endGeneratingCode:()V
        45: .line 614
            aload 7 /* contextXmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.addGeneratedClass:(Ljava/lang/String;)V
        end local 13 // java.net.URL defaultContextUrl
        46: .line 616
      StackMap locals:
      StackMap stack:
            aload 12 /* contextXmlResource */
            ifnull 56
            aload 12 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
            goto 56
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 10
            aload 12 /* contextXmlResource */
            ifnull 48
            aload 12 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
        end local 12 // org.apache.tomcat.util.file.ConfigurationSource$Resource contextXmlResource
      StackMap locals:
      StackMap stack:
        48: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 11
            aload 10
            ifnonnull 50
            aload 11
            astore 10
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 10
            aload 11
            if_acmpeq 51
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        51: aload 10
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml
      StackMap stack: java.net.MalformedURLException
        52: astore 10 /* e */
        start local 10 // java.net.MalformedURLException e
        53: .line 617
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.badUrl"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* defaultContextXml */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 10 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 10 // java.net.MalformedURLException e
        54: goto 56
        55: .line 618
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        56: .line 623
      StackMap locals:
      StackMap stack:
            iload 4 /* useGeneratedCode */
            ifne 57
            iload 3 /* generateCode */
            ifeq 60
        57: .line 624
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getGeneratedCodePackage:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.startup.ContextConfig.getContextXmlPackageName:(Ljava/lang/String;Lorg/apache/catalina/Container;)Ljava/lang/String;
            astore 5 /* contextXmlPackageName */
        58: .line 625
            ldc "ContextXmlDefault"
            astore 6 /* contextXmlSimpleClassName */
        59: .line 626
            new java.lang.StringBuilder
            dup
            aload 5 /* contextXmlPackageName */
            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;
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* contextXmlClassName */
        60: .line 628
      StackMap locals:
      StackMap stack:
            iload 4 /* useGeneratedCode */
            ifeq 62
        61: .line 629
            aload 7 /* contextXmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.loadGeneratedClass:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$ContextXml
            astore 9 /* contextXml */
        62: .line 631
      StackMap locals:
      StackMap stack:
            aload 9 /* contextXml */
            ifnull 66
        63: .line 632
            aload 9 /* contextXml */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.startup.ContextConfig$ContextXml.load:(Lorg/apache/catalina/Context;)V
        64: .line 633
            aconst_null
            astore 9 /* contextXml */
        65: .line 634
            goto 100
      StackMap locals:
      StackMap stack:
        66: iload 4 /* useGeneratedCode */
            ifne 100
        67: .line 635
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            ldc "context.xml.default"
            invokestatic org.apache.catalina.Container.getConfigPath:(Lorg/apache/catalina/Container;Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* hostContextFile */
        start local 10 // java.lang.String hostContextFile
        68: .line 636
            aconst_null
            astore 11
            aconst_null
            astore 12
        69: .line 637
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            aload 10 /* hostContextFile */
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getResource:(Ljava/lang/String;)Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
        70: .line 636
            astore 13 /* contextXmlResource */
        start local 13 // org.apache.tomcat.util.file.ConfigurationSource$Resource contextXmlResource
        71: .line 638
            iload 3 /* generateCode */
            ifeq 75
        72: .line 639
            aload 0 /* this */
            aload 5 /* contextXmlPackageName */
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.getContextXmlJavaSource:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 8 /* contextXmlJavaSource */
        73: .line 640
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.startGeneratingCode:()V
        74: .line 641
            aload 0 /* this */
            aload 1 /* digester */
            aload 5 /* contextXmlPackageName */
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.generateClassHeader:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;Ljava/lang/String;)V
        75: .line 643
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml java.lang.String java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource
      StackMap stack:
            aload 13 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            astore 14 /* defaultContextUrl */
        start local 14 // java.net.URL defaultContextUrl
        76: .line 644
            aload 0 /* this */
            aload 1 /* digester */
            aload 14 /* defaultContextUrl */
            aload 13 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getInputStream:()Ljava/io/InputStream;
            invokevirtual org.apache.catalina.startup.ContextConfig.processContextConfig:(Lorg/apache/tomcat/util/digester/Digester;Ljava/net/URL;Ljava/io/InputStream;)V
        77: .line 645
            iload 3 /* generateCode */
            ifeq 90
        78: .line 646
            aload 0 /* this */
            aload 1 /* digester */
            invokevirtual org.apache.catalina.startup.ContextConfig.generateClassFooter:(Lorg/apache/tomcat/util/digester/Digester;)V
        79: .line 647
            aconst_null
            astore 15
            aconst_null
            astore 16
        80: new java.io.FileWriter
            dup
            aload 8 /* contextXmlJavaSource */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 17 /* writer */
        start local 17 // java.io.FileWriter writer
        81: .line 648
            aload 17 /* writer */
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
        82: .line 649
            aload 17 /* writer */
            ifnull 88
            aload 17 /* writer */
            invokevirtual java.io.FileWriter.close:()V
            goto 88
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml java.lang.String java.lang.Throwable java.lang.Throwable org.apache.tomcat.util.file.ConfigurationSource$Resource java.net.URL java.lang.Throwable java.lang.Throwable java.io.FileWriter
      StackMap stack: java.lang.Throwable
        83: astore 15
            aload 17 /* writer */
            ifnull 84
            aload 17 /* writer */
            invokevirtual java.io.FileWriter.close:()V
        end local 17 // java.io.FileWriter writer
      StackMap locals:
      StackMap stack:
        84: aload 15
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        85: astore 16
            aload 15
            ifnonnull 86
            aload 16
            astore 15
            goto 87
      StackMap locals:
      StackMap stack:
        86: aload 15
            aload 16
            if_acmpeq 87
            aload 15
            aload 16
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        87: aload 15
            athrow
        88: .line 650
      StackMap locals:
      StackMap stack:
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.endGeneratingCode:()V
        89: .line 651
            aload 7 /* contextXmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.addGeneratedClass:(Ljava/lang/String;)V
        end local 14 // java.net.URL defaultContextUrl
        90: .line 653
      StackMap locals:
      StackMap stack:
            aload 13 /* contextXmlResource */
            ifnull 100
            aload 13 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
            goto 100
      StackMap locals:
      StackMap stack: java.lang.Throwable
        91: astore 11
            aload 13 /* contextXmlResource */
            ifnull 92
            aload 13 /* contextXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.close:()V
        end local 13 // org.apache.tomcat.util.file.ConfigurationSource$Resource contextXmlResource
      StackMap locals:
      StackMap stack:
        92: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        93: astore 12
            aload 11
            ifnonnull 94
            aload 12
            astore 11
            goto 95
      StackMap locals:
      StackMap stack:
        94: aload 11
            aload 12
            if_acmpeq 95
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        95: aload 11
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml java.lang.String
      StackMap stack: java.net.MalformedURLException
        96: astore 11 /* e */
        start local 11 // java.net.MalformedURLException e
        97: .line 654
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.badUrl"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* hostContextFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 11 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 11 // java.net.MalformedURLException e
        98: goto 100
        99: .line 655
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        end local 10 // java.lang.String hostContextFile
       100: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getConfigFile:()Ljava/net/URL;
            ifnull 131
       101: .line 662
            iload 4 /* useGeneratedCode */
            ifne 102
            iload 3 /* generateCode */
            ifeq 105
       102: .line 663
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getGeneratedCodePackage:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokestatic org.apache.catalina.startup.ContextConfig.getContextXmlPackageName:(Ljava/lang/String;Lorg/apache/catalina/Container;)Ljava/lang/String;
            astore 5 /* contextXmlPackageName */
       103: .line 664
            new java.lang.StringBuilder
            dup
            ldc "ContextXml_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            bipush 47
            bipush 95
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            ldc "-"
            ldc "__"
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* contextXmlSimpleClassName */
       104: .line 665
            new java.lang.StringBuilder
            dup
            aload 5 /* contextXmlPackageName */
            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;
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* contextXmlClassName */
       105: .line 667
      StackMap locals:
      StackMap stack:
            iload 4 /* useGeneratedCode */
            ifeq 107
       106: .line 668
            aload 7 /* contextXmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.loadGeneratedClass:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$ContextXml
            astore 9 /* contextXml */
       107: .line 670
      StackMap locals:
      StackMap stack:
            aload 9 /* contextXml */
            ifnull 111
       108: .line 671
            aload 9 /* contextXml */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.startup.ContextConfig$ContextXml.load:(Lorg/apache/catalina/Context;)V
       109: .line 672
            aconst_null
            astore 9 /* contextXml */
       110: .line 673
            goto 131
      StackMap locals:
      StackMap stack:
       111: iload 4 /* useGeneratedCode */
            ifne 131
       112: .line 674
            iload 3 /* generateCode */
            ifeq 116
       113: .line 675
            aload 0 /* this */
            aload 5 /* contextXmlPackageName */
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.getContextXmlJavaSource:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 8 /* contextXmlJavaSource */
       114: .line 676
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.startGeneratingCode:()V
       115: .line 677
            aload 0 /* this */
            aload 1 /* digester */
            aload 5 /* contextXmlPackageName */
            aload 6 /* contextXmlSimpleClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.generateClassHeader:(Lorg/apache/tomcat/util/digester/Digester;Ljava/lang/String;Ljava/lang/String;)V
       116: .line 679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* digester */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getConfigFile:()Ljava/net/URL;
            aconst_null
            invokevirtual org.apache.catalina.startup.ContextConfig.processContextConfig:(Lorg/apache/tomcat/util/digester/Digester;Ljava/net/URL;Ljava/io/InputStream;)V
       117: .line 680
            iload 3 /* generateCode */
            ifeq 131
       118: .line 681
            aload 0 /* this */
            aload 1 /* digester */
            invokevirtual org.apache.catalina.startup.ContextConfig.generateClassFooter:(Lorg/apache/tomcat/util/digester/Digester;)V
       119: .line 682
            aconst_null
            astore 10
            aconst_null
            astore 11
       120: new java.io.FileWriter
            dup
            aload 8 /* contextXmlJavaSource */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 12 /* writer */
        start local 12 // java.io.FileWriter writer
       121: .line 683
            aload 12 /* writer */
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getGeneratedCode:()Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.FileWriter.write:(Ljava/lang/String;)V
       122: .line 684
            aload 12 /* writer */
            ifnull 129
            aload 12 /* writer */
            invokevirtual java.io.FileWriter.close:()V
            goto 129
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml java.lang.Throwable java.lang.Throwable java.io.FileWriter
      StackMap stack: java.lang.Throwable
       123: astore 10
            aload 12 /* writer */
            ifnull 124
            aload 12 /* writer */
            invokevirtual java.io.FileWriter.close:()V
        end local 12 // java.io.FileWriter writer
      StackMap locals:
      StackMap stack:
       124: aload 10
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       125: astore 11
            aload 10
            ifnonnull 126
            aload 11
            astore 10
            goto 127
      StackMap locals:
      StackMap stack:
       126: aload 10
            aload 11
            if_acmpeq 127
            aload 10
            aload 11
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       127: aload 10
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.lang.String int int java.lang.String java.lang.String java.lang.String java.io.File org.apache.catalina.startup.ContextConfig$ContextXml
      StackMap stack: java.io.IOException
       128: pop
       129: .line 687
      StackMap locals:
      StackMap stack:
            aload 1 /* digester */
            invokevirtual org.apache.tomcat.util.digester.Digester.endGeneratingCode:()V
       130: .line 688
            aload 7 /* contextXmlClassName */
            invokestatic org.apache.tomcat.util.digester.Digester.addGeneratedClass:(Ljava/lang/String;)V
       131: .line 693
      StackMap locals:
      StackMap stack:
            return
        end local 9 // org.apache.catalina.startup.ContextConfig$ContextXml contextXml
        end local 8 // java.io.File contextXmlJavaSource
        end local 7 // java.lang.String contextXmlClassName
        end local 6 // java.lang.String contextXmlSimpleClassName
        end local 5 // java.lang.String contextXmlPackageName
        end local 4 // boolean useGeneratedCode
        end local 3 // boolean generateCode
        end local 2 // java.lang.String defaultContextXml
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0  132     0                       this  Lorg/apache/catalina/startup/ContextConfig;
            0  132     1                   digester  Lorg/apache/tomcat/util/digester/Digester;
            1  132     2          defaultContextXml  Ljava/lang/String;
            2  132     3               generateCode  Z
            3  132     4           useGeneratedCode  Z
            4  132     5      contextXmlPackageName  Ljava/lang/String;
            5  132     6  contextXmlSimpleClassName  Ljava/lang/String;
            6  132     7        contextXmlClassName  Ljava/lang/String;
            7  132     8       contextXmlJavaSource  Ljava/io/File;
           12  132     9                 contextXml  Lorg/apache/catalina/startup/ContextConfig$ContextXml;
           27   48    12         contextXmlResource  Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
           32   46    13          defaultContextUrl  Ljava/net/URL;
           37   40    16                     writer  Ljava/io/FileWriter;
           53   54    10                          e  Ljava/net/MalformedURLException;
           68  100    10            hostContextFile  Ljava/lang/String;
           71   92    13         contextXmlResource  Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
           76   90    14          defaultContextUrl  Ljava/net/URL;
           81   84    17                     writer  Ljava/io/FileWriter;
           97   98    11                          e  Ljava/net/MalformedURLException;
          121  124    12                     writer  Ljava/io/FileWriter;
      Exception table:
        from    to  target  type
          37    38      39  any
          36    41      41  any
          27    46      47  any
          25    49      49  any
          24    52      52  Class java.net.MalformedURLException
          24    52      55  Class java.io.IOException
          81    82      83  any
          80    85      85  any
          71    90      91  any
          69    93      93  any
          68    96      96  Class java.net.MalformedURLException
          68    96      99  Class java.io.IOException
         121   122     123  any
         120   125     125  any
         119   128     128  Class java.io.IOException
    MethodParameters:
          Name  Flags
      digester  

  protected void processContextConfig(org.apache.tomcat.util.digester.Digester, java.net.URL, java.io.InputStream);
    descriptor: (Lorg/apache/tomcat/util/digester/Digester;Ljava/net/URL;Ljava/io/InputStream;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.digester.Digester digester
        start local 2 // java.net.URL contextXml
        start local 3 // java.io.InputStream stream
         0: .line 704
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 4
         1: .line 705
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Processing context ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 706
            ldc "] configuration file ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* contextXml */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 705
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
         4: .line 709
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* source */
        start local 4 // org.xml.sax.InputSource source
         5: .line 712
            new org.xml.sax.InputSource
            dup
            aload 2 /* contextXml */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
            astore 4 /* source */
         6: .line 713
            aload 3 /* stream */
            ifnonnull 17
         7: .line 714
            aload 2 /* contextXml */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 5 /* xmlConn */
        start local 5 // java.net.URLConnection xmlConn
         8: .line 715
            aload 5 /* xmlConn */
            iconst_0
            invokevirtual java.net.URLConnection.setUseCaches:(Z)V
         9: .line 716
            aload 5 /* xmlConn */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            astore 3 /* stream */
        end local 5 // java.net.URLConnection xmlConn
        10: .line 718
            goto 17
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.net.URL java.io.InputStream org.xml.sax.InputSource
      StackMap stack: java.lang.Exception
        11: astore 5 /* e */
        start local 5 // java.lang.Exception e
        12: .line 719
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextMissing"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 720
            aload 2 /* contextXml */
            aastore
        14: .line 719
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        15: .line 720
            aload 5 /* e */
        16: .line 719
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Exception e
        17: .line 723
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            ifnonnull 19
        18: .line 724
            return
        19: .line 728
      StackMap locals:
      StackMap stack:
            aload 4 /* source */
            aload 3 /* stream */
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
        20: .line 729
            aload 1 /* digester */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual org.apache.tomcat.util.digester.Digester.setClassLoader:(Ljava/lang/ClassLoader;)V
        21: .line 730
            aload 1 /* digester */
            iconst_0
            invokevirtual org.apache.tomcat.util.digester.Digester.setUseContextClassLoader:(Z)V
        22: .line 731
            aload 1 /* digester */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            invokevirtual org.apache.tomcat.util.digester.Digester.push:(Ljava/lang/Object;)V
        23: .line 732
            aload 1 /* digester */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokevirtual org.apache.tomcat.util.digester.Digester.push:(Ljava/lang/Object;)V
        24: .line 733
            new org.apache.tomcat.util.descriptor.XmlErrorHandler
            dup
            invokespecial org.apache.tomcat.util.descriptor.XmlErrorHandler.<init>:()V
            astore 5 /* errorHandler */
        start local 5 // org.apache.tomcat.util.descriptor.XmlErrorHandler errorHandler
        25: .line 734
            aload 1 /* digester */
            aload 5 /* errorHandler */
            invokevirtual org.apache.tomcat.util.digester.Digester.setErrorHandler:(Lorg/xml/sax/ErrorHandler;)V
        26: .line 735
            aload 1 /* digester */
            aload 4 /* source */
            invokevirtual org.apache.tomcat.util.digester.Digester.parse:(Lorg/xml/sax/InputSource;)Ljava/lang/Object;
            pop
        27: .line 736
            aload 5 /* errorHandler */
            invokevirtual org.apache.tomcat.util.descriptor.XmlErrorHandler.getWarnings:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifgt 29
        28: .line 737
            aload 5 /* errorHandler */
            invokevirtual org.apache.tomcat.util.descriptor.XmlErrorHandler.getErrors:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 31
        29: .line 738
      StackMap locals: org.apache.tomcat.util.descriptor.XmlErrorHandler
      StackMap stack:
            aload 5 /* errorHandler */
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            aload 2 /* contextXml */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.XmlErrorHandler.logFindings:(Lorg/apache/juli/logging/Log;Ljava/lang/String;)V
        30: .line 739
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        31: .line 741
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 73
        32: .line 742
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Successfully processed context ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        33: .line 743
            ldc "] configuration file ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* contextXml */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        34: .line 742
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        end local 5 // org.apache.tomcat.util.descriptor.XmlErrorHandler errorHandler
        35: .line 745
            goto 73
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.net.URL java.io.InputStream org.xml.sax.InputSource
      StackMap stack: org.xml.sax.SAXParseException
        36: astore 5 /* e */
        start local 5 // org.xml.sax.SAXParseException e
        37: .line 746
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextParse"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        38: .line 747
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
        39: .line 746
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        40: .line 747
            aload 5 /* e */
        41: .line 746
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        42: .line 748
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.defaultPosition"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        43: .line 749
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* e */
            invokevirtual org.xml.sax.SAXParseException.getLineNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        44: .line 750
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 5 /* e */
            invokevirtual org.xml.sax.SAXParseException.getColumnNumber:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        45: .line 748
            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
        46: .line 751
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        end local 5 // org.xml.sax.SAXParseException e
        47: .line 758
            aload 3 /* stream */
            ifnull 78
        48: .line 759
            aload 3 /* stream */
            invokevirtual java.io.InputStream.close:()V
        49: .line 761
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        50: astore 7 /* e */
        start local 7 // java.io.IOException e
        51: .line 762
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextClose"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 7 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.io.IOException e
        52: goto 78
        53: .line 752
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        54: .line 753
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextParse"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        55: .line 754
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
        56: .line 753
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        57: .line 754
            aload 5 /* e */
        58: .line 753
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        59: .line 755
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        end local 5 // java.lang.Exception e
        60: .line 758
            aload 3 /* stream */
            ifnull 78
        61: .line 759
            aload 3 /* stream */
            invokevirtual java.io.InputStream.close:()V
        62: .line 761
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        63: astore 7 /* e */
        start local 7 // java.io.IOException e
        64: .line 762
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextClose"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 7 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.io.IOException e
        65: goto 78
        66: .line 756
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        67: .line 758
            aload 3 /* stream */
            ifnull 72
        68: .line 759
            aload 3 /* stream */
            invokevirtual java.io.InputStream.close:()V
        69: .line 761
            goto 72
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.net.URL java.io.InputStream org.xml.sax.InputSource top java.lang.Throwable
      StackMap stack: java.io.IOException
        70: astore 7 /* e */
        start local 7 // java.io.IOException e
        71: .line 762
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextClose"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 7 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.io.IOException e
        72: .line 764
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        73: .line 758
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.digester.Digester java.net.URL java.io.InputStream org.xml.sax.InputSource
      StackMap stack:
            aload 3 /* stream */
            ifnull 78
        74: .line 759
            aload 3 /* stream */
            invokevirtual java.io.InputStream.close:()V
        75: .line 761
            goto 78
      StackMap locals:
      StackMap stack: java.io.IOException
        76: astore 7 /* e */
        start local 7 // java.io.IOException e
        77: .line 762
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.contextClose"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 7 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 7 // java.io.IOException e
        78: .line 765
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.xml.sax.InputSource source
        end local 3 // java.io.InputStream stream
        end local 2 // java.net.URL contextXml
        end local 1 // org.apache.tomcat.util.digester.Digester digester
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   79     0          this  Lorg/apache/catalina/startup/ContextConfig;
            0   79     1      digester  Lorg/apache/tomcat/util/digester/Digester;
            0   79     2    contextXml  Ljava/net/URL;
            0   79     3        stream  Ljava/io/InputStream;
            5   79     4        source  Lorg/xml/sax/InputSource;
            8   10     5       xmlConn  Ljava/net/URLConnection;
           12   17     5             e  Ljava/lang/Exception;
           25   35     5  errorHandler  Lorg/apache/tomcat/util/descriptor/XmlErrorHandler;
           37   47     5             e  Lorg/xml/sax/SAXParseException;
           54   60     5             e  Ljava/lang/Exception;
           51   52     7             e  Ljava/io/IOException;
           64   65     7             e  Ljava/io/IOException;
           71   72     7             e  Ljava/io/IOException;
           77   78     7             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    10      11  Class java.lang.Exception
          19    35      36  Class org.xml.sax.SAXParseException
          47    49      50  Class java.io.IOException
          19    35      53  Class java.lang.Exception
          60    62      63  Class java.io.IOException
          19    47      66  any
          53    60      66  any
          67    69      70  Class java.io.IOException
          73    75      76  Class java.io.IOException
    MethodParameters:
            Name  Flags
      digester    
      contextXml  
      stream      

  protected void fixDocBase();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=15, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 774
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Host
            astore 1 /* host */
        start local 1 // org.apache.catalina.Host host
         1: .line 775
            aload 1 /* host */
            invokeinterface org.apache.catalina.Host.getAppBaseFile:()Ljava/io/File;
            astore 2 /* appBase */
        start local 2 // java.io.File appBase
         2: .line 778
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getDocBase:()Ljava/lang/String;
            astore 3 /* docBaseConfigured */
        start local 3 // java.lang.String docBaseConfigured
         3: .line 780
            aload 3 /* docBaseConfigured */
            ifnonnull 9
         4: .line 782
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPath:()Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
         5: .line 783
            aload 4 /* path */
            ifnonnull 7
         6: .line 784
            return
         7: .line 786
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.Host java.io.File java.lang.String java.lang.String
      StackMap stack:
            new org.apache.catalina.util.ContextName
            dup
            aload 4 /* path */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getWebappVersion:()Ljava/lang/String;
            invokespecial org.apache.catalina.util.ContextName.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* cn */
        start local 5 // org.apache.catalina.util.ContextName cn
         8: .line 787
            aload 5 /* cn */
            invokevirtual org.apache.catalina.util.ContextName.getBaseName:()Ljava/lang/String;
            astore 3 /* docBaseConfigured */
        end local 5 // org.apache.catalina.util.ContextName cn
        end local 4 // java.lang.String path
         9: .line 792
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 3 /* docBaseConfigured */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* docBaseConfiguredFile */
        start local 5 // java.io.File docBaseConfiguredFile
        10: .line 793
            aload 5 /* docBaseConfiguredFile */
            invokevirtual java.io.File.isAbsolute:()Z
            ifne 13
        11: .line 794
            new java.io.File
            dup
            aload 2 /* appBase */
            aload 3 /* docBaseConfigured */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            astore 4 /* docBaseAbsolute */
        start local 4 // java.lang.String docBaseAbsolute
        12: .line 795
            goto 14
        end local 4 // java.lang.String docBaseAbsolute
        13: .line 796
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.Host java.io.File java.lang.String top java.io.File
      StackMap stack:
            aload 5 /* docBaseConfiguredFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            astore 4 /* docBaseAbsolute */
        start local 4 // java.lang.String docBaseAbsolute
        14: .line 798
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.Host java.io.File java.lang.String java.lang.String java.io.File
      StackMap stack:
            new java.io.File
            dup
            aload 4 /* docBaseAbsolute */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* docBaseAbsoluteFile */
        start local 6 // java.io.File docBaseAbsoluteFile
        15: .line 799
            aload 4 /* docBaseAbsolute */
            astore 7 /* originalDocBase */
        start local 7 // java.lang.String originalDocBase
        16: .line 801
            new org.apache.catalina.util.ContextName
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPath:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getWebappVersion:()Ljava/lang/String;
            invokespecial org.apache.catalina.util.ContextName.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 8 /* cn */
        start local 8 // org.apache.catalina.util.ContextName cn
        17: .line 802
            aload 8 /* cn */
            invokevirtual org.apache.catalina.util.ContextName.getBaseName:()Ljava/lang/String;
            astore 9 /* pathName */
        start local 9 // java.lang.String pathName
        18: .line 804
            iconst_1
            istore 10 /* unpackWARs */
        start local 10 // boolean unpackWARs
        19: .line 805
            aload 1 /* host */
            instanceof org.apache.catalina.core.StandardHost
            ifeq 23
        20: .line 806
            aload 1 /* host */
            checkcast org.apache.catalina.core.StandardHost
            invokevirtual org.apache.catalina.core.StandardHost.isUnpackWARs:()Z
            istore 10 /* unpackWARs */
        21: .line 807
            iload 10 /* unpackWARs */
            ifeq 23
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 23
        22: .line 808
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getUnpackWAR:()Z
            istore 10 /* unpackWARs */
        23: .line 816
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.Host java.io.File java.lang.String java.lang.String java.io.File java.io.File java.lang.String org.apache.catalina.util.ContextName java.lang.String int
      StackMap stack:
            aload 4 /* docBaseAbsolute */
            new java.lang.StringBuilder
            dup
            aload 2 /* appBase */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 11 /* docBaseAbsoluteInAppBase */
        start local 11 // boolean docBaseAbsoluteInAppBase
        24: .line 817
            aload 4 /* docBaseAbsolute */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc ".war"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 34
            aload 6 /* docBaseAbsoluteFile */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 34
        25: .line 818
            aload 6 /* docBaseAbsoluteFile */
            invokestatic org.apache.tomcat.util.buf.UriUtil.buildJarUrl:(Ljava/io/File;)Ljava/net/URL;
            astore 12 /* war */
        start local 12 // java.net.URL war
        26: .line 819
            iload 10 /* unpackWARs */
            ifeq 32
        27: .line 820
            aload 1 /* host */
            aload 12 /* war */
            aload 9 /* pathName */
            invokestatic org.apache.catalina.startup.ExpandWar.expand:(Lorg/apache/catalina/Host;Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* docBaseAbsolute */
        28: .line 821
            new java.io.File
            dup
            aload 4 /* docBaseAbsolute */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* docBaseAbsoluteFile */
        29: .line 822
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 51
        30: .line 823
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            aload 7 /* originalDocBase */
            invokevirtual org.apache.catalina.core.StandardContext.setOriginalDocBase:(Ljava/lang/String;)V
        31: .line 825
            goto 51
        32: .line 826
      StackMap locals: int java.net.URL
      StackMap stack:
            aload 1 /* host */
            aload 12 /* war */
            aload 9 /* pathName */
            invokestatic org.apache.catalina.startup.ExpandWar.validate:(Lorg/apache/catalina/Host;Ljava/net/URL;Ljava/lang/String;)V
        end local 12 // java.net.URL war
        33: .line 828
            goto 51
        34: .line 829
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* docBaseAbsolute */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".war"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 12 /* docBaseAbsoluteFileWar */
        start local 12 // java.io.File docBaseAbsoluteFileWar
        35: .line 830
            aconst_null
            astore 13 /* war */
        start local 13 // java.net.URL war
        36: .line 831
            aload 12 /* docBaseAbsoluteFileWar */
            invokevirtual java.io.File.exists:()Z
            ifeq 38
            iload 11 /* docBaseAbsoluteInAppBase */
            ifeq 38
        37: .line 832
            aload 12 /* docBaseAbsoluteFileWar */
            invokestatic org.apache.tomcat.util.buf.UriUtil.buildJarUrl:(Ljava/io/File;)Ljava/net/URL;
            astore 13 /* war */
        38: .line 834
      StackMap locals: java.io.File java.net.URL
      StackMap stack:
            aload 6 /* docBaseAbsoluteFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 42
        39: .line 835
            aload 13 /* war */
            ifnull 51
            iload 10 /* unpackWARs */
            ifeq 51
        40: .line 840
            aload 1 /* host */
            aload 13 /* war */
            aload 9 /* pathName */
            invokestatic org.apache.catalina.startup.ExpandWar.expand:(Lorg/apache/catalina/Host;Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String;
            pop
        41: .line 842
            goto 51
        42: .line 843
      StackMap locals:
      StackMap stack:
            aload 13 /* war */
            ifnull 49
        43: .line 844
            iload 10 /* unpackWARs */
            ifeq 47
        44: .line 845
            aload 1 /* host */
            aload 13 /* war */
            aload 9 /* pathName */
            invokestatic org.apache.catalina.startup.ExpandWar.expand:(Lorg/apache/catalina/Host;Ljava/net/URL;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* docBaseAbsolute */
        45: .line 846
            new java.io.File
            dup
            aload 4 /* docBaseAbsolute */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* docBaseAbsoluteFile */
        46: .line 847
            goto 49
        47: .line 848
      StackMap locals:
      StackMap stack:
            aload 12 /* docBaseAbsoluteFileWar */
            astore 6 /* docBaseAbsoluteFile */
        48: .line 849
            aload 1 /* host */
            aload 13 /* war */
            aload 9 /* pathName */
            invokestatic org.apache.catalina.startup.ExpandWar.validate:(Lorg/apache/catalina/Host;Ljava/net/URL;Ljava/lang/String;)V
        49: .line 852
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 51
        50: .line 853
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            aload 7 /* originalDocBase */
            invokevirtual org.apache.catalina.core.StandardContext.setOriginalDocBase:(Ljava/lang/String;)V
        end local 13 // java.net.URL war
        end local 12 // java.io.File docBaseAbsoluteFileWar
        51: .line 858
      StackMap locals:
      StackMap stack:
            aload 6 /* docBaseAbsoluteFile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 12 /* docBaseCanonical */
        start local 12 // java.lang.String docBaseCanonical
        52: .line 861
            aload 12 /* docBaseCanonical */
            new java.lang.StringBuilder
            dup
            aload 2 /* appBase */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            istore 13 /* docBaseCanonicalInAppBase */
        start local 13 // boolean docBaseCanonicalInAppBase
        53: .line 863
            iload 13 /* docBaseCanonicalInAppBase */
            ifeq 59
        54: .line 864
            aload 12 /* docBaseCanonical */
            aload 2 /* appBase */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 14 /* docBase */
        start local 14 // java.lang.String docBase
        55: .line 865
            aload 14 /* docBase */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 14 /* docBase */
        56: .line 866
            aload 14 /* docBase */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 60
        57: .line 867
            aload 14 /* docBase */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 14 /* docBase */
        58: .line 869
            goto 60
        end local 14 // java.lang.String docBase
        59: .line 870
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 12 /* docBaseCanonical */
            getstatic java.io.File.separatorChar:C
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 14 /* docBase */
        start local 14 // java.lang.String docBase
        60: .line 873
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 14 /* docBase */
            invokeinterface org.apache.catalina.Context.setDocBase:(Ljava/lang/String;)V
        61: .line 874
            return
        end local 14 // java.lang.String docBase
        end local 13 // boolean docBaseCanonicalInAppBase
        end local 12 // java.lang.String docBaseCanonical
        end local 11 // boolean docBaseAbsoluteInAppBase
        end local 10 // boolean unpackWARs
        end local 9 // java.lang.String pathName
        end local 8 // org.apache.catalina.util.ContextName cn
        end local 7 // java.lang.String originalDocBase
        end local 6 // java.io.File docBaseAbsoluteFile
        end local 5 // java.io.File docBaseConfiguredFile
        end local 4 // java.lang.String docBaseAbsolute
        end local 3 // java.lang.String docBaseConfigured
        end local 2 // java.io.File appBase
        end local 1 // org.apache.catalina.Host host
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   62     0                       this  Lorg/apache/catalina/startup/ContextConfig;
            1   62     1                       host  Lorg/apache/catalina/Host;
            2   62     2                    appBase  Ljava/io/File;
            3   62     3          docBaseConfigured  Ljava/lang/String;
            5    9     4                       path  Ljava/lang/String;
            8    9     5                         cn  Lorg/apache/catalina/util/ContextName;
           12   13     4            docBaseAbsolute  Ljava/lang/String;
           14   62     4            docBaseAbsolute  Ljava/lang/String;
           10   62     5      docBaseConfiguredFile  Ljava/io/File;
           15   62     6        docBaseAbsoluteFile  Ljava/io/File;
           16   62     7            originalDocBase  Ljava/lang/String;
           17   62     8                         cn  Lorg/apache/catalina/util/ContextName;
           18   62     9                   pathName  Ljava/lang/String;
           19   62    10                 unpackWARs  Z
           24   62    11   docBaseAbsoluteInAppBase  Z
           26   33    12                        war  Ljava/net/URL;
           35   51    12     docBaseAbsoluteFileWar  Ljava/io/File;
           36   51    13                        war  Ljava/net/URL;
           52   62    12           docBaseCanonical  Ljava/lang/String;
           53   62    13  docBaseCanonicalInAppBase  Z
           55   59    14                    docBase  Ljava/lang/String;
           60   62    14                    docBase  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException

  protected void antiLocking();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=8, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 879
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 33
         1: .line 880
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getAntiResourceLocking:()Z
            ifeq 33
         2: .line 882
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Host
            astore 1 /* host */
        start local 1 // org.apache.catalina.Host host
         3: .line 883
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getDocBase:()Ljava/lang/String;
            astore 2 /* docBase */
        start local 2 // java.lang.String docBase
         4: .line 884
            aload 2 /* docBase */
            ifnonnull 6
         5: .line 885
            return
         6: .line 887
      StackMap locals: org.apache.catalina.Host java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* docBase */
            putfield org.apache.catalina.startup.ContextConfig.originalDocBase:Ljava/lang/String;
         7: .line 889
            new java.io.File
            dup
            aload 2 /* docBase */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* docBaseFile */
        start local 3 // java.io.File docBaseFile
         8: .line 890
            aload 3 /* docBaseFile */
            invokevirtual java.io.File.isAbsolute:()Z
            ifne 10
         9: .line 891
            new java.io.File
            dup
            aload 1 /* host */
            invokeinterface org.apache.catalina.Host.getAppBaseFile:()Ljava/io/File;
            aload 2 /* docBase */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 3 /* docBaseFile */
        10: .line 894
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPath:()Ljava/lang/String;
            astore 4 /* path */
        start local 4 // java.lang.String path
        11: .line 895
            aload 4 /* path */
            ifnonnull 13
        12: .line 896
            return
        13: .line 898
      StackMap locals: java.lang.String
      StackMap stack:
            new org.apache.catalina.util.ContextName
            dup
            aload 4 /* path */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getWebappVersion:()Ljava/lang/String;
            invokespecial org.apache.catalina.util.ContextName.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* cn */
        start local 5 // org.apache.catalina.util.ContextName cn
        14: .line 899
            aload 5 /* cn */
            invokevirtual org.apache.catalina.util.ContextName.getBaseName:()Ljava/lang/String;
            astore 2 /* docBase */
        15: .line 901
            ldc "java.io.tmpdir"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* tmp */
        start local 6 // java.lang.String tmp
        16: .line 902
            new java.io.File
            dup
            aload 6 /* tmp */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 7 /* tmpFile */
        start local 7 // java.io.File tmpFile
        17: .line 903
            aload 7 /* tmpFile */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 20
        18: .line 904
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.noAntiLocking"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 6 /* tmp */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()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.error:(Ljava/lang/Object;)V
        19: .line 905
            return
        20: .line 908
      StackMap locals: org.apache.catalina.util.ContextName java.lang.String java.io.File
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.originalDocBase:Ljava/lang/String;
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc ".war"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 23
        21: .line 909
            aload 0 /* this */
            new java.io.File
            dup
            aload 7 /* tmpFile */
            new java.lang.StringBuilder
            dup
            getstatic org.apache.catalina.startup.ContextConfig.deploymentCount:J
            dup2
            lconst_1
            ladd
            putstatic org.apache.catalina.startup.ContextConfig.deploymentCount:J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* docBase */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".war"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            putfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
        22: .line 910
            goto 24
        23: .line 911
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.File
            dup
            aload 7 /* tmpFile */
            new java.lang.StringBuilder
            dup
            getstatic org.apache.catalina.startup.ContextConfig.deploymentCount:J
            dup2
            lconst_1
            ladd
            putstatic org.apache.catalina.startup.ContextConfig.deploymentCount:J
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* docBase */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            putfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
        24: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            putfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
        25: .line 915
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 30
        26: .line 916
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Anti locking context["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 917
            ldc "] setting docBase to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 918
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 916
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        30: .line 922
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            invokestatic org.apache.catalina.startup.ExpandWar.delete:(Ljava/io/File;)Z
            pop
        31: .line 923
            aload 3 /* docBaseFile */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            invokestatic org.apache.catalina.startup.ExpandWar.copy:(Ljava/io/File;Ljava/io/File;)Z
            ifeq 33
        32: .line 924
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Context.setDocBase:(Ljava/lang/String;)V
        end local 7 // java.io.File tmpFile
        end local 6 // java.lang.String tmp
        end local 5 // org.apache.catalina.util.ContextName cn
        end local 4 // java.lang.String path
        end local 3 // java.io.File docBaseFile
        end local 2 // java.lang.String docBase
        end local 1 // org.apache.catalina.Host host
        33: .line 927
      StackMap locals: org.apache.catalina.startup.ContextConfig
      StackMap stack:
            return
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   34     0         this  Lorg/apache/catalina/startup/ContextConfig;
            3   33     1         host  Lorg/apache/catalina/Host;
            4   33     2      docBase  Ljava/lang/String;
            8   33     3  docBaseFile  Ljava/io/File;
           11   33     4         path  Ljava/lang/String;
           14   33     5           cn  Lorg/apache/catalina/util/ContextName;
           16   33     6          tmp  Ljava/lang/String;
           17   33     7      tmpFile  Ljava/io/File;

  protected synchronized void init();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 936
            aconst_null
            astore 1 /* contextDigester */
        start local 1 // org.apache.tomcat.util.digester.Digester contextDigester
         1: .line 937
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getUseGeneratedCode:()Z
            ifne 4
         2: .line 938
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.createContextDigester:()Lorg/apache/tomcat/util/digester/Digester;
            astore 1 /* contextDigester */
         3: .line 939
            aload 1 /* contextDigester */
            invokevirtual org.apache.tomcat.util.digester.Digester.getParser:()Ljavax/xml/parsers/SAXParser;
            pop
         4: .line 942
      StackMap locals: org.apache.tomcat.util.digester.Digester
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 6
         5: .line 943
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.init"
            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
         6: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            iconst_0
            invokeinterface org.apache.catalina.Context.setConfigured:(Z)V
         7: .line 946
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
         8: .line 948
            aload 0 /* this */
            aload 1 /* contextDigester */
            invokevirtual org.apache.catalina.startup.ContextConfig.contextConfig:(Lorg/apache/tomcat/util/digester/Digester;)V
         9: .line 949
            return
        end local 1 // org.apache.tomcat.util.digester.Digester contextDigester
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Lorg/apache/catalina/startup/ContextConfig;
            1   10     1  contextDigester  Lorg/apache/tomcat/util/digester/Digester;

  protected synchronized void beforeStart();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 958
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.fixDocBase:()V
         1: .line 959
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 960
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
         4: .line 961
            ldc "contextConfig.fixDocBase"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
         5: .line 960
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         6: .line 961
            aload 1 /* e */
         7: .line 960
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException e
         8: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.antiLocking:()V
         9: .line 965
            return
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/catalina/startup/ContextConfig;
            3    8     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  protected synchronized void configureStart();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 974
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 975
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.start"
            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
         2: .line 978
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 8
         3: .line 979
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.xmlSettings"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 980
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         5: .line 981
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getXmlValidation:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_2
         6: .line 982
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getXmlNamespaceAware:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
         7: .line 979
            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
         8: .line 985
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.webConfig:()V
         9: .line 987
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getIgnoreAnnotations:()Z
            ifne 11
        10: .line 988
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig:()V
        11: .line 990
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 13
        12: .line 991
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.validateSecurityRoles:()V
        13: .line 995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 15
        14: .line 996
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.authenticatorConfig:()V
        15: .line 1000
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 28
        16: .line 1001
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            ldc "Pipeline Configuration:"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        17: .line 1002
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getPipeline:()Lorg/apache/catalina/Pipeline;
            astore 1 /* pipeline */
        start local 1 // org.apache.catalina.Pipeline pipeline
        18: .line 1003
            aconst_null
            astore 2 /* valves */
        start local 2 // org.apache.catalina.Valve[] valves
        19: .line 1004
            aload 1 /* pipeline */
            ifnull 21
        20: .line 1005
            aload 1 /* pipeline */
            invokeinterface org.apache.catalina.Pipeline.getValves:()[Lorg/apache/catalina/Valve;
            astore 2 /* valves */
        21: .line 1007
      StackMap locals: org.apache.catalina.Pipeline org.apache.catalina.Valve[]
      StackMap stack:
            aload 2 /* valves */
            ifnull 27
        22: .line 1008
            aload 2 /* valves */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 26
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.Pipeline org.apache.catalina.Valve[] top int int org.apache.catalina.Valve[]
      StackMap stack:
        23: aload 6
            iload 4
            aaload
            astore 3 /* valve */
        start local 3 // org.apache.catalina.Valve valve
        24: .line 1009
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* valve */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()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 // org.apache.catalina.Valve valve
        25: .line 1008
            iinc 4 1
      StackMap locals:
      StackMap stack:
        26: iload 4
            iload 5
            if_icmplt 23
        27: .line 1012
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.Pipeline org.apache.catalina.Valve[]
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            ldc "======================"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        end local 2 // org.apache.catalina.Valve[] valves
        end local 1 // org.apache.catalina.Pipeline pipeline
        28: .line 1016
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 31
        29: .line 1017
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            iconst_1
            invokeinterface org.apache.catalina.Context.setConfigured:(Z)V
        30: .line 1018
            goto 33
        31: .line 1019
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.unavailable"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        32: .line 1020
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            iconst_0
            invokeinterface org.apache.catalina.Context.setConfigured:(Z)V
        33: .line 1023
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Lorg/apache/catalina/startup/ContextConfig;
           18   28     1  pipeline  Lorg/apache/catalina/Pipeline;
           19   28     2    valves  [Lorg/apache/catalina/Valve;
           24   25     3     valve  Lorg/apache/catalina/Valve;

  protected synchronized void configureStop();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=14, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1031
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 1032
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.stop"
            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
         2: .line 1038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findChildren:()[Lorg/apache/catalina/Container;
            astore 2 /* children */
        start local 2 // org.apache.catalina.Container[] children
         3: .line 1039
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         4: goto 7
         5: .line 1040
      StackMap locals: int org.apache.catalina.Container[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* children */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeChild:(Lorg/apache/catalina/Container;)V
         6: .line 1039
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            aload 2 /* children */
            arraylength
            if_icmplt 5
         8: .line 1054
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findConstraints:()[Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;
            astore 3 /* securityConstraints */
        start local 3 // org.apache.tomcat.util.descriptor.web.SecurityConstraint[] securityConstraints
         9: .line 1055
            iconst_0
            istore 1 /* i */
            goto 12
        10: .line 1056
      StackMap locals: org.apache.tomcat.util.descriptor.web.SecurityConstraint[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 3 /* securityConstraints */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeConstraint:(Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;)V
        11: .line 1055
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 1 /* i */
            aload 3 /* securityConstraints */
            arraylength
            if_icmplt 10
        13: .line 1060
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findErrorPages:()[Lorg/apache/tomcat/util/descriptor/web/ErrorPage;
            astore 4 /* errorPages */
        start local 4 // org.apache.tomcat.util.descriptor.web.ErrorPage[] errorPages
        14: .line 1061
            iconst_0
            istore 1 /* i */
            goto 17
        15: .line 1062
      StackMap locals: org.apache.tomcat.util.descriptor.web.ErrorPage[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 4 /* errorPages */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeErrorPage:(Lorg/apache/tomcat/util/descriptor/web/ErrorPage;)V
        16: .line 1061
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 1 /* i */
            aload 4 /* errorPages */
            arraylength
            if_icmplt 15
        18: .line 1066
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findFilterDefs:()[Lorg/apache/tomcat/util/descriptor/web/FilterDef;
            astore 5 /* filterDefs */
        start local 5 // org.apache.tomcat.util.descriptor.web.FilterDef[] filterDefs
        19: .line 1067
            iconst_0
            istore 1 /* i */
            goto 22
        20: .line 1068
      StackMap locals: org.apache.tomcat.util.descriptor.web.FilterDef[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 5 /* filterDefs */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeFilterDef:(Lorg/apache/tomcat/util/descriptor/web/FilterDef;)V
        21: .line 1067
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 1 /* i */
            aload 5 /* filterDefs */
            arraylength
            if_icmplt 20
        23: .line 1072
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findFilterMaps:()[Lorg/apache/tomcat/util/descriptor/web/FilterMap;
            astore 6 /* filterMaps */
        start local 6 // org.apache.tomcat.util.descriptor.web.FilterMap[] filterMaps
        24: .line 1073
            iconst_0
            istore 1 /* i */
            goto 27
        25: .line 1074
      StackMap locals: org.apache.tomcat.util.descriptor.web.FilterMap[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 6 /* filterMaps */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeFilterMap:(Lorg/apache/tomcat/util/descriptor/web/FilterMap;)V
        26: .line 1073
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 1 /* i */
            aload 6 /* filterMaps */
            arraylength
            if_icmplt 25
        28: .line 1078
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findMimeMappings:()[Ljava/lang/String;
            astore 7 /* mimeMappings */
        start local 7 // java.lang.String[] mimeMappings
        29: .line 1079
            iconst_0
            istore 1 /* i */
            goto 32
        30: .line 1080
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 7 /* mimeMappings */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeMimeMapping:(Ljava/lang/String;)V
        31: .line 1079
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 1 /* i */
            aload 7 /* mimeMappings */
            arraylength
            if_icmplt 30
        33: .line 1084
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findParameters:()[Ljava/lang/String;
            astore 8 /* parameters */
        start local 8 // java.lang.String[] parameters
        34: .line 1085
            iconst_0
            istore 1 /* i */
            goto 37
        35: .line 1086
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 8 /* parameters */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeParameter:(Ljava/lang/String;)V
        36: .line 1085
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 1 /* i */
            aload 8 /* parameters */
            arraylength
            if_icmplt 35
        38: .line 1090
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findSecurityRoles:()[Ljava/lang/String;
            astore 9 /* securityRoles */
        start local 9 // java.lang.String[] securityRoles
        39: .line 1091
            iconst_0
            istore 1 /* i */
            goto 42
        40: .line 1092
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 9 /* securityRoles */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeSecurityRole:(Ljava/lang/String;)V
        41: .line 1091
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 1 /* i */
            aload 9 /* securityRoles */
            arraylength
            if_icmplt 40
        43: .line 1096
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findServletMappings:()[Ljava/lang/String;
            astore 10 /* servletMappings */
        start local 10 // java.lang.String[] servletMappings
        44: .line 1097
            iconst_0
            istore 1 /* i */
            goto 47
        45: .line 1098
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 10 /* servletMappings */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeServletMapping:(Ljava/lang/String;)V
        46: .line 1097
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        47: iload 1 /* i */
            aload 10 /* servletMappings */
            arraylength
            if_icmplt 45
        48: .line 1102
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findWelcomeFiles:()[Ljava/lang/String;
            astore 11 /* welcomeFiles */
        start local 11 // java.lang.String[] welcomeFiles
        49: .line 1103
            iconst_0
            istore 1 /* i */
            goto 52
        50: .line 1104
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 11 /* welcomeFiles */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeWelcomeFile:(Ljava/lang/String;)V
        51: .line 1103
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        52: iload 1 /* i */
            aload 11 /* welcomeFiles */
            arraylength
            if_icmplt 50
        53: .line 1108
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findWrapperLifecycles:()[Ljava/lang/String;
            astore 12 /* wrapperLifecycles */
        start local 12 // java.lang.String[] wrapperLifecycles
        54: .line 1109
            iconst_0
            istore 1 /* i */
            goto 57
        55: .line 1110
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 12 /* wrapperLifecycles */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeWrapperLifecycle:(Ljava/lang/String;)V
        56: .line 1109
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        57: iload 1 /* i */
            aload 12 /* wrapperLifecycles */
            arraylength
            if_icmplt 55
        58: .line 1114
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findWrapperListeners:()[Ljava/lang/String;
            astore 13 /* wrapperListeners */
        start local 13 // java.lang.String[] wrapperListeners
        59: .line 1115
            iconst_0
            istore 1 /* i */
            goto 62
        60: .line 1116
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 13 /* wrapperListeners */
            iload 1 /* i */
            aaload
            invokeinterface org.apache.catalina.Context.removeWrapperListener:(Ljava/lang/String;)V
        61: .line 1115
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
        62: iload 1 /* i */
            aload 13 /* wrapperListeners */
            arraylength
            if_icmplt 60
        63: .line 1120
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            ifnull 65
        64: .line 1122
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.antiLockingDocBase:Ljava/io/File;
            iconst_0
            invokestatic org.apache.catalina.startup.ExpandWar.delete:(Ljava/io/File;Z)Z
            pop
        65: .line 1126
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        66: .line 1127
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
        67: .line 1129
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        68: .line 1131
            return
        end local 13 // java.lang.String[] wrapperListeners
        end local 12 // java.lang.String[] wrapperLifecycles
        end local 11 // java.lang.String[] welcomeFiles
        end local 10 // java.lang.String[] servletMappings
        end local 9 // java.lang.String[] securityRoles
        end local 8 // java.lang.String[] parameters
        end local 7 // java.lang.String[] mimeMappings
        end local 6 // org.apache.tomcat.util.descriptor.web.FilterMap[] filterMaps
        end local 5 // org.apache.tomcat.util.descriptor.web.FilterDef[] filterDefs
        end local 4 // org.apache.tomcat.util.descriptor.web.ErrorPage[] errorPages
        end local 3 // org.apache.tomcat.util.descriptor.web.SecurityConstraint[] securityConstraints
        end local 2 // org.apache.catalina.Container[] children
        end local 1 // int i
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   69     0                 this  Lorg/apache/catalina/startup/ContextConfig;
            4   69     1                    i  I
            3   69     2             children  [Lorg/apache/catalina/Container;
            9   69     3  securityConstraints  [Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;
           14   69     4           errorPages  [Lorg/apache/tomcat/util/descriptor/web/ErrorPage;
           19   69     5           filterDefs  [Lorg/apache/tomcat/util/descriptor/web/FilterDef;
           24   69     6           filterMaps  [Lorg/apache/tomcat/util/descriptor/web/FilterMap;
           29   69     7         mimeMappings  [Ljava/lang/String;
           34   69     8           parameters  [Ljava/lang/String;
           39   69     9        securityRoles  [Ljava/lang/String;
           44   69    10      servletMappings  [Ljava/lang/String;
           49   69    11         welcomeFiles  [Ljava/lang/String;
           54   69    12    wrapperLifecycles  [Ljava/lang/String;
           59   69    13     wrapperListeners  [Ljava/lang/String;

  protected synchronized void destroy();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1139
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 1140
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.destroy"
            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
         2: .line 1144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getServer:()Lorg/apache/catalina/Server;
            astore 1 /* s */
        start local 1 // org.apache.catalina.Server s
         3: .line 1145
            aload 1 /* s */
            ifnull 5
            aload 1 /* s */
            invokeinterface org.apache.catalina.Server.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifne 5
         4: .line 1146
            return
         5: .line 1150
      StackMap locals: org.apache.catalina.Server
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 9
         6: .line 1151
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getWorkPath:()Ljava/lang/String;
            astore 2 /* workDir */
        start local 2 // java.lang.String workDir
         7: .line 1152
            aload 2 /* workDir */
            ifnull 9
         8: .line 1153
            new java.io.File
            dup
            aload 2 /* workDir */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.catalina.startup.ExpandWar.delete:(Ljava/io/File;)Z
            pop
        end local 2 // java.lang.String workDir
         9: .line 1156
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.catalina.Server s
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/apache/catalina/startup/ContextConfig;
            3   10     1        s  Lorg/apache/catalina/Server;
            7    9     2  workDir  Ljava/lang/String;

  private org.apache.catalina.Server getServer();
    descriptor: ()Lorg/apache/catalina/Server;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1160
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            astore 1 /* c */
        start local 1 // org.apache.catalina.Container c
         1: .line 1161
            goto 3
         2: .line 1162
      StackMap locals: org.apache.catalina.Container
      StackMap stack:
            aload 1 /* c */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            astore 1 /* c */
         3: .line 1161
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            ifnull 4
            aload 1 /* c */
            instanceof org.apache.catalina.Engine
            ifeq 2
         4: .line 1165
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            ifnonnull 6
         5: .line 1166
            aconst_null
            areturn
         6: .line 1169
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            checkcast org.apache.catalina.Engine
            invokeinterface org.apache.catalina.Engine.getService:()Lorg/apache/catalina/Service;
            astore 2 /* s */
        start local 2 // org.apache.catalina.Service s
         7: .line 1171
            aload 2 /* s */
            ifnonnull 9
         8: .line 1172
            aconst_null
            areturn
         9: .line 1175
      StackMap locals: org.apache.catalina.Service
      StackMap stack:
            aload 2 /* s */
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
            areturn
        end local 2 // org.apache.catalina.Service s
        end local 1 // org.apache.catalina.Container c
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/catalina/startup/ContextConfig;
            1   10     1     c  Lorg/apache/catalina/Container;
            7   10     2     s  Lorg/apache/catalina/Service;

  protected void validateSecurityRoles();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=15, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1188
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findConstraints:()[Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;
            astore 1 /* constraints */
        start local 1 // org.apache.tomcat.util.descriptor.web.SecurityConstraint[] constraints
         1: .line 1189
            aload 1 /* constraints */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 13
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] top int int org.apache.tomcat.util.descriptor.web.SecurityConstraint[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* constraint */
        start local 2 // org.apache.tomcat.util.descriptor.web.SecurityConstraint constraint
         3: .line 1190
            aload 2 /* constraint */
            invokevirtual org.apache.tomcat.util.descriptor.web.SecurityConstraint.findAuthRoles:()[Ljava/lang/String;
            astore 6 /* roles */
        start local 6 // java.lang.String[] roles
         4: .line 1191
            aload 6 /* roles */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 11
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] org.apache.tomcat.util.descriptor.web.SecurityConstraint int int org.apache.tomcat.util.descriptor.web.SecurityConstraint[] java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         5: aload 10
            iload 8
            aaload
            astore 7 /* role */
        start local 7 // java.lang.String role
         6: .line 1192
            ldc "*"
            aload 7 /* role */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
         7: .line 1193
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 7 /* role */
            invokeinterface org.apache.catalina.Context.findSecurityRole:(Ljava/lang/String;)Z
            ifne 10
         8: .line 1194
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.role.auth"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* role */
            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
         9: .line 1195
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 7 /* role */
            invokeinterface org.apache.catalina.Context.addSecurityRole:(Ljava/lang/String;)V
        end local 7 // java.lang.String role
        10: .line 1191
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        11: iload 8
            iload 9
            if_icmplt 5
        end local 6 // java.lang.String[] roles
        end local 2 // org.apache.tomcat.util.descriptor.web.SecurityConstraint constraint
        12: .line 1189
            iinc 3 1
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] top int int org.apache.tomcat.util.descriptor.web.SecurityConstraint[]
      StackMap stack:
        13: iload 3
            iload 4
            if_icmplt 2
        14: .line 1201
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.findChildren:()[Lorg/apache/catalina/Container;
            astore 2 /* wrappers */
        start local 2 // org.apache.catalina.Container[] wrappers
        15: .line 1202
            aload 2 /* wrappers */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 32
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] org.apache.catalina.Container[] top int int org.apache.catalina.Container[]
      StackMap stack:
        16: aload 6
            iload 4
            aaload
            astore 3 /* container */
        start local 3 // org.apache.catalina.Container container
        17: .line 1203
            aload 3 /* container */
            checkcast org.apache.catalina.Wrapper
            astore 7 /* wrapper */
        start local 7 // org.apache.catalina.Wrapper wrapper
        18: .line 1204
            aload 7 /* wrapper */
            invokeinterface org.apache.catalina.Wrapper.getRunAs:()Ljava/lang/String;
            astore 8 /* runAs */
        start local 8 // java.lang.String runAs
        19: .line 1205
            aload 8 /* runAs */
            ifnull 22
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 8 /* runAs */
            invokeinterface org.apache.catalina.Context.findSecurityRole:(Ljava/lang/String;)Z
            ifne 22
        20: .line 1206
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.role.runas"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* runAs */
            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
        21: .line 1207
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 8 /* runAs */
            invokeinterface org.apache.catalina.Context.addSecurityRole:(Ljava/lang/String;)V
        22: .line 1209
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] org.apache.catalina.Container[] org.apache.catalina.Container int int org.apache.catalina.Container[] org.apache.catalina.Wrapper java.lang.String
      StackMap stack:
            aload 7 /* wrapper */
            invokeinterface org.apache.catalina.Wrapper.findSecurityReferences:()[Ljava/lang/String;
            astore 9 /* names */
        start local 9 // java.lang.String[] names
        23: .line 1210
            aload 9 /* names */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 30
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] org.apache.catalina.Container[] org.apache.catalina.Container int int org.apache.catalina.Container[] org.apache.catalina.Wrapper java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        24: aload 13
            iload 11
            aaload
            astore 10 /* name */
        start local 10 // java.lang.String name
        25: .line 1211
            aload 7 /* wrapper */
            aload 10 /* name */
            invokeinterface org.apache.catalina.Wrapper.findSecurityReference:(Ljava/lang/String;)Ljava/lang/String;
            astore 14 /* link */
        start local 14 // java.lang.String link
        26: .line 1212
            aload 14 /* link */
            ifnull 29
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 14 /* link */
            invokeinterface org.apache.catalina.Context.findSecurityRole:(Ljava/lang/String;)Z
            ifne 29
        27: .line 1213
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.role.link"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* link */
            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
        28: .line 1214
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 14 /* link */
            invokeinterface org.apache.catalina.Context.addSecurityRole:(Ljava/lang/String;)V
        end local 14 // java.lang.String link
        end local 10 // java.lang.String name
        29: .line 1210
      StackMap locals:
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        30: iload 11
            iload 12
            if_icmplt 24
        end local 9 // java.lang.String[] names
        end local 8 // java.lang.String runAs
        end local 7 // org.apache.catalina.Wrapper wrapper
        end local 3 // org.apache.catalina.Container container
        31: .line 1202
            iinc 4 1
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.SecurityConstraint[] org.apache.catalina.Container[] top int int org.apache.catalina.Container[]
      StackMap stack:
        32: iload 4
            iload 5
            if_icmplt 16
        33: .line 1219
            return
        end local 2 // org.apache.catalina.Container[] wrappers
        end local 1 // org.apache.tomcat.util.descriptor.web.SecurityConstraint[] constraints
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   34     0         this  Lorg/apache/catalina/startup/ContextConfig;
            1   34     1  constraints  [Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;
            3   12     2   constraint  Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;
            4   12     6        roles  [Ljava/lang/String;
            6   10     7         role  Ljava/lang/String;
           15   34     2     wrappers  [Lorg/apache/catalina/Container;
           17   31     3    container  Lorg/apache/catalina/Container;
           18   31     7      wrapper  Lorg/apache/catalina/Wrapper;
           19   31     8        runAs  Ljava/lang/String;
           23   31     9        names  [Ljava/lang/String;
           25   29    10         name  Ljava/lang/String;
           26   29    14         link  Ljava/lang/String;

  protected java.io.File getHostConfigBase();
    descriptor: ()Ljava/io/File;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1223
            aconst_null
            astore 1 /* file */
        start local 1 // java.io.File file
         1: .line 1224
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            instanceof org.apache.catalina.Host
            ifeq 3
         2: .line 1225
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Host
            invokeinterface org.apache.catalina.Host.getConfigBaseFile:()Ljava/io/File;
            astore 1 /* file */
         3: .line 1227
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* file */
            areturn
        end local 1 // java.io.File file
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/startup/ContextConfig;
            1    4     1  file  Ljava/io/File;

  protected void webConfig();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1263
            new org.apache.tomcat.util.descriptor.web.WebXmlParser
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getXmlNamespaceAware:()Z
         1: .line 1264
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getXmlValidation:()Z
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getXmlBlockExternal:()Z
         2: .line 1263
            invokespecial org.apache.tomcat.util.descriptor.web.WebXmlParser.<init>:(ZZZ)V
            astore 1 /* webXmlParser */
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
         3: .line 1266
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* defaults */
        start local 2 // java.util.Set defaults
         4: .line 1267
            aload 2 /* defaults */
            aload 0 /* this */
            aload 1 /* webXmlParser */
            invokevirtual org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment:(Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Lorg/apache/tomcat/util/descriptor/web/WebXml;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 1269
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* tomcatWebXml */
        start local 3 // java.util.Set tomcatWebXml
         6: .line 1270
            aload 3 /* tomcatWebXml */
            aload 0 /* this */
            aload 1 /* webXmlParser */
            invokevirtual org.apache.catalina.startup.ContextConfig.getTomcatWebXmlFragment:(Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Lorg/apache/tomcat/util/descriptor/web/WebXml;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 1272
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.createWebXml:()Lorg/apache/tomcat/util/descriptor/web/WebXml;
            astore 4 /* webXml */
        start local 4 // org.apache.tomcat.util.descriptor.web.WebXml webXml
         8: .line 1275
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getContextWebXmlSource:()Lorg/xml/sax/InputSource;
            astore 5 /* contextWebXml */
        start local 5 // org.xml.sax.InputSource contextWebXml
         9: .line 1276
            aload 1 /* webXmlParser */
            aload 5 /* contextWebXml */
            aload 4 /* webXml */
            iconst_0
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml:(Lorg/xml/sax/InputSource;Lorg/apache/tomcat/util/descriptor/web/WebXml;Z)Z
            ifne 11
        10: .line 1277
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        11: .line 1280
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
            astore 6 /* sContext */
        start local 6 // jakarta.servlet.ServletContext sContext
        12: .line 1288
            aload 0 /* this */
            aload 4 /* webXml */
            aload 1 /* webXmlParser */
            invokevirtual org.apache.catalina.startup.ContextConfig.processJarsForWebFragments:(Lorg/apache/tomcat/util/descriptor/web/WebXml;Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Ljava/util/Map;
            astore 7 /* fragments */
        start local 7 // java.util.Map fragments
        13: .line 1291
            aconst_null
            astore 8 /* orderedFragments */
        start local 8 // java.util.Set orderedFragments
        14: .line 1293
            aload 4 /* webXml */
            aload 7 /* fragments */
            aload 6 /* sContext */
            invokestatic org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments:(Lorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Map;Ljakarta/servlet/ServletContext;)Ljava/util/Set;
        15: .line 1292
            astore 8 /* orderedFragments */
        16: .line 1296
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 18
        17: .line 1297
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.processServletContainerInitializers:()V
        18: .line 1300
      StackMap locals: jakarta.servlet.ServletContext java.util.Map java.util.Set
      StackMap stack:
            aload 4 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isMetadataComplete:()Z
            ifeq 19
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ifle 20
        19: .line 1302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* webXml */
            aload 8 /* orderedFragments */
            invokevirtual org.apache.catalina.startup.ContextConfig.processClasses:(Lorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Set;)V
        20: .line 1305
      StackMap locals:
      StackMap stack:
            aload 4 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isMetadataComplete:()Z
            ifne 30
        21: .line 1308
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 23
        22: .line 1309
            aload 0 /* this */
            aload 4 /* webXml */
            aload 8 /* orderedFragments */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.merge:(Ljava/util/Set;)Z
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        23: .line 1314
      StackMap locals:
      StackMap stack:
            aload 4 /* webXml */
            aload 3 /* tomcatWebXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.merge:(Ljava/util/Set;)Z
            pop
        24: .line 1319
            aload 4 /* webXml */
            aload 2 /* defaults */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.merge:(Ljava/util/Set;)Z
            pop
        25: .line 1322
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 27
        26: .line 1323
            aload 0 /* this */
            aload 4 /* webXml */
            invokevirtual org.apache.catalina.startup.ContextConfig.convertJsps:(Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
        27: .line 1327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 34
        28: .line 1328
            aload 0 /* this */
            aload 4 /* webXml */
            invokevirtual org.apache.catalina.startup.ContextConfig.configureContext:(Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
        29: .line 1330
            goto 34
        30: .line 1331
      StackMap locals:
      StackMap stack:
            aload 4 /* webXml */
            aload 3 /* tomcatWebXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.merge:(Ljava/util/Set;)Z
            pop
        31: .line 1332
            aload 4 /* webXml */
            aload 2 /* defaults */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.merge:(Ljava/util/Set;)Z
            pop
        32: .line 1333
            aload 0 /* this */
            aload 4 /* webXml */
            invokevirtual org.apache.catalina.startup.ContextConfig.convertJsps:(Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
        33: .line 1334
            aload 0 /* this */
            aload 4 /* webXml */
            invokevirtual org.apache.catalina.startup.ContextConfig.configureContext:(Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
        34: .line 1337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLogEffectiveWebXml:()Z
            ifeq 36
        35: .line 1338
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.effectiveWebXml"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.toXml:()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
        36: .line 1343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 44
        37: .line 1346
            new java.util.LinkedHashSet
            dup
            aload 8 /* orderedFragments */
            invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
            astore 9 /* resourceJars */
        start local 9 // java.util.Set resourceJars
        38: .line 1347
            aload 7 /* fragments */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 42
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource jakarta.servlet.ServletContext java.util.Map java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        39: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.WebXml
            astore 10 /* fragment */
        start local 10 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        40: .line 1348
            aload 9 /* resourceJars */
            aload 10 /* fragment */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 42
        41: .line 1349
            aload 9 /* resourceJars */
            aload 10 /* fragment */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        42: .line 1347
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        43: .line 1352
            aload 0 /* this */
            aload 9 /* resourceJars */
            invokevirtual org.apache.catalina.startup.ContextConfig.processResourceJARs:(Ljava/util/Set;)V
        end local 9 // java.util.Set resourceJars
        44: .line 1359
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource jakarta.servlet.ServletContext java.util.Map java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 56
        45: .line 1362
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 55
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource jakarta.servlet.ServletContext java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
        46: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* entry */
        start local 9 // java.util.Map$Entry entry
        47: .line 1363
            aload 9 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 52
        48: .line 1364
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
        49: .line 1365
            aload 9 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jakarta.servlet.ServletContainerInitializer
            aconst_null
        50: .line 1364
            invokeinterface org.apache.catalina.Context.addServletContainerInitializer:(Ljakarta/servlet/ServletContainerInitializer;Ljava/util/Set;)V
        51: .line 1366
            goto 55
        52: .line 1367
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource jakarta.servlet.ServletContext java.util.Map java.util.Set java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
        53: .line 1368
            aload 9 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jakarta.servlet.ServletContainerInitializer
            aload 9 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
        54: .line 1367
            invokeinterface org.apache.catalina.Context.addServletContainerInitializer:(Ljakarta/servlet/ServletContainerInitializer;Ljava/util/Set;)V
        end local 9 // java.util.Map$Entry entry
        55: .line 1361
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource jakarta.servlet.ServletContext java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        56: .line 1372
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser java.util.Set java.util.Set org.apache.tomcat.util.descriptor.web.WebXml org.xml.sax.InputSource jakarta.servlet.ServletContext java.util.Map java.util.Set
      StackMap stack:
            return
        end local 8 // java.util.Set orderedFragments
        end local 7 // java.util.Map fragments
        end local 6 // jakarta.servlet.ServletContext sContext
        end local 5 // org.xml.sax.InputSource contextWebXml
        end local 4 // org.apache.tomcat.util.descriptor.web.WebXml webXml
        end local 3 // java.util.Set tomcatWebXml
        end local 2 // java.util.Set defaults
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   57     0              this  Lorg/apache/catalina/startup/ContextConfig;
            3   57     1      webXmlParser  Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;
            4   57     2          defaults  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
            6   57     3      tomcatWebXml  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
            8   57     4            webXml  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            9   57     5     contextWebXml  Lorg/xml/sax/InputSource;
           12   57     6          sContext  Ljakarta/servlet/ServletContext;
           13   57     7         fragments  Ljava/util/Map<Ljava/lang/String;Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
           14   57     8  orderedFragments  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
           38   44     9      resourceJars  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
           40   42    10          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
           47   55     9             entry  Ljava/util/Map$Entry<Ljakarta/servlet/ServletContainerInitializer;Ljava/util/Set<Ljava/lang/Class<*>;>;>;

  protected void processClasses(org.apache.tomcat.util.descriptor.web.WebXml, java.util.Set<org.apache.tomcat.util.descriptor.web.WebXml>);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Set;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXml webXml
        start local 2 // java.util.Set orderedFragments
         0: .line 1381
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.isParallelAnnotationScanning:()Z
            ifeq 3
         1: .line 1382
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            astore 3 /* javaClassCache */
        start local 3 // java.util.Map javaClassCache
         2: .line 1383
            goto 4
        end local 3 // java.util.Map javaClassCache
         3: .line 1384
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* javaClassCache */
        start local 3 // java.util.Map javaClassCache
         4: .line 1387
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 16
         5: .line 1389
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getResources:()Lorg/apache/catalina/WebResourceRoot;
            ldc "/WEB-INF/classes"
            invokeinterface org.apache.catalina.WebResourceRoot.listResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
         6: .line 1388
            astore 4 /* webResources */
        start local 4 // org.apache.catalina.WebResource[] webResources
         7: .line 1391
            aload 4 /* webResources */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 15
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Set java.util.Map org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
      StackMap stack:
         8: aload 8
            iload 6
            aaload
            astore 5 /* webResource */
        start local 5 // org.apache.catalina.WebResource webResource
         9: .line 1394
            ldc "META-INF"
            aload 5 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 1395
            goto 14
        11: .line 1397
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Set java.util.Map org.apache.catalina.WebResource[] org.apache.catalina.WebResource int int org.apache.catalina.WebResource[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* webResource */
            aload 1 /* webXml */
        12: .line 1398
            aload 1 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isMetadataComplete:()Z
            aload 3 /* javaClassCache */
        13: .line 1397
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource:(Lorg/apache/catalina/WebResource;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
        end local 5 // org.apache.catalina.WebResource webResource
        14: .line 1391
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Set java.util.Map org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        15: iload 6
            iload 7
            if_icmplt 8
        end local 4 // org.apache.catalina.WebResource[] webResources
        16: .line 1406
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Set java.util.Map
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.ok:Z
            ifeq 20
        17: .line 1407
            aload 0 /* this */
        18: .line 1408
            aload 2 /* orderedFragments */
            aload 1 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isMetadataComplete:()Z
            aload 3 /* javaClassCache */
        19: .line 1407
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotations:(Ljava/util/Set;ZLjava/util/Map;)V
        20: .line 1412
      StackMap locals:
      StackMap stack:
            aload 3 /* javaClassCache */
            invokeinterface java.util.Map.clear:()V
        21: .line 1413
            return
        end local 3 // java.util.Map javaClassCache
        end local 2 // java.util.Set orderedFragments
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXml webXml
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   22     1            webXml  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   22     2  orderedFragments  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
            2    3     3    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            4   22     3    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            7   16     4      webResources  [Lorg/apache/catalina/WebResource;
            9   14     5       webResource  Lorg/apache/catalina/WebResource;
    Signature: (Lorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;)V
    MethodParameters:
                  Name  Flags
      webXml            
      orderedFragments  

  private void configureContext(org.apache.tomcat.util.descriptor.web.WebXml);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=14, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXml webxml
         0: .line 1420
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getPublicId:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Context.setPublicId:(Ljava/lang/String;)V
         1: .line 1423
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getMajorVersion:()I
            invokeinterface org.apache.catalina.Context.setEffectiveMajorVersion:(I)V
         2: .line 1424
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getMinorVersion:()I
            invokeinterface org.apache.catalina.Context.setEffectiveMinorVersion:(I)V
         3: .line 1426
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getContextParams:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         5: .line 1427
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.catalina.Context.addParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 2 // java.util.Map$Entry entry
         6: .line 1426
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 1429
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
         8: .line 1430
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getDenyUncoveredHttpMethods:()Z
         9: .line 1429
            invokeinterface org.apache.catalina.Context.setDenyUncoveredHttpMethods:(Z)V
        10: .line 1431
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getDisplayName:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Context.setDisplayName:(Ljava/lang/String;)V
        11: .line 1432
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isDistributable:()Z
            invokeinterface org.apache.catalina.Context.setDistributable:(Z)V
        12: .line 1433
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getEjbLocalRefs:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 15
      StackMap locals:
      StackMap stack:
        13: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ContextLocalEjb
            astore 2 /* ejbLocalRef */
        start local 2 // org.apache.tomcat.util.descriptor.web.ContextLocalEjb ejbLocalRef
        14: .line 1434
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 2 /* ejbLocalRef */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addLocalEjb:(Lorg/apache/tomcat/util/descriptor/web/ContextLocalEjb;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.ContextLocalEjb ejbLocalRef
        15: .line 1433
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 1436
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getEjbRefs:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ContextEjb
            astore 2 /* ejbRef */
        start local 2 // org.apache.tomcat.util.descriptor.web.ContextEjb ejbRef
        18: .line 1437
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 2 /* ejbRef */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addEjb:(Lorg/apache/tomcat/util/descriptor/web/ContextEjb;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.ContextEjb ejbRef
        19: .line 1436
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 1439
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getEnvEntries:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 23
      StackMap locals:
      StackMap stack:
        21: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ContextEnvironment
            astore 2 /* environment */
        start local 2 // org.apache.tomcat.util.descriptor.web.ContextEnvironment environment
        22: .line 1440
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 2 /* environment */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addEnvironment:(Lorg/apache/tomcat/util/descriptor/web/ContextEnvironment;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.ContextEnvironment environment
        23: .line 1439
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 1442
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getErrorPages:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ErrorPage
            astore 2 /* errorPage */
        start local 2 // org.apache.tomcat.util.descriptor.web.ErrorPage errorPage
        26: .line 1443
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* errorPage */
            invokeinterface org.apache.catalina.Context.addErrorPage:(Lorg/apache/tomcat/util/descriptor/web/ErrorPage;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.ErrorPage errorPage
        27: .line 1442
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        28: .line 1445
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getFilters:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 33
      StackMap locals:
      StackMap stack:
        29: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.FilterDef
            astore 2 /* filter */
        start local 2 // org.apache.tomcat.util.descriptor.web.FilterDef filter
        30: .line 1446
            aload 2 /* filter */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getAsyncSupported:()Ljava/lang/String;
            ifnonnull 32
        31: .line 1447
            aload 2 /* filter */
            ldc "false"
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setAsyncSupported:(Ljava/lang/String;)V
        32: .line 1449
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml org.apache.tomcat.util.descriptor.web.FilterDef java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* filter */
            invokeinterface org.apache.catalina.Context.addFilterDef:(Lorg/apache/tomcat/util/descriptor/web/FilterDef;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.FilterDef filter
        33: .line 1445
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        34: .line 1451
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getFilterMappings:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 37
      StackMap locals:
      StackMap stack:
        35: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.FilterMap
            astore 2 /* filterMap */
        start local 2 // org.apache.tomcat.util.descriptor.web.FilterMap filterMap
        36: .line 1452
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* filterMap */
            invokeinterface org.apache.catalina.Context.addFilterMap:(Lorg/apache/tomcat/util/descriptor/web/FilterMap;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.FilterMap filterMap
        37: .line 1451
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        38: .line 1454
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getJspConfigDescriptor:()Ljakarta/servlet/descriptor/JspConfigDescriptor;
            invokeinterface org.apache.catalina.Context.setJspConfigDescriptor:(Ljakarta/servlet/descriptor/JspConfigDescriptor;)V
        39: .line 1455
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getListeners:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 42
      StackMap locals:
      StackMap stack:
        40: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* listener */
        start local 2 // java.lang.String listener
        41: .line 1456
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* listener */
            invokeinterface org.apache.catalina.Context.addApplicationListener:(Ljava/lang/String;)V
        end local 2 // java.lang.String listener
        42: .line 1455
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        43: .line 1459
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getLocaleEncodingMappings:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 48
      StackMap locals:
      StackMap stack:
        44: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
        45: .line 1460
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
        46: .line 1461
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
        47: .line 1460
            invokeinterface org.apache.catalina.Context.addLocaleEncodingMappingParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 2 // java.util.Map$Entry entry
        48: .line 1458
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
        49: .line 1464
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getLoginConfig:()Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            ifnull 51
        50: .line 1465
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getLoginConfig:()Lorg/apache/tomcat/util/descriptor/web/LoginConfig;
            invokeinterface org.apache.catalina.Context.setLoginConfig:(Lorg/apache/tomcat/util/descriptor/web/LoginConfig;)V
        51: .line 1468
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml
      StackMap stack:
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getMessageDestinationRefs:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 54
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml top java.util.Iterator
      StackMap stack:
        52: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.MessageDestinationRef
            astore 2 /* mdr */
        start local 2 // org.apache.tomcat.util.descriptor.web.MessageDestinationRef mdr
        53: .line 1469
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 2 /* mdr */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addMessageDestinationRef:(Lorg/apache/tomcat/util/descriptor/web/MessageDestinationRef;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.MessageDestinationRef mdr
        54: .line 1467
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        55: .line 1474
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isMetadataComplete:()Z
            invokeinterface org.apache.catalina.Context.setIgnoreAnnotations:(Z)V
        56: .line 1476
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getMimeMappings:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 59
      StackMap locals:
      StackMap stack:
        57: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
        58: .line 1477
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.catalina.Context.addMimeMapping:(Ljava/lang/String;Ljava/lang/String;)V
        end local 2 // java.util.Map$Entry entry
        59: .line 1475
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 57
        60: .line 1479
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getRequestCharacterEncoding:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Context.setRequestCharacterEncoding:(Ljava/lang/String;)V
        61: .line 1482
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getResourceEnvRefs:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 64
      StackMap locals:
      StackMap stack:
        62: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ContextResourceEnvRef
            astore 2 /* resource */
        start local 2 // org.apache.tomcat.util.descriptor.web.ContextResourceEnvRef resource
        63: .line 1483
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 2 /* resource */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addResourceEnvRef:(Lorg/apache/tomcat/util/descriptor/web/ContextResourceEnvRef;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.ContextResourceEnvRef resource
        64: .line 1481
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 62
        65: .line 1485
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getResourceRefs:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 68
      StackMap locals:
      StackMap stack:
        66: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ContextResource
            astore 2 /* resource */
        start local 2 // org.apache.tomcat.util.descriptor.web.ContextResource resource
        67: .line 1486
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 2 /* resource */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addResource:(Lorg/apache/tomcat/util/descriptor/web/ContextResource;)V
        end local 2 // org.apache.tomcat.util.descriptor.web.ContextResource resource
        68: .line 1485
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 66
        69: .line 1488
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getResponseCharacterEncoding:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Context.setResponseCharacterEncoding:(Ljava/lang/String;)V
        70: .line 1490
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getSecurityRoles:()Ljava/util/Set;
        71: .line 1491
            ldc "**"
        72: .line 1490
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
        73: .line 1489
            istore 2 /* allAuthenticatedUsersIsAppRole */
        start local 2 // boolean allAuthenticatedUsersIsAppRole
        74: .line 1492
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getSecurityConstraints:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 79
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int top java.util.Iterator
      StackMap stack:
        75: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.SecurityConstraint
            astore 3 /* constraint */
        start local 3 // org.apache.tomcat.util.descriptor.web.SecurityConstraint constraint
        76: .line 1493
            iload 2 /* allAuthenticatedUsersIsAppRole */
            ifeq 78
        77: .line 1494
            aload 3 /* constraint */
            invokevirtual org.apache.tomcat.util.descriptor.web.SecurityConstraint.treatAllAuthenticatedUsersAsApplicationRole:()V
        78: .line 1496
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SecurityConstraint java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 3 /* constraint */
            invokeinterface org.apache.catalina.Context.addConstraint:(Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;)V
        end local 3 // org.apache.tomcat.util.descriptor.web.SecurityConstraint constraint
        79: .line 1492
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 75
        80: .line 1498
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getSecurityRoles:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 83
      StackMap locals:
      StackMap stack:
        81: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* role */
        start local 3 // java.lang.String role
        82: .line 1499
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 3 /* role */
            invokeinterface org.apache.catalina.Context.addSecurityRole:(Ljava/lang/String;)V
        end local 3 // java.lang.String role
        83: .line 1498
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 81
        84: .line 1501
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServiceRefs:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 87
      StackMap locals:
      StackMap stack:
        85: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ContextService
            astore 3 /* service */
        start local 3 // org.apache.tomcat.util.descriptor.web.ContextService service
        86: .line 1502
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getNamingResources:()Lorg/apache/catalina/deploy/NamingResourcesImpl;
            aload 3 /* service */
            invokevirtual org.apache.catalina.deploy.NamingResourcesImpl.addService:(Lorg/apache/tomcat/util/descriptor/web/ContextService;)V
        end local 3 // org.apache.tomcat.util.descriptor.web.ContextService service
        87: .line 1501
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 85
        88: .line 1504
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServlets:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 133
      StackMap locals:
      StackMap stack:
        89: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ServletDef
            astore 3 /* servlet */
        start local 3 // org.apache.tomcat.util.descriptor.web.ServletDef servlet
        90: .line 1505
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.createWrapper:()Lorg/apache/catalina/Wrapper;
            astore 5 /* wrapper */
        start local 5 // org.apache.catalina.Wrapper wrapper
        91: .line 1512
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getLoadOnStartup:()Ljava/lang/Integer;
            ifnull 93
        92: .line 1513
            aload 5 /* wrapper */
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getLoadOnStartup:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface org.apache.catalina.Wrapper.setLoadOnStartup:(I)V
        93: .line 1515
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.ServletDef java.util.Iterator org.apache.catalina.Wrapper
      StackMap stack:
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getEnabled:()Ljava/lang/Boolean;
            ifnull 95
        94: .line 1516
            aload 5 /* wrapper */
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getEnabled:()Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokeinterface org.apache.catalina.Wrapper.setEnabled:(Z)V
        95: .line 1518
      StackMap locals:
      StackMap stack:
            aload 5 /* wrapper */
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getServletName:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Wrapper.setName:(Ljava/lang/String;)V
        96: .line 1519
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getParameterMap:()Ljava/util/Map;
            astore 6 /* params */
        start local 6 // java.util.Map params
        97: .line 1520
            aload 6 /* params */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 100
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.ServletDef java.util.Iterator org.apache.catalina.Wrapper java.util.Map top java.util.Iterator
      StackMap stack:
        98: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* entry */
        start local 7 // java.util.Map$Entry entry
        99: .line 1521
            aload 5 /* wrapper */
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 7 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.catalina.Wrapper.addInitParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.util.Map$Entry entry
       100: .line 1520
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 98
       101: .line 1523
            aload 5 /* wrapper */
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getRunAs:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Wrapper.setRunAs:(Ljava/lang/String;)V
       102: .line 1524
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getSecurityRoleRefs:()Ljava/util/Set;
            astore 7 /* roleRefs */
        start local 7 // java.util.Set roleRefs
       103: .line 1525
            aload 7 /* roleRefs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 108
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.ServletDef java.util.Iterator org.apache.catalina.Wrapper java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
       104: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.SecurityRoleRef
            astore 8 /* roleRef */
        start local 8 // org.apache.tomcat.util.descriptor.web.SecurityRoleRef roleRef
       105: .line 1526
            aload 5 /* wrapper */
       106: .line 1527
            aload 8 /* roleRef */
            invokevirtual org.apache.tomcat.util.descriptor.web.SecurityRoleRef.getName:()Ljava/lang/String;
            aload 8 /* roleRef */
            invokevirtual org.apache.tomcat.util.descriptor.web.SecurityRoleRef.getLink:()Ljava/lang/String;
       107: .line 1526
            invokeinterface org.apache.catalina.Wrapper.addSecurityReference:(Ljava/lang/String;Ljava/lang/String;)V
        end local 8 // org.apache.tomcat.util.descriptor.web.SecurityRoleRef roleRef
       108: .line 1525
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 104
       109: .line 1529
            aload 5 /* wrapper */
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getServletClass:()Ljava/lang/String;
            invokeinterface org.apache.catalina.Wrapper.setServletClass:(Ljava/lang/String;)V
       110: .line 1530
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getMultipartDef:()Lorg/apache/tomcat/util/descriptor/web/MultipartDef;
            astore 8 /* multipartdef */
        start local 8 // org.apache.tomcat.util.descriptor.web.MultipartDef multipartdef
       111: .line 1531
            aload 8 /* multipartdef */
            ifnull 127
       112: .line 1532
            ldc -1
            lstore 9 /* maxFileSize */
        start local 9 // long maxFileSize
       113: .line 1533
            ldc -1
            lstore 11 /* maxRequestSize */
        start local 11 // long maxRequestSize
       114: .line 1534
            iconst_0
            istore 13 /* fileSizeThreshold */
        start local 13 // int fileSizeThreshold
       115: .line 1536
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getMaxFileSize:()Ljava/lang/String;
            ifnull 117
       116: .line 1537
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getMaxFileSize:()Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 9 /* maxFileSize */
       117: .line 1539
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.ServletDef java.util.Iterator org.apache.catalina.Wrapper java.util.Map java.util.Set org.apache.tomcat.util.descriptor.web.MultipartDef long long int
      StackMap stack:
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getMaxRequestSize:()Ljava/lang/String;
            ifnull 119
       118: .line 1540
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getMaxRequestSize:()Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 11 /* maxRequestSize */
       119: .line 1542
      StackMap locals:
      StackMap stack:
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getFileSizeThreshold:()Ljava/lang/String;
            ifnull 121
       120: .line 1543
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getFileSizeThreshold:()Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 13 /* fileSizeThreshold */
       121: .line 1546
      StackMap locals:
      StackMap stack:
            aload 5 /* wrapper */
            new jakarta.servlet.MultipartConfigElement
            dup
       122: .line 1547
            aload 8 /* multipartdef */
            invokevirtual org.apache.tomcat.util.descriptor.web.MultipartDef.getLocation:()Ljava/lang/String;
       123: .line 1548
            lload 9 /* maxFileSize */
       124: .line 1549
            lload 11 /* maxRequestSize */
       125: .line 1550
            iload 13 /* fileSizeThreshold */
            invokespecial jakarta.servlet.MultipartConfigElement.<init>:(Ljava/lang/String;JJI)V
       126: .line 1546
            invokeinterface org.apache.catalina.Wrapper.setMultipartConfigElement:(Ljakarta/servlet/MultipartConfigElement;)V
        end local 13 // int fileSizeThreshold
        end local 11 // long maxRequestSize
        end local 9 // long maxFileSize
       127: .line 1552
      StackMap locals:
      StackMap stack:
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getAsyncSupported:()Ljava/lang/Boolean;
            ifnull 131
       128: .line 1553
            aload 5 /* wrapper */
       129: .line 1554
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getAsyncSupported:()Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
       130: .line 1553
            invokeinterface org.apache.catalina.Wrapper.setAsyncSupported:(Z)V
       131: .line 1556
      StackMap locals:
      StackMap stack:
            aload 5 /* wrapper */
            aload 3 /* servlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.isOverridable:()Z
            invokeinterface org.apache.catalina.Wrapper.setOverridable:(Z)V
       132: .line 1557
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 5 /* wrapper */
            invokeinterface org.apache.catalina.Context.addChild:(Lorg/apache/catalina/Container;)V
        end local 8 // org.apache.tomcat.util.descriptor.web.MultipartDef multipartdef
        end local 7 // java.util.Set roleRefs
        end local 6 // java.util.Map params
        end local 5 // org.apache.catalina.Wrapper wrapper
        end local 3 // org.apache.tomcat.util.descriptor.web.ServletDef servlet
       133: .line 1504
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 89
       134: .line 1560
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServletMappings:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 137
      StackMap locals:
      StackMap stack:
       135: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
       136: .line 1561
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.catalina.Context.addServletMappingDecoded:(Ljava/lang/String;Ljava/lang/String;)V
        end local 3 // java.util.Map$Entry entry
       137: .line 1559
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 135
       138: .line 1563
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getSessionConfig:()Lorg/apache/tomcat/util/descriptor/web/SessionConfig;
            astore 3 /* sessionConfig */
        start local 3 // org.apache.tomcat.util.descriptor.web.SessionConfig sessionConfig
       139: .line 1564
            aload 3 /* sessionConfig */
            ifnull 160
       140: .line 1565
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getSessionTimeout:()Ljava/lang/Integer;
            ifnull 144
       141: .line 1566
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
       142: .line 1567
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getSessionTimeout:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
       143: .line 1566
            invokeinterface org.apache.catalina.Context.setSessionTimeout:(I)V
       144: .line 1570
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
            invokeinterface jakarta.servlet.ServletContext.getSessionCookieConfig:()Ljakarta/servlet/SessionCookieConfig;
       145: .line 1569
            astore 4 /* scc */
        start local 4 // jakarta.servlet.SessionCookieConfig scc
       146: .line 1571
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieName:()Ljava/lang/String;
            invokeinterface jakarta.servlet.SessionCookieConfig.setName:(Ljava/lang/String;)V
       147: .line 1572
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieDomain:()Ljava/lang/String;
            invokeinterface jakarta.servlet.SessionCookieConfig.setDomain:(Ljava/lang/String;)V
       148: .line 1573
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookiePath:()Ljava/lang/String;
            invokeinterface jakarta.servlet.SessionCookieConfig.setPath:(Ljava/lang/String;)V
       149: .line 1574
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieComment:()Ljava/lang/String;
            invokeinterface jakarta.servlet.SessionCookieConfig.setComment:(Ljava/lang/String;)V
       150: .line 1575
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieHttpOnly:()Ljava/lang/Boolean;
            ifnull 152
       151: .line 1576
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieHttpOnly:()Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokeinterface jakarta.servlet.SessionCookieConfig.setHttpOnly:(Z)V
       152: .line 1578
      StackMap locals: jakarta.servlet.SessionCookieConfig
      StackMap stack:
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieSecure:()Ljava/lang/Boolean;
            ifnull 154
       153: .line 1579
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieSecure:()Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokeinterface jakarta.servlet.SessionCookieConfig.setSecure:(Z)V
       154: .line 1581
      StackMap locals:
      StackMap stack:
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieMaxAge:()Ljava/lang/Integer;
            ifnull 156
       155: .line 1582
            aload 4 /* scc */
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getCookieMaxAge:()Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            invokeinterface jakarta.servlet.SessionCookieConfig.setMaxAge:(I)V
       156: .line 1584
      StackMap locals:
      StackMap stack:
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getSessionTrackingModes:()Ljava/util/EnumSet;
            invokevirtual java.util.EnumSet.size:()I
            ifle 160
       157: .line 1585
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
       158: .line 1586
            aload 3 /* sessionConfig */
            invokevirtual org.apache.tomcat.util.descriptor.web.SessionConfig.getSessionTrackingModes:()Ljava/util/EnumSet;
       159: .line 1585
            invokeinterface jakarta.servlet.ServletContext.setSessionTrackingModes:(Ljava/util/Set;)V
        end local 4 // jakarta.servlet.SessionCookieConfig scc
       160: .line 1592
      StackMap locals:
      StackMap stack:
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getWelcomeFiles:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 164
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig top java.util.Iterator
      StackMap stack:
       161: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* welcomeFile */
        start local 4 // java.lang.String welcomeFile
       162: .line 1600
            aload 4 /* welcomeFile */
            ifnull 164
            aload 4 /* welcomeFile */
            invokevirtual java.lang.String.length:()I
            ifle 164
       163: .line 1601
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 4 /* welcomeFile */
            invokeinterface org.apache.catalina.Context.addWelcomeFile:(Ljava/lang/String;)V
        end local 4 // java.lang.String welcomeFile
       164: .line 1592
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 161
       165: .line 1607
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getJspPropertyGroups:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 183
      StackMap locals:
      StackMap stack:
       166: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.JspPropertyGroup
            astore 4 /* jspPropertyGroup */
        start local 4 // org.apache.tomcat.util.descriptor.web.JspPropertyGroup jspPropertyGroup
       167: .line 1608
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            ldc "*.jsp"
            invokeinterface org.apache.catalina.Context.findServletMapping:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* jspServletName */
        start local 6 // java.lang.String jspServletName
       168: .line 1609
            aload 6 /* jspServletName */
            ifnonnull 170
       169: .line 1610
            ldc "jsp"
            astore 6 /* jspServletName */
       170: .line 1612
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig org.apache.tomcat.util.descriptor.web.JspPropertyGroup java.util.Iterator java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 6 /* jspServletName */
            invokeinterface org.apache.catalina.Context.findChild:(Ljava/lang/String;)Lorg/apache/catalina/Container;
            ifnull 176
       171: .line 1613
            aload 4 /* jspPropertyGroup */
            invokevirtual org.apache.tomcat.util.descriptor.web.JspPropertyGroup.getUrlPatterns:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 174
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig org.apache.tomcat.util.descriptor.web.JspPropertyGroup java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
       172: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* urlPattern */
        start local 7 // java.lang.String urlPattern
       173: .line 1614
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 7 /* urlPattern */
            aload 6 /* jspServletName */
            iconst_1
            invokeinterface org.apache.catalina.Context.addServletMappingDecoded:(Ljava/lang/String;Ljava/lang/String;Z)V
        end local 7 // java.lang.String urlPattern
       174: .line 1613
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 172
       175: .line 1616
            goto 183
       176: .line 1617
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig org.apache.tomcat.util.descriptor.web.JspPropertyGroup java.util.Iterator java.lang.String
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 183
       177: .line 1618
            aload 4 /* jspPropertyGroup */
            invokevirtual org.apache.tomcat.util.descriptor.web.JspPropertyGroup.getUrlPatterns:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 182
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig org.apache.tomcat.util.descriptor.web.JspPropertyGroup java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
       178: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* urlPattern */
        start local 7 // java.lang.String urlPattern
       179: .line 1619
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Skipping "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* urlPattern */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " , no servlet "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       180: .line 1620
            aload 6 /* jspServletName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       181: .line 1619
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        end local 7 // java.lang.String urlPattern
       182: .line 1618
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 178
        end local 6 // java.lang.String jspServletName
        end local 4 // org.apache.tomcat.util.descriptor.web.JspPropertyGroup jspPropertyGroup
       183: .line 1606
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml int org.apache.tomcat.util.descriptor.web.SessionConfig top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 166
       184: .line 1627
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getPostConstructMethods:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 187
      StackMap locals:
      StackMap stack:
       185: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
       186: .line 1628
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.catalina.Context.addPostConstructMethod:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.util.Map$Entry entry
       187: .line 1626
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 185
       188: .line 1632
            aload 1 /* webxml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getPreDestroyMethods:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 191
      StackMap locals:
      StackMap stack:
       189: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
       190: .line 1633
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface org.apache.catalina.Context.addPreDestroyMethod:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.util.Map$Entry entry
       191: .line 1631
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 189
       192: .line 1635
            return
        end local 3 // org.apache.tomcat.util.descriptor.web.SessionConfig sessionConfig
        end local 2 // boolean allAuthenticatedUsersIsAppRole
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXml webxml
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0  193     0                            this  Lorg/apache/catalina/startup/ContextConfig;
            0  193     1                          webxml  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            5    6     2                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
           14   15     2                     ejbLocalRef  Lorg/apache/tomcat/util/descriptor/web/ContextLocalEjb;
           18   19     2                          ejbRef  Lorg/apache/tomcat/util/descriptor/web/ContextEjb;
           22   23     2                     environment  Lorg/apache/tomcat/util/descriptor/web/ContextEnvironment;
           26   27     2                       errorPage  Lorg/apache/tomcat/util/descriptor/web/ErrorPage;
           30   33     2                          filter  Lorg/apache/tomcat/util/descriptor/web/FilterDef;
           36   37     2                       filterMap  Lorg/apache/tomcat/util/descriptor/web/FilterMap;
           41   42     2                        listener  Ljava/lang/String;
           45   48     2                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
           53   54     2                             mdr  Lorg/apache/tomcat/util/descriptor/web/MessageDestinationRef;
           58   59     2                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
           63   64     2                        resource  Lorg/apache/tomcat/util/descriptor/web/ContextResourceEnvRef;
           67   68     2                        resource  Lorg/apache/tomcat/util/descriptor/web/ContextResource;
           74  193     2  allAuthenticatedUsersIsAppRole  Z
           76   79     3                      constraint  Lorg/apache/tomcat/util/descriptor/web/SecurityConstraint;
           82   83     3                            role  Ljava/lang/String;
           86   87     3                         service  Lorg/apache/tomcat/util/descriptor/web/ContextService;
           90  133     3                         servlet  Lorg/apache/tomcat/util/descriptor/web/ServletDef;
           91  133     5                         wrapper  Lorg/apache/catalina/Wrapper;
           97  133     6                          params  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           99  100     7                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
          103  133     7                        roleRefs  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/SecurityRoleRef;>;
          105  108     8                         roleRef  Lorg/apache/tomcat/util/descriptor/web/SecurityRoleRef;
          111  133     8                    multipartdef  Lorg/apache/tomcat/util/descriptor/web/MultipartDef;
          113  127     9                     maxFileSize  J
          114  127    11                  maxRequestSize  J
          115  127    13               fileSizeThreshold  I
          136  137     3                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
          139  193     3                   sessionConfig  Lorg/apache/tomcat/util/descriptor/web/SessionConfig;
          146  160     4                             scc  Ljakarta/servlet/SessionCookieConfig;
          162  164     4                     welcomeFile  Ljava/lang/String;
          167  183     4                jspPropertyGroup  Lorg/apache/tomcat/util/descriptor/web/JspPropertyGroup;
          168  183     6                  jspServletName  Ljava/lang/String;
          173  174     7                      urlPattern  Ljava/lang/String;
          179  182     7                      urlPattern  Ljava/lang/String;
          186  187     4                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
          190  191     4                           entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
        Name  Flags
      webxml  

  private org.apache.tomcat.util.descriptor.web.WebXml getTomcatWebXmlFragment(org.apache.tomcat.util.descriptor.web.WebXmlParser);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Lorg/apache/tomcat/util/descriptor/web/WebXml;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
         0: .line 1640
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.createWebXml:()Lorg/apache/tomcat/util/descriptor/web/WebXml;
            astore 2 /* webXmlTomcatFragment */
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml webXmlTomcatFragment
         1: .line 1641
            aload 2 /* webXmlTomcatFragment */
            iconst_1
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setOverridable:(Z)V
         2: .line 1646
            aload 2 /* webXmlTomcatFragment */
            iconst_1
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setDistributable:(Z)V
         3: .line 1649
            aload 2 /* webXmlTomcatFragment */
            iconst_0
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setAlwaysAddWelcomeFiles:(Z)V
         4: .line 1651
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getResources:()Lorg/apache/catalina/WebResourceRoot;
            ldc "/WEB-INF/tomcat-web.xml"
            invokeinterface org.apache.catalina.WebResourceRoot.getResource:(Ljava/lang/String;)Lorg/apache/catalina/WebResource;
            astore 3 /* resource */
        start local 3 // org.apache.catalina.WebResource resource
         5: .line 1652
            aload 3 /* resource */
            invokeinterface org.apache.catalina.WebResource.isFile:()Z
            ifeq 13
         6: .line 1654
            new org.xml.sax.InputSource
            dup
            aload 3 /* resource */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
            astore 4 /* source */
        start local 4 // org.xml.sax.InputSource source
         7: .line 1655
            aload 4 /* source */
            aload 3 /* resource */
            invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
         8: .line 1656
            aload 1 /* webXmlParser */
            aload 4 /* source */
            aload 2 /* webXmlTomcatFragment */
            iconst_0
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml:(Lorg/xml/sax/InputSource;Lorg/apache/tomcat/util/descriptor/web/WebXml;Z)Z
            ifne 13
         9: .line 1657
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        end local 4 // org.xml.sax.InputSource source
        10: .line 1659
            goto 13
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.tomcat.util.descriptor.web.WebXml org.apache.catalina.WebResource
      StackMap stack: java.net.URISyntaxException
        11: astore 4 /* e */
        start local 4 // java.net.URISyntaxException e
        12: .line 1660
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.tomcatWebXmlError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 4 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.net.URISyntaxException e
        13: .line 1663
      StackMap locals:
      StackMap stack:
            aload 2 /* webXmlTomcatFragment */
            areturn
        end local 3 // org.apache.catalina.WebResource resource
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml webXmlTomcatFragment
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lorg/apache/catalina/startup/ContextConfig;
            0   14     1          webXmlParser  Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;
            1   14     2  webXmlTomcatFragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            5   14     3              resource  Lorg/apache/catalina/WebResource;
            7   10     4                source  Lorg/xml/sax/InputSource;
           12   13     4                     e  Ljava/net/URISyntaxException;
      Exception table:
        from    to  target  type
           6    10      11  Class java.net.URISyntaxException
    MethodParameters:
              Name  Flags
      webXmlParser  

  private org.apache.tomcat.util.descriptor.web.WebXml getDefaultWebXmlFragment(org.apache.tomcat.util.descriptor.web.WebXmlParser);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Lorg/apache/tomcat/util/descriptor/web/WebXml;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=14, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
         0: .line 1670
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Host
            astore 2 /* host */
        start local 2 // org.apache.catalina.Host host
         1: .line 1672
            getstatic org.apache.catalina.startup.ContextConfig.hostWebXmlCache:Ljava/util/Map;
            aload 2 /* host */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry
            astore 3 /* entry */
        start local 3 // org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry entry
         2: .line 1674
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getGlobalWebXmlSource:()Lorg/xml/sax/InputSource;
            astore 4 /* globalWebXml */
        start local 4 // org.xml.sax.InputSource globalWebXml
         3: .line 1675
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getHostWebXmlSource:()Lorg/xml/sax/InputSource;
            astore 5 /* hostWebXml */
        start local 5 // org.xml.sax.InputSource hostWebXml
         4: .line 1677
            lconst_0
            lstore 6 /* globalTimeStamp */
        start local 6 // long globalTimeStamp
         5: .line 1678
            lconst_0
            lstore 8 /* hostTimeStamp */
        start local 8 // long hostTimeStamp
         6: .line 1680
            aload 4 /* globalWebXml */
            ifnull 35
         7: .line 1681
            aconst_null
            astore 10 /* uc */
        start local 10 // java.net.URLConnection uc
         8: .line 1683
            new java.net.URL
            dup
            aload 4 /* globalWebXml */
            invokevirtual org.xml.sax.InputSource.getSystemId:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 11 /* url */
        start local 11 // java.net.URL url
         9: .line 1684
            aload 11 /* url */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 10 /* uc */
        10: .line 1685
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getLastModified:()J
            lstore 6 /* globalTimeStamp */
        end local 11 // java.net.URL url
        11: .line 1686
            goto 29
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long java.net.URLConnection
      StackMap stack: java.io.IOException
        12: pop
        13: .line 1687
            ldc -1
            lstore 6 /* globalTimeStamp */
        14: .line 1689
            aload 10 /* uc */
            ifnull 35
        15: .line 1691
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        16: .line 1692
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        17: astore 13 /* e */
        start local 13 // java.io.IOException e
        18: .line 1693
            aload 13 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        19: .line 1694
            ldc -1
            lstore 6 /* globalTimeStamp */
        end local 13 // java.io.IOException e
        20: goto 35
        21: .line 1688
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
        22: .line 1689
            aload 10 /* uc */
            ifnull 28
        23: .line 1691
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        24: .line 1692
            goto 28
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long java.net.URLConnection top java.lang.Throwable
      StackMap stack: java.io.IOException
        25: astore 13 /* e */
        start local 13 // java.io.IOException e
        26: .line 1693
            aload 13 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        27: .line 1694
            ldc -1
            lstore 6 /* globalTimeStamp */
        end local 13 // java.io.IOException e
        28: .line 1697
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        29: .line 1689
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long java.net.URLConnection
      StackMap stack:
            aload 10 /* uc */
            ifnull 35
        30: .line 1691
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        31: .line 1692
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        32: astore 13 /* e */
        start local 13 // java.io.IOException e
        33: .line 1693
            aload 13 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        34: .line 1694
            ldc -1
            lstore 6 /* globalTimeStamp */
        end local 13 // java.io.IOException e
        end local 10 // java.net.URLConnection uc
        35: .line 1700
      StackMap locals:
      StackMap stack:
            aload 5 /* hostWebXml */
            ifnull 64
        36: .line 1701
            aconst_null
            astore 10 /* uc */
        start local 10 // java.net.URLConnection uc
        37: .line 1703
            new java.net.URL
            dup
            aload 5 /* hostWebXml */
            invokevirtual org.xml.sax.InputSource.getSystemId:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 11 /* url */
        start local 11 // java.net.URL url
        38: .line 1704
            aload 11 /* url */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 10 /* uc */
        39: .line 1705
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getLastModified:()J
            lstore 8 /* hostTimeStamp */
        end local 11 // java.net.URL url
        40: .line 1706
            goto 58
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long java.net.URLConnection
      StackMap stack: java.io.IOException
        41: pop
        42: .line 1707
            ldc -1
            lstore 8 /* hostTimeStamp */
        43: .line 1709
            aload 10 /* uc */
            ifnull 64
        44: .line 1711
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        45: .line 1712
            goto 64
      StackMap locals:
      StackMap stack: java.io.IOException
        46: astore 13 /* e */
        start local 13 // java.io.IOException e
        47: .line 1713
            aload 13 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        48: .line 1714
            ldc -1
            lstore 8 /* hostTimeStamp */
        end local 13 // java.io.IOException e
        49: goto 64
        50: .line 1708
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12
        51: .line 1709
            aload 10 /* uc */
            ifnull 57
        52: .line 1711
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        53: .line 1712
            goto 57
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long java.net.URLConnection top java.lang.Throwable
      StackMap stack: java.io.IOException
        54: astore 13 /* e */
        start local 13 // java.io.IOException e
        55: .line 1713
            aload 13 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        56: .line 1714
            ldc -1
            lstore 8 /* hostTimeStamp */
        end local 13 // java.io.IOException e
        57: .line 1717
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        58: .line 1709
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long java.net.URLConnection
      StackMap stack:
            aload 10 /* uc */
            ifnull 64
        59: .line 1711
            aload 10 /* uc */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
        60: .line 1712
            goto 64
      StackMap locals:
      StackMap stack: java.io.IOException
        61: astore 13 /* e */
        start local 13 // java.io.IOException e
        62: .line 1713
            aload 13 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        63: .line 1714
            ldc -1
            lstore 8 /* hostTimeStamp */
        end local 13 // java.io.IOException e
        end local 10 // java.net.URLConnection uc
        64: .line 1720
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            ifnull 69
            aload 3 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.getGlobalTimeStamp:()J
            lload 6 /* globalTimeStamp */
            lcmp
            ifne 69
        65: .line 1721
            aload 3 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.getHostTimeStamp:()J
            lload 8 /* hostTimeStamp */
            lcmp
            ifne 69
        66: .line 1722
            aload 4 /* globalWebXml */
            invokestatic org.apache.tomcat.util.descriptor.InputSourceUtil.close:(Lorg/xml/sax/InputSource;)V
        67: .line 1723
            aload 5 /* hostWebXml */
            invokestatic org.apache.tomcat.util.descriptor.InputSourceUtil.close:(Lorg/xml/sax/InputSource;)V
        68: .line 1724
            aload 3 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.getWebXml:()Lorg/apache/tomcat/util/descriptor/web/WebXml;
            areturn
        69: .line 1730
      StackMap locals:
      StackMap stack:
            aload 2 /* host */
            invokeinterface org.apache.catalina.Host.getPipeline:()Lorg/apache/catalina/Pipeline;
            dup
            astore 10
            monitorenter
        70: .line 1731
            getstatic org.apache.catalina.startup.ContextConfig.hostWebXmlCache:Ljava/util/Map;
            aload 2 /* host */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry
            astore 3 /* entry */
        71: .line 1732
            aload 3 /* entry */
            ifnull 75
            aload 3 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.getGlobalTimeStamp:()J
            lload 6 /* globalTimeStamp */
            lcmp
            ifne 75
        72: .line 1733
            aload 3 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.getHostTimeStamp:()J
            lload 8 /* hostTimeStamp */
            lcmp
            ifne 75
        73: .line 1734
            aload 3 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.getWebXml:()Lorg/apache/tomcat/util/descriptor/web/WebXml;
            aload 10
            monitorexit
        74: areturn
        75: .line 1737
      StackMap locals: org.apache.catalina.Pipeline
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.createWebXml:()Lorg/apache/tomcat/util/descriptor/web/WebXml;
            astore 11 /* webXmlDefaultFragment */
        start local 11 // org.apache.tomcat.util.descriptor.web.WebXml webXmlDefaultFragment
        76: .line 1738
            aload 11 /* webXmlDefaultFragment */
            iconst_1
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setOverridable:(Z)V
        77: .line 1742
            aload 11 /* webXmlDefaultFragment */
            iconst_1
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setDistributable:(Z)V
        78: .line 1745
            aload 11 /* webXmlDefaultFragment */
            iconst_0
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setAlwaysAddWelcomeFiles:(Z)V
        79: .line 1748
            aload 4 /* globalWebXml */
            ifnonnull 82
        80: .line 1750
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.defaultMissing"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
        81: .line 1751
            goto 87
        82: .line 1752
      StackMap locals: org.apache.tomcat.util.descriptor.web.WebXml
      StackMap stack:
            aload 1 /* webXmlParser */
        83: .line 1753
            aload 4 /* globalWebXml */
            aload 11 /* webXmlDefaultFragment */
            iconst_0
        84: .line 1752
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml:(Lorg/xml/sax/InputSource;Lorg/apache/tomcat/util/descriptor/web/WebXml;Z)Z
        85: .line 1753
            ifne 87
        86: .line 1754
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        87: .line 1760
      StackMap locals:
      StackMap stack:
            aload 11 /* webXmlDefaultFragment */
            iconst_1
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setReplaceWelcomeFiles:(Z)V
        88: .line 1762
            aload 1 /* webXmlParser */
        89: .line 1763
            aload 5 /* hostWebXml */
            aload 11 /* webXmlDefaultFragment */
            iconst_0
        90: .line 1762
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXmlParser.parseWebXml:(Lorg/xml/sax/InputSource;Lorg/apache/tomcat/util/descriptor/web/WebXml;Z)Z
        91: .line 1763
            ifne 93
        92: .line 1764
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        93: .line 1768
      StackMap locals:
      StackMap stack:
            lload 6 /* globalTimeStamp */
            ldc -1
            lcmp
            ifeq 99
            lload 8 /* hostTimeStamp */
            ldc -1
            lcmp
            ifeq 99
        94: .line 1769
            new org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry
            dup
            aload 11 /* webXmlDefaultFragment */
        95: .line 1770
            lload 6 /* globalTimeStamp */
            lload 8 /* hostTimeStamp */
        96: .line 1769
            invokespecial org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry.<init>:(Lorg/apache/tomcat/util/descriptor/web/WebXml;JJ)V
            astore 3 /* entry */
        97: .line 1771
            getstatic org.apache.catalina.startup.ContextConfig.hostWebXmlCache:Ljava/util/Map;
            aload 2 /* host */
            aload 3 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        98: .line 1774
            aload 2 /* host */
            new org.apache.catalina.startup.ContextConfig$HostWebXmlCacheCleaner
            dup
            invokespecial org.apache.catalina.startup.ContextConfig$HostWebXmlCacheCleaner.<init>:()V
            invokeinterface org.apache.catalina.Host.addLifecycleListener:(Lorg/apache/catalina/LifecycleListener;)V
        99: .line 1777
      StackMap locals:
      StackMap stack:
            aload 11 /* webXmlDefaultFragment */
            aload 10
            monitorexit
       100: areturn
        end local 11 // org.apache.tomcat.util.descriptor.web.WebXml webXmlDefaultFragment
       101: .line 1730
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXmlParser org.apache.catalina.Host org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry org.xml.sax.InputSource org.xml.sax.InputSource long long org.apache.catalina.Pipeline
      StackMap stack: java.lang.Throwable
            aload 10
            monitorexit
       102: athrow
        end local 8 // long hostTimeStamp
        end local 6 // long globalTimeStamp
        end local 5 // org.xml.sax.InputSource hostWebXml
        end local 4 // org.xml.sax.InputSource globalWebXml
        end local 3 // org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry entry
        end local 2 // org.apache.catalina.Host host
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0  103     0                   this  Lorg/apache/catalina/startup/ContextConfig;
            0  103     1           webXmlParser  Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;
            1  103     2                   host  Lorg/apache/catalina/Host;
            2  103     3                  entry  Lorg/apache/catalina/startup/ContextConfig$DefaultWebXmlCacheEntry;
            3  103     4           globalWebXml  Lorg/xml/sax/InputSource;
            4  103     5             hostWebXml  Lorg/xml/sax/InputSource;
            5  103     6        globalTimeStamp  J
            6  103     8          hostTimeStamp  J
            8   35    10                     uc  Ljava/net/URLConnection;
            9   11    11                    url  Ljava/net/URL;
           18   20    13                      e  Ljava/io/IOException;
           26   28    13                      e  Ljava/io/IOException;
           33   35    13                      e  Ljava/io/IOException;
           37   64    10                     uc  Ljava/net/URLConnection;
           38   40    11                    url  Ljava/net/URL;
           47   49    13                      e  Ljava/io/IOException;
           55   57    13                      e  Ljava/io/IOException;
           62   64    13                      e  Ljava/io/IOException;
           76  101    11  webXmlDefaultFragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
      Exception table:
        from    to  target  type
           8    11      12  Class java.io.IOException
          15    16      17  Class java.io.IOException
           8    14      21  any
          23    24      25  Class java.io.IOException
          30    31      32  Class java.io.IOException
          37    40      41  Class java.io.IOException
          44    45      46  Class java.io.IOException
          37    43      50  any
          52    53      54  Class java.io.IOException
          59    60      61  Class java.io.IOException
          70    74     101  any
          75   100     101  any
         101   102     101  any
    MethodParameters:
              Name  Flags
      webXmlParser  

  private void convertJsps(org.apache.tomcat.util.descriptor.web.WebXml);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXml webXml
         0: .line 1784
            aload 1 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServlets:()Ljava/util/Map;
            ldc "jsp"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ServletDef
            astore 3 /* jspServlet */
        start local 3 // org.apache.tomcat.util.descriptor.web.ServletDef jspServlet
         1: .line 1785
            aload 3 /* jspServlet */
            ifnonnull 12
         2: .line 1786
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* jspInitParams */
        start local 2 // java.util.Map jspInitParams
         3: .line 1787
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            ldc "jsp"
            invokeinterface org.apache.catalina.Context.findChild:(Ljava/lang/String;)Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Wrapper
            astore 4 /* w */
        start local 4 // org.apache.catalina.Wrapper w
         4: .line 1788
            aload 4 /* w */
            ifnull 13
         5: .line 1789
            aload 4 /* w */
            invokeinterface org.apache.catalina.Wrapper.findInitParameters:()[Ljava/lang/String;
            astore 5 /* params */
        start local 5 // java.lang.String[] params
         6: .line 1790
            aload 5 /* params */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 10
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Map org.apache.tomcat.util.descriptor.web.ServletDef org.apache.catalina.Wrapper java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         7: aload 9
            iload 7
            aaload
            astore 6 /* param */
        start local 6 // java.lang.String param
         8: .line 1791
            aload 2 /* jspInitParams */
            aload 6 /* param */
            aload 4 /* w */
            aload 6 /* param */
            invokeinterface org.apache.catalina.Wrapper.findInitParameter:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String param
         9: .line 1790
            iinc 7 1
      StackMap locals:
      StackMap stack:
        10: iload 7
            iload 8
            if_icmplt 7
        end local 5 // java.lang.String[] params
        end local 4 // org.apache.catalina.Wrapper w
        11: .line 1794
            goto 13
        end local 2 // java.util.Map jspInitParams
        12: .line 1795
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml top org.apache.tomcat.util.descriptor.web.ServletDef
      StackMap stack:
            aload 3 /* jspServlet */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getParameterMap:()Ljava/util/Map;
            astore 2 /* jspInitParams */
        start local 2 // java.util.Map jspInitParams
        13: .line 1797
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Map org.apache.tomcat.util.descriptor.web.ServletDef
      StackMap stack:
            aload 1 /* webXml */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServlets:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml java.util.Map org.apache.tomcat.util.descriptor.web.ServletDef top java.util.Iterator
      StackMap stack:
        14: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ServletDef
            astore 4 /* servletDef */
        start local 4 // org.apache.tomcat.util.descriptor.web.ServletDef servletDef
        15: .line 1798
            aload 4 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getJspFile:()Ljava/lang/String;
            ifnull 17
        16: .line 1799
            aload 0 /* this */
            aload 4 /* servletDef */
            aload 2 /* jspInitParams */
            invokevirtual org.apache.catalina.startup.ContextConfig.convertJsp:(Lorg/apache/tomcat/util/descriptor/web/ServletDef;Ljava/util/Map;)V
        end local 4 // org.apache.tomcat.util.descriptor.web.ServletDef servletDef
        17: .line 1797
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        18: .line 1802
            return
        end local 3 // org.apache.tomcat.util.descriptor.web.ServletDef jspServlet
        end local 2 // java.util.Map jspInitParams
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXml webXml
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/apache/catalina/startup/ContextConfig;
            0   19     1         webXml  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            3   12     2  jspInitParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           13   19     2  jspInitParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   19     3     jspServlet  Lorg/apache/tomcat/util/descriptor/web/ServletDef;
            4   11     4              w  Lorg/apache/catalina/Wrapper;
            6   11     5         params  [Ljava/lang/String;
            8    9     6          param  Ljava/lang/String;
           15   17     4     servletDef  Lorg/apache/tomcat/util/descriptor/web/ServletDef;
    MethodParameters:
        Name  Flags
      webXml  

  private void convertJsp(org.apache.tomcat.util.descriptor.web.ServletDef, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/ServletDef;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.ServletDef servletDef
        start local 2 // java.util.Map jspInitParams
         0: .line 1806
            aload 1 /* servletDef */
            ldc "org.apache.jasper.servlet.JspServlet"
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setServletClass:(Ljava/lang/String;)V
         1: .line 1807
            aload 1 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getJspFile:()Ljava/lang/String;
            astore 3 /* jspFile */
        start local 3 // java.lang.String jspFile
         2: .line 1808
            aload 3 /* jspFile */
            ifnull 13
            aload 3 /* jspFile */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 13
         3: .line 1809
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.isServlet22:()Z
            ifeq 10
         4: .line 1810
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 8
         5: .line 1811
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.jspFile.warning"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 1812
            aload 3 /* jspFile */
            aastore
         7: .line 1811
            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
         8: .line 1814
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* jspFile */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* jspFile */
         9: .line 1815
            goto 13
        10: .line 1816
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        11: .line 1817
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.jspFile.error"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* jspFile */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        12: .line 1816
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1820
      StackMap locals:
      StackMap stack:
            aload 1 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getParameterMap:()Ljava/util/Map;
            ldc "jspFile"
            aload 3 /* jspFile */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1821
            aload 1 /* servletDef */
            aconst_null
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setJspFile:(Ljava/lang/String;)V
        15: .line 1822
            aload 2 /* jspInitParams */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.ServletDef java.util.Map java.lang.String top java.util.Iterator
      StackMap stack:
        16: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* initParam */
        start local 4 // java.util.Map$Entry initParam
        17: .line 1823
            aload 1 /* servletDef */
            aload 4 /* initParam */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 4 /* initParam */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.addInitParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.util.Map$Entry initParam
        18: .line 1822
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 1825
            return
        end local 3 // java.lang.String jspFile
        end local 2 // java.util.Map jspInitParams
        end local 1 // org.apache.tomcat.util.descriptor.web.ServletDef servletDef
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lorg/apache/catalina/startup/ContextConfig;
            0   20     1     servletDef  Lorg/apache/tomcat/util/descriptor/web/ServletDef;
            0   20     2  jspInitParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            2   20     3        jspFile  Ljava/lang/String;
           17   18     4      initParam  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Lorg/apache/tomcat/util/descriptor/web/ServletDef;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
               Name  Flags
      servletDef     
      jspInitParams  

  protected org.apache.tomcat.util.descriptor.web.WebXml createWebXml();
    descriptor: ()Lorg/apache/tomcat/util/descriptor/web/WebXml;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1828
            new org.apache.tomcat.util.descriptor.web.WebXml
            dup
            invokespecial org.apache.tomcat.util.descriptor.web.WebXml.<init>:()V
            areturn
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/startup/ContextConfig;

  protected void processServletContainerInitializers();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=11, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1838
            new org.apache.catalina.startup.WebappServiceLoader
            dup
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokespecial org.apache.catalina.startup.WebappServiceLoader.<init>:(Lorg/apache/catalina/Context;)V
            astore 2 /* loader */
        start local 2 // org.apache.catalina.startup.WebappServiceLoader loader
         1: .line 1839
            aload 2 /* loader */
            ldc Ljakarta/servlet/ServletContainerInitializer;
            invokevirtual org.apache.catalina.startup.WebappServiceLoader.load:(Ljava/lang/Class;)Ljava/util/List;
            astore 1 /* detectedScis */
        end local 2 // org.apache.catalina.startup.WebappServiceLoader loader
        start local 1 // java.util.List detectedScis
         2: .line 1840
            goto 12
        end local 1 // java.util.List detectedScis
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 2 /* e */
        start local 2 // java.io.IOException e
         4: .line 1841
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
         5: .line 1842
            ldc "contextConfig.servletContainerInitializerFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 1843
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
         7: .line 1841
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         8: .line 1844
            aload 2 /* e */
         9: .line 1841
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        10: .line 1845
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        11: .line 1846
            return
        end local 2 // java.io.IOException e
        start local 1 // java.util.List detectedScis
        12: .line 1849
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* detectedScis */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 48
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jakarta.servlet.ServletContainerInitializer
            astore 2 /* sci */
        start local 2 // jakarta.servlet.ServletContainerInitializer sci
        14: .line 1850
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
            aload 2 /* sci */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 1854
            aload 2 /* sci */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljakarta/servlet/annotation/HandlesTypes;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast jakarta.servlet.annotation.HandlesTypes
            astore 4 /* ht */
        start local 4 // jakarta.servlet.annotation.HandlesTypes ht
        16: .line 1855
            goto 29
        end local 4 // jakarta.servlet.annotation.HandlesTypes ht
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List jakarta.servlet.ServletContainerInitializer java.util.Iterator
      StackMap stack: java.lang.Exception
        17: astore 5 /* e */
        start local 5 // java.lang.Exception e
        18: .line 1856
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 25
        19: .line 1857
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.sci.debug"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 1858
            aload 2 /* sci */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        21: .line 1857
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        22: .line 1859
            aload 5 /* e */
        23: .line 1857
            invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        24: .line 1860
            goto 48
        25: .line 1861
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List jakarta.servlet.ServletContainerInitializer java.util.Iterator top java.lang.Exception
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.sci.info"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        26: .line 1862
            aload 2 /* sci */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        27: .line 1861
            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
        28: .line 1864
            goto 48
        end local 5 // java.lang.Exception e
        start local 4 // jakarta.servlet.annotation.HandlesTypes ht
        29: .line 1866
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List jakarta.servlet.ServletContainerInitializer java.util.Iterator jakarta.servlet.annotation.HandlesTypes
      StackMap stack:
            aload 4 /* ht */
            ifnonnull 31
        30: .line 1867
            goto 48
        31: .line 1869
      StackMap locals:
      StackMap stack:
            aload 4 /* ht */
            invokeinterface jakarta.servlet.annotation.HandlesTypes.value:()[Ljava/lang/Class;
            astore 5 /* types */
        start local 5 // java.lang.Class[] types
        32: .line 1870
            aload 5 /* types */
            ifnonnull 34
        33: .line 1871
            goto 48
        34: .line 1874
      StackMap locals: java.lang.Class[]
      StackMap stack:
            aload 5 /* types */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 47
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List jakarta.servlet.ServletContainerInitializer java.util.Iterator jakarta.servlet.annotation.HandlesTypes java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
        35: aload 9
            iload 7
            aaload
            astore 6 /* type */
        start local 6 // java.lang.Class type
        36: .line 1875
            aload 6 /* type */
            invokevirtual java.lang.Class.isAnnotation:()Z
            ifeq 39
        37: .line 1876
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.ContextConfig.handlesTypesAnnotations:Z
        38: .line 1877
            goto 40
        39: .line 1878
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List jakarta.servlet.ServletContainerInitializer java.util.Iterator jakarta.servlet.annotation.HandlesTypes java.lang.Class[] java.lang.Class int int java.lang.Class[]
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.startup.ContextConfig.handlesTypesNonAnnotations:Z
        40: .line 1881
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            aload 6 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
        41: .line 1880
            astore 10 /* scis */
        start local 10 // java.util.Set scis
        42: .line 1882
            aload 10 /* scis */
            ifnonnull 45
        43: .line 1883
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 10 /* scis */
        44: .line 1884
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            aload 6 /* type */
            aload 10 /* scis */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 1886
      StackMap locals: java.util.Set
      StackMap stack:
            aload 10 /* scis */
            aload 2 /* sci */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.util.Set scis
        end local 6 // java.lang.Class type
        46: .line 1874
            iinc 7 1
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List jakarta.servlet.ServletContainerInitializer java.util.Iterator jakarta.servlet.annotation.HandlesTypes java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
        47: iload 7
            iload 8
            if_icmplt 35
        end local 5 // java.lang.Class[] types
        end local 4 // jakarta.servlet.annotation.HandlesTypes ht
        end local 2 // jakarta.servlet.ServletContainerInitializer sci
        48: .line 1849
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        49: .line 1889
            return
        end local 1 // java.util.List detectedScis
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   50     0          this  Lorg/apache/catalina/startup/ContextConfig;
            2    3     1  detectedScis  Ljava/util/List<Ljakarta/servlet/ServletContainerInitializer;>;
           12   50     1  detectedScis  Ljava/util/List<Ljakarta/servlet/ServletContainerInitializer;>;
            1    2     2        loader  Lorg/apache/catalina/startup/WebappServiceLoader<Ljakarta/servlet/ServletContainerInitializer;>;
            4   12     2             e  Ljava/io/IOException;
           14   48     2           sci  Ljakarta/servlet/ServletContainerInitializer;
           16   17     4            ht  Ljakarta/servlet/annotation/HandlesTypes;
           29   48     4            ht  Ljakarta/servlet/annotation/HandlesTypes;
           18   29     5             e  Ljava/lang/Exception;
           32   48     5         types  [Ljava/lang/Class;
           36   46     6          type  Ljava/lang/Class<*>;
           42   46    10          scis  Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
          15    16      17  Class java.lang.Exception

  protected void processResourceJARs(java.util.Set<org.apache.tomcat.util.descriptor.web.WebXml>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.util.Set fragments
         0: .line 1901
            aload 1 /* fragments */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 41
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.WebXml
            astore 2 /* fragment */
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         2: .line 1902
            aload 2 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getURL:()Ljava/net/URL;
            astore 4 /* url */
        start local 4 // java.net.URL url
         3: .line 1904
            ldc "jar"
            aload 4 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 4 /* url */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 24
         4: .line 1905
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set org.apache.tomcat.util.descriptor.web.WebXml java.util.Iterator java.net.URL
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
         5: aload 4 /* url */
            invokestatic org.apache.tomcat.util.scan.JarFactory.newInstance:(Ljava/net/URL;)Lorg/apache/tomcat/Jar;
            astore 7 /* jar */
        start local 7 // org.apache.tomcat.Jar jar
         6: .line 1906
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.nextEntry:()V
         7: .line 1907
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.getEntryName:()Ljava/lang/String;
            astore 8 /* entryName */
        start local 8 // java.lang.String entryName
         8: .line 1908
            goto 17
         9: .line 1909
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set org.apache.tomcat.util.descriptor.web.WebXml java.util.Iterator java.net.URL java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar java.lang.String
      StackMap stack:
            aload 8 /* entryName */
            ldc "META-INF/resources/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 15
        10: .line 1910
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getResources:()Lorg/apache/catalina/WebResourceRoot;
        11: .line 1911
            getstatic org.apache.catalina.WebResourceRoot$ResourceSetType.RESOURCE_JAR:Lorg/apache/catalina/WebResourceRoot$ResourceSetType;
        12: .line 1912
            ldc "/"
            aload 4 /* url */
            ldc "/META-INF/resources"
        13: .line 1910
            invokeinterface org.apache.catalina.WebResourceRoot.createWebResourceSet:(Lorg/apache/catalina/WebResourceRoot$ResourceSetType;Ljava/lang/String;Ljava/net/URL;Ljava/lang/String;)V
        14: .line 1913
            goto 18
        15: .line 1915
      StackMap locals:
      StackMap stack:
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.nextEntry:()V
        16: .line 1916
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.getEntryName:()Ljava/lang/String;
            astore 8 /* entryName */
        17: .line 1908
      StackMap locals:
      StackMap stack:
            aload 8 /* entryName */
            ifnonnull 9
        end local 8 // java.lang.String entryName
        18: .line 1918
      StackMap locals:
      StackMap stack:
            aload 7 /* jar */
            ifnull 41
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.close:()V
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 5
            aload 7 /* jar */
            ifnull 20
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.close:()V
        end local 7 // org.apache.tomcat.Jar jar
      StackMap locals:
      StackMap stack:
        20: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 6
            aload 5
            ifnonnull 22
            aload 6
            astore 5
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 5
            aload 6
            if_acmpeq 23
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 5
            athrow
        24: .line 1919
      StackMap locals:
      StackMap stack:
            ldc "file"
            aload 4 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        25: .line 1920
            new java.io.File
            dup
            aload 4 /* url */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokespecial java.io.File.<init>:(Ljava/net/URI;)V
            astore 5 /* file */
        start local 5 // java.io.File file
        26: .line 1921
            new java.io.File
            dup
            aload 5 /* file */
            ldc "META-INF/resources/"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 6 /* resources */
        start local 6 // java.io.File resources
        27: .line 1922
            aload 6 /* resources */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 41
        28: .line 1923
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getResources:()Lorg/apache/catalina/WebResourceRoot;
        29: .line 1924
            getstatic org.apache.catalina.WebResourceRoot$ResourceSetType.RESOURCE_JAR:Lorg/apache/catalina/WebResourceRoot$ResourceSetType;
        30: .line 1925
            ldc "/"
            aload 6 /* resources */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aconst_null
            ldc "/"
        31: .line 1923
            invokeinterface org.apache.catalina.WebResourceRoot.createWebResourceSet:(Lorg/apache/catalina/WebResourceRoot$ResourceSetType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        end local 6 // java.io.File resources
        end local 5 // java.io.File file
        32: .line 1928
            goto 41
      StackMap locals:
      StackMap stack: java.io.IOException
        33: pop
        34: .line 1929
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.resourceJarFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* url */
            aastore
            dup
            iconst_1
        35: .line 1930
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
        36: .line 1929
            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
            goto 41
        37: .line 1931
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
            pop
        38: .line 1932
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.resourceJarFail"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* url */
            aastore
            dup
            iconst_1
        39: .line 1933
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
        40: .line 1932
            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 4 // java.net.URL url
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        41: .line 1901
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        42: .line 1936
            return
        end local 1 // java.util.Set fragments
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   43     0       this  Lorg/apache/catalina/startup/ContextConfig;
            0   43     1  fragments  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
            2   41     2   fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            3   41     4        url  Ljava/net/URL;
            6   20     7        jar  Lorg/apache/tomcat/Jar;
            8   18     8  entryName  Ljava/lang/String;
           26   32     5       file  Ljava/io/File;
           27   32     6  resources  Ljava/io/File;
      Exception table:
        from    to  target  type
           6    18      19  any
           5    21      21  any
           3    32      33  Class java.io.IOException
           3    32      37  Class java.net.URISyntaxException
    Signature: (Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;)V
    MethodParameters:
           Name  Flags
      fragments  

  protected org.xml.sax.InputSource getGlobalWebXmlSource();
    descriptor: ()Lorg/xml/sax/InputSource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1946
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
            ifnonnull 2
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 2
         1: .line 1947
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getDefaultWebXml:()Ljava/lang/String;
            putfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
         2: .line 1950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
            ifnonnull 4
         3: .line 1951
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getDefaultWebXml:()Ljava/lang/String;
            pop
         4: .line 1955
      StackMap locals:
      StackMap stack:
            ldc "org/apache/catalina/startup/NO_DEFAULT_XML"
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 1956
            aconst_null
            areturn
         6: .line 1958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.defaultWebXml:Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.catalina.startup.ContextConfig.getWebXmlSource:(Ljava/lang/String;Z)Lorg/xml/sax/InputSource;
            areturn
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/catalina/startup/ContextConfig;

  protected org.xml.sax.InputSource getHostWebXmlSource();
    descriptor: ()Lorg/xml/sax/InputSource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1968
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getHostConfigBase:()Ljava/io/File;
            astore 1 /* hostConfigBase */
        start local 1 // java.io.File hostConfigBase
         1: .line 1969
            aload 1 /* hostConfigBase */
            ifnonnull 3
         2: .line 1970
            aconst_null
            areturn
         3: .line 1972
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* this */
            aload 1 /* hostConfigBase */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            iconst_0
            invokevirtual org.apache.catalina.startup.ContextConfig.getWebXmlSource:(Ljava/lang/String;Z)Lorg/xml/sax/InputSource;
            areturn
        end local 1 // java.io.File hostConfigBase
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/catalina/startup/ContextConfig;
            1    4     1  hostConfigBase  Ljava/io/File;

  protected org.xml.sax.InputSource getContextWebXmlSource();
    descriptor: ()Lorg/xml/sax/InputSource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 1981
            aconst_null
            astore 1 /* stream */
        start local 1 // java.io.InputStream stream
         1: .line 1982
            aconst_null
            astore 2 /* source */
        start local 2 // org.xml.sax.InputSource source
         2: .line 1983
            aconst_null
            astore 3 /* url */
        start local 3 // java.net.URL url
         3: .line 1985
            aconst_null
            astore 4 /* altDDName */
        start local 4 // java.lang.String altDDName
         4: .line 1988
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
            astore 5 /* servletContext */
        start local 5 // jakarta.servlet.ServletContext servletContext
         5: .line 1990
            aload 5 /* servletContext */
            ifnull 27
         6: .line 1991
            aload 5 /* servletContext */
            ldc "org.apache.catalina.deploy.alt_dd"
            invokeinterface jakarta.servlet.ServletContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* altDDName */
         7: .line 1992
            aload 4 /* altDDName */
            ifnull 18
         8: .line 1994
            new java.io.FileInputStream
            dup
            aload 4 /* altDDName */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 1 /* stream */
         9: .line 1995
            new java.io.File
            dup
            aload 4 /* altDDName */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            astore 3 /* url */
        10: .line 1996
            goto 27
      StackMap locals: org.apache.catalina.startup.ContextConfig java.io.InputStream org.xml.sax.InputSource java.net.URL java.lang.String jakarta.servlet.ServletContext
      StackMap stack: java.io.FileNotFoundException
        11: pop
        12: .line 1997
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.altDDNotFound"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        13: .line 1998
            aload 4 /* altDDName */
            aastore
        14: .line 1997
            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
            goto 27
        15: .line 1999
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
        16: .line 2000
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.applicationUrl"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        17: .line 2002
            goto 27
        18: .line 2003
      StackMap locals:
      StackMap stack:
            aload 5 /* servletContext */
        19: .line 2004
            ldc "/WEB-INF/web.xml"
        20: .line 2003
            invokeinterface jakarta.servlet.ServletContext.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 1 /* stream */
        21: .line 2006
            aload 5 /* servletContext */
        22: .line 2007
            ldc "/WEB-INF/web.xml"
        23: .line 2006
            invokeinterface jakarta.servlet.ServletContext.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 3 /* url */
        24: .line 2008
            goto 27
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
        25: pop
        26: .line 2009
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.applicationUrl"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
        27: .line 2013
      StackMap locals:
      StackMap stack:
            aload 1 /* stream */
            ifnull 28
            aload 3 /* url */
            ifnonnull 31
        28: .line 2014
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 40
        29: .line 2015
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.applicationMissing"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)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;
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            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
        30: .line 2017
            goto 40
        31: .line 2018
      StackMap locals:
      StackMap stack:
            new org.xml.sax.InputSource
            dup
            aload 3 /* url */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
            astore 2 /* source */
        32: .line 2019
            aload 2 /* source */
            aload 1 /* stream */
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
        33: .line 2021
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 6
        35: .line 2022
            aload 2 /* source */
            ifnonnull 39
            aload 1 /* stream */
            ifnull 39
        36: .line 2024
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        37: .line 2025
            goto 39
      StackMap locals: org.apache.catalina.startup.ContextConfig java.io.InputStream org.xml.sax.InputSource java.net.URL java.lang.String jakarta.servlet.ServletContext java.lang.Throwable
      StackMap stack: java.io.IOException
        38: pop
        39: .line 2029
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        40: .line 2022
      StackMap locals:
      StackMap stack:
            aload 2 /* source */
            ifnonnull 44
            aload 1 /* stream */
            ifnull 44
        41: .line 2024
            aload 1 /* stream */
            invokevirtual java.io.InputStream.close:()V
        42: .line 2025
            goto 44
      StackMap locals:
      StackMap stack: java.io.IOException
        43: pop
        44: .line 2031
      StackMap locals:
      StackMap stack:
            aload 2 /* source */
            areturn
        end local 5 // jakarta.servlet.ServletContext servletContext
        end local 4 // java.lang.String altDDName
        end local 3 // java.net.URL url
        end local 2 // org.xml.sax.InputSource source
        end local 1 // java.io.InputStream stream
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   45     0            this  Lorg/apache/catalina/startup/ContextConfig;
            1   45     1          stream  Ljava/io/InputStream;
            2   45     2          source  Lorg/xml/sax/InputSource;
            3   45     3             url  Ljava/net/URL;
            4   45     4       altDDName  Ljava/lang/String;
            5   45     5  servletContext  Ljakarta/servlet/ServletContext;
      Exception table:
        from    to  target  type
           8    10      11  Class java.io.FileNotFoundException
           8    10      15  Class java.net.MalformedURLException
          21    24      25  Class java.net.MalformedURLException
           5    34      34  any
          36    37      38  Class java.io.IOException
          41    42      43  Class java.io.IOException

  public java.lang.String getConfigBasePath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.apache.catalina.startup.ContextConfig this
         0: .line 2035
            aconst_null
            astore 1 /* path */
        start local 1 // java.lang.String path
         1: .line 2036
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            instanceof org.apache.catalina.Host
            ifeq 14
         2: .line 2037
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getParent:()Lorg/apache/catalina/Container;
            checkcast org.apache.catalina.Host
            astore 2 /* host */
        start local 2 // org.apache.catalina.Host host
         3: .line 2038
            aload 2 /* host */
            invokeinterface org.apache.catalina.Host.getXmlBase:()Ljava/lang/String;
            ifnull 6
         4: .line 2039
            aload 2 /* host */
            invokeinterface org.apache.catalina.Host.getXmlBase:()Ljava/lang/String;
            astore 1 /* path */
         5: .line 2040
            goto 14
         6: .line 2041
      StackMap locals: java.lang.String org.apache.catalina.Host
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "conf"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* xmlDir */
        start local 3 // java.lang.StringBuilder xmlDir
         7: .line 2042
            aload 2 /* host */
            invokeinterface org.apache.catalina.Host.getParent:()Lorg/apache/catalina/Container;
            astore 4 /* parent */
        start local 4 // org.apache.catalina.Container parent
         8: .line 2043
            aload 4 /* parent */
            instanceof org.apache.catalina.Engine
            ifeq 11
         9: .line 2044
            aload 3 /* xmlDir */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 2045
            aload 3 /* xmlDir */
            aload 4 /* parent */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 2047
      StackMap locals: java.lang.StringBuilder org.apache.catalina.Container
      StackMap stack:
            aload 3 /* xmlDir */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 2048
            aload 3 /* xmlDir */
            aload 2 /* host */
            invokeinterface org.apache.catalina.Host.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 2049
            aload 3 /* xmlDir */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
        end local 4 // org.apache.catalina.Container parent
        end local 3 // java.lang.StringBuilder xmlDir
        end local 2 // org.apache.catalina.Host host
        14: .line 2052
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            areturn
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lorg/apache/catalina/startup/ContextConfig;
            1   15     1    path  Ljava/lang/String;
            3   14     2    host  Lorg/apache/catalina/Host;
            7   14     3  xmlDir  Ljava/lang/StringBuilder;
            8   14     4  parent  Lorg/apache/catalina/Container;

  protected org.xml.sax.InputSource getWebXmlSource(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/xml/sax/InputSource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String filename
        start local 2 // boolean global
         0: .line 2064
            aconst_null
            astore 3 /* webXmlResource */
        start local 3 // org.apache.tomcat.util.file.ConfigurationSource$Resource webXmlResource
         1: .line 2066
            iload 2 /* global */
            ifeq 7
         2: .line 2067
            ldc "conf/web.xml"
            aload 1 /* filename */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 2068
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getSharedWebXml:()Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
            astore 3 /* webXmlResource */
         4: .line 2069
            goto 12
         5: .line 2070
      StackMap locals: org.apache.tomcat.util.file.ConfigurationSource$Resource
      StackMap stack:
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            aload 1 /* filename */
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getResource:(Ljava/lang/String;)Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
            astore 3 /* webXmlResource */
         6: .line 2072
            goto 12
         7: .line 2073
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            ldc "web.xml.default"
            invokestatic org.apache.catalina.Container.getConfigPath:(Lorg/apache/catalina/Container;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* hostWebXml */
        start local 4 // java.lang.String hostWebXml
         8: .line 2074
            invokestatic org.apache.tomcat.util.file.ConfigFileLoader.getSource:()Lorg/apache/tomcat/util/file/ConfigurationSource;
            aload 4 /* hostWebXml */
            invokeinterface org.apache.tomcat.util.file.ConfigurationSource.getResource:(Ljava/lang/String;)Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
            astore 3 /* webXmlResource */
        end local 4 // java.lang.String hostWebXml
         9: .line 2076
            goto 12
      StackMap locals:
      StackMap stack: java.io.IOException
        10: pop
        11: .line 2078
            aconst_null
            areturn
        12: .line 2081
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* stream */
        start local 4 // java.io.InputStream stream
        13: .line 2082
            aconst_null
            astore 5 /* source */
        start local 5 // org.xml.sax.InputSource source
        14: .line 2085
            aload 3 /* webXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getInputStream:()Ljava/io/InputStream;
            astore 4 /* stream */
        15: .line 2086
            new org.xml.sax.InputSource
            dup
            aload 3 /* webXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toString:()Ljava/lang/String;
            invokespecial org.xml.sax.InputSource.<init>:(Ljava/lang/String;)V
            astore 5 /* source */
        16: .line 2087
            aload 4 /* stream */
            ifnull 31
        17: .line 2088
            aload 5 /* source */
            aload 4 /* stream */
            invokevirtual org.xml.sax.InputSource.setByteStream:(Ljava/io/InputStream;)V
        18: .line 2090
            goto 31
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String int org.apache.tomcat.util.file.ConfigurationSource$Resource java.io.InputStream org.xml.sax.InputSource
      StackMap stack: java.lang.Exception
        19: astore 6 /* e */
        start local 6 // java.lang.Exception e
        20: .line 2091
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.defaultError"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* filename */
            aastore
            dup
            iconst_1
            aload 3 /* webXmlResource */
            invokevirtual org.apache.tomcat.util.file.ConfigurationSource$Resource.getURI:()Ljava/net/URI;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 6 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Exception e
        21: .line 2093
            aload 5 /* source */
            ifnonnull 35
            aload 4 /* stream */
            ifnull 35
        22: .line 2095
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        23: .line 2096
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        24: pop
            goto 35
        25: .line 2092
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        26: .line 2093
            aload 5 /* source */
            ifnonnull 30
            aload 4 /* stream */
            ifnull 30
        27: .line 2095
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        28: .line 2096
            goto 30
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String int org.apache.tomcat.util.file.ConfigurationSource$Resource java.io.InputStream org.xml.sax.InputSource top java.lang.Throwable
      StackMap stack: java.io.IOException
        29: pop
        30: .line 2100
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        31: .line 2093
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String int org.apache.tomcat.util.file.ConfigurationSource$Resource java.io.InputStream org.xml.sax.InputSource
      StackMap stack:
            aload 5 /* source */
            ifnonnull 35
            aload 4 /* stream */
            ifnull 35
        32: .line 2095
            aload 4 /* stream */
            invokevirtual java.io.InputStream.close:()V
        33: .line 2096
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        34: pop
        35: .line 2102
      StackMap locals:
      StackMap stack:
            aload 5 /* source */
            areturn
        end local 5 // org.xml.sax.InputSource source
        end local 4 // java.io.InputStream stream
        end local 3 // org.apache.tomcat.util.file.ConfigurationSource$Resource webXmlResource
        end local 2 // boolean global
        end local 1 // java.lang.String filename
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   36     0            this  Lorg/apache/catalina/startup/ContextConfig;
            0   36     1        filename  Ljava/lang/String;
            0   36     2          global  Z
            1   36     3  webXmlResource  Lorg/apache/tomcat/util/file/ConfigurationSource$Resource;
            8    9     4      hostWebXml  Ljava/lang/String;
           13   36     4          stream  Ljava/io/InputStream;
           14   36     5          source  Lorg/xml/sax/InputSource;
           20   21     6               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     9      10  Class java.io.IOException
          14    18      19  Class java.lang.Exception
          22    23      24  Class java.io.IOException
          14    21      25  any
          27    28      29  Class java.io.IOException
          32    33      34  Class java.io.IOException
    MethodParameters:
          Name  Flags
      filename  
      global    

  protected java.util.Map<java.lang.String, org.apache.tomcat.util.descriptor.web.WebXml> processJarsForWebFragments(org.apache.tomcat.util.descriptor.web.WebXml, org.apache.tomcat.util.descriptor.web.WebXmlParser);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXml;Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXml application
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
         0: .line 2120
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getJarScanner:()Lorg/apache/tomcat/JarScanner;
            astore 3 /* jarScanner */
        start local 3 // org.apache.tomcat.JarScanner jarScanner
         1: .line 2121
            iconst_0
            istore 4 /* delegate */
        start local 4 // boolean delegate
         2: .line 2122
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            instanceof org.apache.catalina.core.StandardContext
            ifeq 4
         3: .line 2123
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            checkcast org.apache.catalina.core.StandardContext
            invokevirtual org.apache.catalina.core.StandardContext.getDelegate:()Z
            istore 4 /* delegate */
         4: .line 2125
      StackMap locals: org.apache.tomcat.JarScanner int
      StackMap stack:
            iconst_1
            istore 5 /* parseRequired */
        start local 5 // boolean parseRequired
         5: .line 2126
            aload 1 /* application */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getAbsoluteOrdering:()Ljava/util/Set;
            astore 6 /* absoluteOrder */
        start local 6 // java.util.Set absoluteOrder
         6: .line 2127
            aload 6 /* absoluteOrder */
            ifnull 9
            aload 6 /* absoluteOrder */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 9
         7: .line 2128
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getXmlValidation:()Z
            ifne 9
         8: .line 2131
            iconst_0
            istore 5 /* parseRequired */
         9: .line 2135
      StackMap locals: int java.util.Set
      StackMap stack:
            new org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback
            dup
            aload 2 /* webXmlParser */
            iload 4 /* delegate */
            iload 5 /* parseRequired */
            invokespecial org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback.<init>:(Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;ZZ)V
        10: .line 2134
            astore 7 /* callback */
        start local 7 // org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback callback
        11: .line 2137
            aload 3 /* jarScanner */
            getstatic org.apache.tomcat.JarScanType.PLUGGABILITY:Lorg/apache/tomcat/JarScanType;
        12: .line 2138
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getServletContext:()Ljakarta/servlet/ServletContext;
            aload 7 /* callback */
        13: .line 2137
            invokeinterface org.apache.tomcat.JarScanner.scan:(Lorg/apache/tomcat/JarScanType;Ljakarta/servlet/ServletContext;Lorg/apache/tomcat/JarScannerCallback;)V
        14: .line 2140
            aload 7 /* callback */
            invokevirtual org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback.isOk:()Z
            ifne 16
        15: .line 2141
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.startup.ContextConfig.ok:Z
        16: .line 2143
      StackMap locals: org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback
      StackMap stack:
            aload 7 /* callback */
            invokevirtual org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback.getFragments:()Ljava/util/Map;
            areturn
        end local 7 // org.apache.tomcat.util.descriptor.web.FragmentJarScannerCallback callback
        end local 6 // java.util.Set absoluteOrder
        end local 5 // boolean parseRequired
        end local 4 // boolean delegate
        end local 3 // org.apache.tomcat.JarScanner jarScanner
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXmlParser webXmlParser
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXml application
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lorg/apache/catalina/startup/ContextConfig;
            0   17     1    application  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   17     2   webXmlParser  Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;
            1   17     3     jarScanner  Lorg/apache/tomcat/JarScanner;
            2   17     4       delegate  Z
            5   17     5  parseRequired  Z
            6   17     6  absoluteOrder  Ljava/util/Set<Ljava/lang/String;>;
           11   17     7       callback  Lorg/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback;
    Signature: (Lorg/apache/tomcat/util/descriptor/web/WebXml;Lorg/apache/tomcat/util/descriptor/web/WebXmlParser;)Ljava/util/Map<Ljava/lang/String;Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
    MethodParameters:
              Name  Flags
      application   
      webXmlParser  

  protected void processAnnotations(java.util.Set<org.apache.tomcat.util.descriptor.web.WebXml>, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/util/Set;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.util.Set fragments
        start local 2 // boolean handlesTypesOnly
        start local 3 // java.util.Map javaClassCache
         0: .line 2149
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.isParallelAnnotationScanning:()Z
            ifeq 3
         1: .line 2150
            aload 0 /* this */
            aload 1 /* fragments */
            iload 2 /* handlesTypesOnly */
            aload 3 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsInParallel:(Ljava/util/Set;ZLjava/util/Map;)V
         2: .line 2151
            goto 7
         3: .line 2152
      StackMap locals:
      StackMap stack:
            aload 1 /* fragments */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set int java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.WebXml
            astore 4 /* fragment */
        start local 4 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         5: .line 2153
            aload 0 /* this */
            iload 2 /* handlesTypesOnly */
            aload 4 /* fragment */
            aload 3 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.scanWebXmlFragment:(ZLorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Map;)V
        end local 4 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         6: .line 2152
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 2156
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set int java.util.Map
      StackMap stack:
            return
        end local 3 // java.util.Map javaClassCache
        end local 2 // boolean handlesTypesOnly
        end local 1 // java.util.Set fragments
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0    8     1         fragments  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
            0    8     2  handlesTypesOnly  Z
            0    8     3    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            5    6     4          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
    Signature: (Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      fragments         
      handlesTypesOnly  
      javaClassCache    

  private void scanWebXmlFragment(boolean, org.apache.tomcat.util.descriptor.web.WebXml, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (ZLorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // boolean handlesTypesOnly
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 3 // java.util.Map javaClassCache
         0: .line 2166
            iload 1 /* handlesTypesOnly */
            ifne 3
            aload 2 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getWebappJar:()Z
            ifeq 3
         1: .line 2167
            aload 2 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.isMetadataComplete:()Z
            ifne 3
         2: .line 2166
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* htOnly */
        start local 4 // boolean htOnly
         5: .line 2169
            new org.apache.tomcat.util.descriptor.web.WebXml
            dup
            invokespecial org.apache.tomcat.util.descriptor.web.WebXml.<init>:()V
            astore 5 /* annotations */
        start local 5 // org.apache.tomcat.util.descriptor.web.WebXml annotations
         6: .line 2171
            aload 5 /* annotations */
            iconst_1
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.setDistributable:(Z)V
         7: .line 2172
            aload 2 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getURL:()Ljava/net/URL;
            astore 6 /* url */
        start local 6 // java.net.URL url
         8: .line 2173
            aload 0 /* this */
            aload 6 /* url */
            aload 5 /* annotations */
            iload 4 /* htOnly */
            aload 3 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsUrl:(Ljava/net/URL;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
         9: .line 2174
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* set */
        start local 7 // java.util.Set set
        10: .line 2175
            aload 7 /* set */
            aload 5 /* annotations */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 2177
            aload 2 /* fragment */
            aload 7 /* set */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.merge:(Ljava/util/Set;)Z
            pop
        12: .line 2178
            return
        end local 7 // java.util.Set set
        end local 6 // java.net.URL url
        end local 5 // org.apache.tomcat.util.descriptor.web.WebXml annotations
        end local 4 // boolean htOnly
        end local 3 // java.util.Map javaClassCache
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 1 // boolean handlesTypesOnly
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   13     1  handlesTypesOnly  Z
            0   13     2          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   13     3    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            5   13     4            htOnly  Z
            6   13     5       annotations  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            8   13     6               url  Ljava/net/URL;
           10   13     7               set  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
    Signature: (ZLorg/apache/tomcat/util/descriptor/web/WebXml;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      handlesTypesOnly  
      fragment          
      javaClassCache    

  protected void processAnnotationsInParallel(java.util.Set<org.apache.tomcat.util.descriptor.web.WebXml>, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/util/Set;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.util.Set fragments
        start local 2 // boolean handlesTypesOnly
        start local 3 // java.util.Map javaClassCache
         0: .line 2212
            aload 0 /* this */
            invokevirtual org.apache.catalina.startup.ContextConfig.getServer:()Lorg/apache/catalina/Server;
            astore 4 /* s */
        start local 4 // org.apache.catalina.Server s
         1: .line 2213
            aconst_null
            astore 5 /* pool */
        start local 5 // java.util.concurrent.ExecutorService pool
         2: .line 2214
            aload 4 /* s */
            invokeinterface org.apache.catalina.Server.getUtilityExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
            astore 5 /* pool */
         3: .line 2215
            new java.util.ArrayList
            dup
            aload 1 /* fragments */
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* futures */
        start local 6 // java.util.List futures
         4: .line 2216
            aload 1 /* fragments */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 8
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set int java.util.Map org.apache.catalina.Server java.util.concurrent.ExecutorService java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.WebXml
            astore 7 /* fragment */
        start local 7 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         6: .line 2217
            new org.apache.catalina.startup.ContextConfig$AnnotationScanTask
            dup
            aload 0 /* this */
            aload 7 /* fragment */
            iload 2 /* handlesTypesOnly */
            aload 3 /* javaClassCache */
            invokespecial org.apache.catalina.startup.ContextConfig$AnnotationScanTask.<init>:(Lorg/apache/catalina/startup/ContextConfig;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
            astore 9 /* task */
        start local 9 // java.lang.Runnable task
         7: .line 2218
            aload 6 /* futures */
            aload 5 /* pool */
            aload 9 /* task */
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.Runnable task
        end local 7 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         8: .line 2216
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 2221
            aload 6 /* futures */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals:
      StackMap stack:
        10: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 7 /* future */
        start local 7 // java.util.concurrent.Future future
        11: .line 2222
            aload 7 /* future */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        end local 7 // java.util.concurrent.Future future
        12: .line 2221
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 2224
            goto 16
      StackMap locals: org.apache.catalina.startup.ContextConfig java.util.Set int java.util.Map org.apache.catalina.Server java.util.concurrent.ExecutorService java.util.List
      StackMap stack: java.lang.Exception
        14: astore 7 /* e */
        start local 7 // java.lang.Exception e
        15: .line 2225
            new java.lang.RuntimeException
            dup
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.processAnnotationsInParallelFailure"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 7 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.Exception e
        16: .line 2227
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.util.List futures
        end local 5 // java.util.concurrent.ExecutorService pool
        end local 4 // org.apache.catalina.Server s
        end local 3 // java.util.Map javaClassCache
        end local 2 // boolean handlesTypesOnly
        end local 1 // java.util.Set fragments
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   17     1         fragments  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;
            0   17     2  handlesTypesOnly  Z
            0   17     3    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            1   17     4                 s  Lorg/apache/catalina/Server;
            2   17     5              pool  Ljava/util/concurrent/ExecutorService;
            4   17     6           futures  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
            6    8     7          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            7    8     9              task  Ljava/lang/Runnable;
           11   12     7            future  Ljava/util/concurrent/Future<*>;
           15   16     7                 e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    13      14  Class java.lang.Exception
    Signature: (Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/WebXml;>;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      fragments         
      handlesTypesOnly  
      javaClassCache    

  protected void processAnnotationsWebResource(org.apache.catalina.WebResource, org.apache.tomcat.util.descriptor.web.WebXml, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Lorg/apache/catalina/WebResource;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.catalina.WebResource webResource
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 3 // boolean handlesTypesOnly
        start local 4 // java.util.Map javaClassCache
         0: .line 2233
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.isDirectory:()Z
            ifeq 17
         1: .line 2235
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getWebResourceRoot:()Lorg/apache/catalina/WebResourceRoot;
         2: .line 2236
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getWebappPath:()Ljava/lang/String;
         3: .line 2235
            invokeinterface org.apache.catalina.WebResourceRoot.listResources:(Ljava/lang/String;)[Lorg/apache/catalina/WebResource;
         4: .line 2234
            astore 5 /* webResources */
        start local 5 // org.apache.catalina.WebResource[] webResources
         5: .line 2237
            aload 5 /* webResources */
            arraylength
            ifle 41
         6: .line 2238
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 11
         7: .line 2239
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
         8: .line 2240
            ldc "contextConfig.processAnnotationsWebDir.debug"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 2241
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getURL:()Ljava/net/URL;
            aastore
        10: .line 2239
            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
        11: .line 2243
      StackMap locals: org.apache.catalina.WebResource[]
      StackMap stack:
            aload 5 /* webResources */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 15
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.WebResource org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map org.apache.catalina.WebResource[] top int int org.apache.catalina.WebResource[]
      StackMap stack:
        12: aload 9
            iload 7
            aaload
            astore 6 /* r */
        start local 6 // org.apache.catalina.WebResource r
        13: .line 2244
            aload 0 /* this */
            aload 6 /* r */
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource:(Lorg/apache/catalina/WebResource;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
        end local 6 // org.apache.catalina.WebResource r
        14: .line 2243
            iinc 7 1
      StackMap locals:
      StackMap stack:
        15: iload 7
            iload 8
            if_icmplt 12
        end local 5 // org.apache.catalina.WebResource[] webResources
        16: .line 2247
            goto 41
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.WebResource org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map
      StackMap stack:
        17: aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.isFile:()Z
            ifeq 41
        18: .line 2248
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getName:()Ljava/lang/String;
            ldc ".class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 41
        19: .line 2249
            aconst_null
            astore 5
            aconst_null
            astore 6
        20: aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getInputStream:()Ljava/io/InputStream;
            astore 7 /* is */
        start local 7 // java.io.InputStream is
        21: .line 2250
            aload 0 /* this */
            aload 7 /* is */
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStream:(Ljava/io/InputStream;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
        22: .line 2251
            aload 7 /* is */
            ifnull 41
            aload 7 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 41
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.WebResource org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        23: astore 5
            aload 7 /* is */
            ifnull 24
            aload 7 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 7 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        24: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 6
            aload 5
            ifnonnull 26
            aload 6
            astore 5
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 5
            aload 6
            if_acmpeq 27
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 5
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.WebResource org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map
      StackMap stack: java.io.IOException
        28: astore 5 /* e */
        start local 5 // java.io.IOException e
        29: .line 2252
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.inputStreamWebResource"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        30: .line 2253
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getWebappPath:()Ljava/lang/String;
            aastore
        31: .line 2252
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        32: .line 2253
            aload 5 /* e */
        33: .line 2252
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.io.IOException e
        34: goto 41
        35: .line 2254
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.bcel.classfile.ClassFormatException
            astore 5 /* e */
        start local 5 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        36: .line 2255
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.inputStreamWebResource"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        37: .line 2256
            aload 1 /* webResource */
            invokeinterface org.apache.catalina.WebResource.getWebappPath:()Ljava/lang/String;
            aastore
        38: .line 2255
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        39: .line 2256
            aload 5 /* e */
        40: .line 2255
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        41: .line 2259
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Map javaClassCache
        end local 3 // boolean handlesTypesOnly
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 1 // org.apache.catalina.WebResource webResource
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   42     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   42     1       webResource  Lorg/apache/catalina/WebResource;
            0   42     2          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   42     3  handlesTypesOnly  Z
            0   42     4    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            5   16     5      webResources  [Lorg/apache/catalina/WebResource;
           13   14     6                 r  Lorg/apache/catalina/WebResource;
           21   24     7                is  Ljava/io/InputStream;
           29   34     5                 e  Ljava/io/IOException;
           36   41     5                 e  Lorg/apache/tomcat/util/bcel/classfile/ClassFormatException;
      Exception table:
        from    to  target  type
          21    22      23  any
          20    25      25  any
          19    28      28  Class java.io.IOException
          19    28      35  Class org.apache.tomcat.util.bcel.classfile.ClassFormatException
    Signature: (Lorg/apache/catalina/WebResource;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      webResource       
      fragment          
      handlesTypesOnly  
      javaClassCache    

  protected void processAnnotationsUrl(java.net.URL, org.apache.tomcat.util.descriptor.web.WebXml, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/net/URL;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.net.URL url
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 3 // boolean handlesTypesOnly
        start local 4 // java.util.Map javaClassCache
         0: .line 2264
            aload 1 /* url */
            ifnonnull 2
         1: .line 2266
            return
         2: .line 2267
      StackMap locals:
      StackMap stack:
            ldc "jar"
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 1 /* url */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 2268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* url */
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsJar:(Ljava/net/URL;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
         4: .line 2269
            goto 16
      StackMap locals:
      StackMap stack:
         5: ldc "file"
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
         6: .line 2271
            aload 0 /* this */
         7: .line 2272
            new java.io.File
            dup
            aload 1 /* url */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokespecial java.io.File.<init>:(Ljava/net/URI;)V
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
         8: .line 2271
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsFile:(Ljava/io/File;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
         9: .line 2273
            goto 16
      StackMap locals:
      StackMap stack: java.net.URISyntaxException
        10: astore 5 /* e */
        start local 5 // java.net.URISyntaxException e
        11: .line 2274
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.fileUrl"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* url */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.net.URISyntaxException e
        12: .line 2276
            goto 16
        13: .line 2277
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.unknownUrlProtocol"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        14: .line 2278
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* url */
            aastore
        15: .line 2277
            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
        16: .line 2281
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Map javaClassCache
        end local 3 // boolean handlesTypesOnly
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 1 // java.net.URL url
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   17     1               url  Ljava/net/URL;
            0   17     2          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   17     3  handlesTypesOnly  Z
            0   17     4    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
           11   12     5                 e  Ljava/net/URISyntaxException;
      Exception table:
        from    to  target  type
           6     9      10  Class java.net.URISyntaxException
    Signature: (Ljava/net/URL;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      url               
      fragment          
      handlesTypesOnly  
      javaClassCache    

  protected void processAnnotationsJar(java.net.URL, org.apache.tomcat.util.descriptor.web.WebXml, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/net/URL;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.net.URL url
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 3 // boolean handlesTypesOnly
        start local 4 // java.util.Map javaClassCache
         0: .line 2287
            aconst_null
            astore 5
            aconst_null
            astore 6
         1: aload 1 /* url */
            invokestatic org.apache.tomcat.util.scan.JarFactory.newInstance:(Ljava/net/URL;)Lorg/apache/tomcat/Jar;
            astore 7 /* jar */
        start local 7 // org.apache.tomcat.Jar jar
         2: .line 2288
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 6
         3: .line 2289
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
         4: .line 2290
            ldc "contextConfig.processAnnotationsJar.debug"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* url */
            aastore
         5: .line 2289
            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
         6: .line 2293
      StackMap locals: java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar
      StackMap stack:
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.nextEntry:()V
         7: .line 2294
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.getEntryName:()Ljava/lang/String;
            astore 8 /* entryName */
        start local 8 // java.lang.String entryName
         8: .line 2295
            goto 34
         9: .line 2296
      StackMap locals: java.lang.String
      StackMap stack:
            aload 8 /* entryName */
            ldc ".class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 32
        10: .line 2297
            aconst_null
            astore 9
            aconst_null
            astore 10
        11: aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.getEntryInputStream:()Ljava/io/InputStream;
            astore 11 /* is */
        start local 11 // java.io.InputStream is
        12: .line 2298
            aload 0 /* this */
            aload 11 /* is */
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStream:(Ljava/io/InputStream;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
        13: .line 2299
            aload 11 /* is */
            ifnull 32
            aload 11 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 32
      StackMap locals: org.apache.catalina.startup.ContextConfig java.net.URL org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack: java.lang.Throwable
        14: astore 9
            aload 11 /* is */
            ifnull 15
            aload 11 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 11 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        15: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 10
            aload 9
            ifnonnull 17
            aload 10
            astore 9
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 9
            aload 10
            if_acmpeq 18
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 9
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig java.net.URL org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar java.lang.String
      StackMap stack: java.io.IOException
        19: astore 9 /* e */
        start local 9 // java.io.IOException e
        20: .line 2300
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.inputStreamJar"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        21: .line 2301
            aload 8 /* entryName */
            aastore
            dup
            iconst_1
            aload 1 /* url */
            aastore
        22: .line 2300
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        23: .line 2301
            aload 9 /* e */
        24: .line 2300
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 9 // java.io.IOException e
        25: goto 32
        26: .line 2302
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.bcel.classfile.ClassFormatException
            astore 9 /* e */
        start local 9 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        27: .line 2303
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.inputStreamJar"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        28: .line 2304
            aload 8 /* entryName */
            aastore
            dup
            iconst_1
            aload 1 /* url */
            aastore
        29: .line 2303
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        30: .line 2304
            aload 9 /* e */
        31: .line 2303
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 9 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        32: .line 2307
      StackMap locals:
      StackMap stack:
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.nextEntry:()V
        33: .line 2308
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.getEntryName:()Ljava/lang/String;
            astore 8 /* entryName */
        34: .line 2295
      StackMap locals:
      StackMap stack:
            aload 8 /* entryName */
            ifnonnull 9
        end local 8 // java.lang.String entryName
        35: .line 2310
            aload 7 /* jar */
            ifnull 43
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.close:()V
            goto 43
      StackMap locals: org.apache.catalina.startup.ContextConfig java.net.URL org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map java.lang.Throwable java.lang.Throwable org.apache.tomcat.Jar
      StackMap stack: java.lang.Throwable
        36: astore 5
            aload 7 /* jar */
            ifnull 37
            aload 7 /* jar */
            invokeinterface org.apache.tomcat.Jar.close:()V
        end local 7 // org.apache.tomcat.Jar jar
      StackMap locals:
      StackMap stack:
        37: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: astore 6
            aload 5
            ifnonnull 39
            aload 6
            astore 5
            goto 40
      StackMap locals:
      StackMap stack:
        39: aload 5
            aload 6
            if_acmpeq 40
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        40: aload 5
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig java.net.URL org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map
      StackMap stack: java.io.IOException
        41: astore 5 /* e */
        start local 5 // java.io.IOException e
        42: .line 2311
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.jarFile"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* url */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.io.IOException e
        43: .line 2313
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Map javaClassCache
        end local 3 // boolean handlesTypesOnly
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 1 // java.net.URL url
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   44     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   44     1               url  Ljava/net/URL;
            0   44     2          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   44     3  handlesTypesOnly  Z
            0   44     4    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            2   37     7               jar  Lorg/apache/tomcat/Jar;
            8   35     8         entryName  Ljava/lang/String;
           12   15    11                is  Ljava/io/InputStream;
           20   25     9                 e  Ljava/io/IOException;
           27   32     9                 e  Lorg/apache/tomcat/util/bcel/classfile/ClassFormatException;
           42   43     5                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    13      14  any
          11    16      16  any
          10    19      19  Class java.io.IOException
          10    19      26  Class org.apache.tomcat.util.bcel.classfile.ClassFormatException
           2    35      36  any
           1    38      38  any
           0    41      41  Class java.io.IOException
    Signature: (Ljava/net/URL;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      url               
      fragment          
      handlesTypesOnly  
      javaClassCache    

  protected void processAnnotationsFile(java.io.File, org.apache.tomcat.util.descriptor.web.WebXml, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/io/File;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=10, args_size=5
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.io.File file
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 3 // boolean handlesTypesOnly
        start local 4 // java.util.Map javaClassCache
         0: .line 2319
            aload 1 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 15
         1: .line 2321
            aload 1 /* file */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            astore 5 /* dirs */
        start local 5 // java.lang.String[] dirs
         2: .line 2322
            aload 5 /* dirs */
            ifnull 38
         3: .line 2323
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 7
         4: .line 2324
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
         5: .line 2325
            ldc "contextConfig.processAnnotationsDir.debug"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* file */
            aastore
         6: .line 2324
            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
         7: .line 2327
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 5 /* dirs */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 13
      StackMap locals: org.apache.catalina.startup.ContextConfig java.io.File org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         8: aload 9
            iload 7
            aaload
            astore 6 /* dir */
        start local 6 // java.lang.String dir
         9: .line 2328
            aload 0 /* this */
        10: .line 2329
            new java.io.File
            dup
            aload 1 /* file */
            aload 6 /* dir */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
        11: .line 2328
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsFile:(Ljava/io/File;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
        end local 6 // java.lang.String dir
        12: .line 2327
            iinc 7 1
      StackMap locals:
      StackMap stack:
        13: iload 7
            iload 8
            if_icmplt 8
        end local 5 // java.lang.String[] dirs
        14: .line 2332
            goto 38
      StackMap locals: org.apache.catalina.startup.ContextConfig java.io.File org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map
      StackMap stack:
        15: aload 1 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            ldc ".class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 38
            aload 1 /* file */
            invokevirtual java.io.File.canRead:()Z
            ifeq 38
        16: .line 2333
            aconst_null
            astore 5
            aconst_null
            astore 6
        17: new java.io.FileInputStream
            dup
            aload 1 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 7 /* fis */
        start local 7 // java.io.FileInputStream fis
        18: .line 2334
            aload 0 /* this */
            aload 7 /* fis */
            aload 2 /* fragment */
            iload 3 /* handlesTypesOnly */
            aload 4 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStream:(Ljava/io/InputStream;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
        19: .line 2335
            aload 7 /* fis */
            ifnull 38
            aload 7 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
            goto 38
      StackMap locals: org.apache.catalina.startup.ContextConfig java.io.File org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
        20: astore 5
            aload 7 /* fis */
            ifnull 21
            aload 7 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        end local 7 // java.io.FileInputStream fis
      StackMap locals:
      StackMap stack:
        21: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 6
            aload 5
            ifnonnull 23
            aload 6
            astore 5
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 5
            aload 6
            if_acmpeq 24
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 5
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig java.io.File org.apache.tomcat.util.descriptor.web.WebXml int java.util.Map
      StackMap stack: java.io.IOException
        25: astore 5 /* e */
        start local 5 // java.io.IOException e
        26: .line 2336
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.inputStreamFile"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        27: .line 2337
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
        28: .line 2336
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        29: .line 2337
            aload 5 /* e */
        30: .line 2336
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.io.IOException e
        31: goto 38
        32: .line 2338
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.bcel.classfile.ClassFormatException
            astore 5 /* e */
        start local 5 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        33: .line 2339
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.inputStreamFile"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        34: .line 2340
            aload 1 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aastore
        35: .line 2339
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        36: .line 2340
            aload 5 /* e */
        37: .line 2339
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        38: .line 2343
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.Map javaClassCache
        end local 3 // boolean handlesTypesOnly
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 1 // java.io.File file
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   39     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0   39     1              file  Ljava/io/File;
            0   39     2          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   39     3  handlesTypesOnly  Z
            0   39     4    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            2   14     5              dirs  [Ljava/lang/String;
            9   12     6               dir  Ljava/lang/String;
           18   21     7               fis  Ljava/io/FileInputStream;
           26   31     5                 e  Ljava/io/IOException;
           33   38     5                 e  Lorg/apache/tomcat/util/bcel/classfile/ClassFormatException;
      Exception table:
        from    to  target  type
          18    19      20  any
          17    22      22  any
          16    25      25  Class java.io.IOException
          16    25      32  Class org.apache.tomcat.util.bcel.classfile.ClassFormatException
    Signature: (Ljava/io/File;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      file              
      fragment          
      handlesTypesOnly  
      javaClassCache    

  protected void processAnnotationsStream(java.io.InputStream, org.apache.tomcat.util.descriptor.web.WebXml, boolean, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/io/InputStream;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.io.InputStream is
        start local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 3 // boolean handlesTypesOnly
        start local 4 // java.util.Map javaClassCache
         0: .line 2350
            new org.apache.tomcat.util.bcel.classfile.ClassParser
            dup
            aload 1 /* is */
            invokespecial org.apache.tomcat.util.bcel.classfile.ClassParser.<init>:(Ljava/io/InputStream;)V
            astore 5 /* parser */
        start local 5 // org.apache.tomcat.util.bcel.classfile.ClassParser parser
         1: .line 2351
            aload 5 /* parser */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ClassParser.parse:()Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
            astore 6 /* clazz */
        start local 6 // org.apache.tomcat.util.bcel.classfile.JavaClass clazz
         2: .line 2352
            aload 0 /* this */
            aload 6 /* clazz */
            aload 4 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.checkHandlesTypes:(Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map;)V
         3: .line 2354
            iload 3 /* handlesTypesOnly */
            ifeq 5
         4: .line 2355
            return
         5: .line 2358
      StackMap locals: org.apache.tomcat.util.bcel.classfile.ClassParser org.apache.tomcat.util.bcel.classfile.JavaClass
      StackMap stack:
            aload 0 /* this */
            aload 2 /* fragment */
            aload 6 /* clazz */
            invokevirtual org.apache.catalina.startup.ContextConfig.processClass:(Lorg/apache/tomcat/util/descriptor/web/WebXml;Lorg/apache/tomcat/util/bcel/classfile/JavaClass;)V
         6: .line 2359
            return
        end local 6 // org.apache.tomcat.util.bcel.classfile.JavaClass clazz
        end local 5 // org.apache.tomcat.util.bcel.classfile.ClassParser parser
        end local 4 // java.util.Map javaClassCache
        end local 3 // boolean handlesTypesOnly
        end local 2 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 1 // java.io.InputStream is
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/apache/catalina/startup/ContextConfig;
            0    7     1                is  Ljava/io/InputStream;
            0    7     2          fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0    7     3  handlesTypesOnly  Z
            0    7     4    javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            1    7     5            parser  Lorg/apache/tomcat/util/bcel/classfile/ClassParser;
            2    7     6             clazz  Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
    Exceptions:
      throws org.apache.tomcat.util.bcel.classfile.ClassFormatException, java.io.IOException
    Signature: (Ljava/io/InputStream;Lorg/apache/tomcat/util/descriptor/web/WebXml;ZLjava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                  Name  Flags
      is                
      fragment          
      handlesTypesOnly  
      javaClassCache    

  protected void processClass(org.apache.tomcat.util.descriptor.web.WebXml, org.apache.tomcat.util.bcel.classfile.JavaClass);
    descriptor: (Lorg/apache/tomcat/util/descriptor/web/WebXml;Lorg/apache/tomcat/util/bcel/classfile/JavaClass;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        start local 2 // org.apache.tomcat.util.bcel.classfile.JavaClass clazz
         0: .line 2363
            aload 2 /* clazz */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getAnnotationEntries:()[Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            astore 3 /* annotationsEntries */
        start local 3 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] annotationsEntries
         1: .line 2364
            aload 3 /* annotationsEntries */
            ifnull 16
         2: .line 2365
            aload 2 /* clazz */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            astore 4 /* className */
        start local 4 // java.lang.String className
         3: .line 2366
            aload 3 /* annotationsEntries */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 15
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml org.apache.tomcat.util.bcel.classfile.JavaClass org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.lang.String top int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* ae */
        start local 5 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry ae
         5: .line 2367
            aload 5 /* ae */
            invokevirtual org.apache.tomcat.util.bcel.classfile.AnnotationEntry.getAnnotationType:()Ljava/lang/String;
            astore 9 /* type */
        start local 9 // java.lang.String type
         6: .line 2368
            ldc "Ljakarta/servlet/annotation/WebServlet;"
            aload 9 /* type */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 2369
            aload 0 /* this */
            aload 4 /* className */
            aload 5 /* ae */
            aload 1 /* fragment */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet:(Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
         8: .line 2370
            goto 14
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml org.apache.tomcat.util.bcel.classfile.JavaClass org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.lang.String
      StackMap stack:
         9: ldc "Ljakarta/servlet/annotation/WebFilter;"
            aload 9 /* type */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 2371
            aload 0 /* this */
            aload 4 /* className */
            aload 5 /* ae */
            aload 1 /* fragment */
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationWebFilter:(Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
        11: .line 2372
            goto 14
      StackMap locals:
      StackMap stack:
        12: ldc "Ljakarta/servlet/annotation/WebListener;"
            aload 9 /* type */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 2373
            aload 1 /* fragment */
            aload 4 /* className */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.addListener:(Ljava/lang/String;)V
        end local 9 // java.lang.String type
        end local 5 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry ae
        14: .line 2366
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml org.apache.tomcat.util.bcel.classfile.JavaClass org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.lang.String top int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        15: iload 6
            iload 7
            if_icmplt 4
        end local 4 // java.lang.String className
        16: .line 2379
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.descriptor.web.WebXml org.apache.tomcat.util.bcel.classfile.JavaClass org.apache.tomcat.util.bcel.classfile.AnnotationEntry[]
      StackMap stack:
            return
        end local 3 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] annotationsEntries
        end local 2 // org.apache.tomcat.util.bcel.classfile.JavaClass clazz
        end local 1 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0                this  Lorg/apache/catalina/startup/ContextConfig;
            0   17     1            fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            0   17     2               clazz  Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
            1   17     3  annotationsEntries  [Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            3   16     4           className  Ljava/lang/String;
            5   14     5                  ae  Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            6   14     9                type  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      fragment  
      clazz     

  protected void checkHandlesTypes(org.apache.tomcat.util.bcel.classfile.JavaClass, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=15, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.bcel.classfile.JavaClass javaClass
        start local 2 // java.util.Map javaClassCache
         0: .line 2393
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ifne 2
         1: .line 2394
            return
         2: .line 2397
      StackMap locals:
      StackMap stack:
            aload 1 /* javaClass */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getAccessFlags:()I
         3: .line 2398
            sipush 8192
         4: .line 2397
            iand
            ifeq 6
         5: .line 2400
            return
         6: .line 2403
      StackMap locals:
      StackMap stack:
            aload 1 /* javaClass */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         7: .line 2405
            aconst_null
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         8: .line 2406
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.handlesTypesNonAnnotations:Z
            ifeq 32
         9: .line 2408
            aload 0 /* this */
            aload 3 /* className */
            aload 1 /* javaClass */
            aload 2 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateJavaClassCache:(Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map;)V
        10: .line 2409
            aload 2 /* javaClassCache */
            aload 3 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
            astore 5 /* entry */
        start local 5 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry entry
        11: .line 2410
            aload 5 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            ifnonnull 20
        12: .line 2412
            aload 0 /* this */
            aload 5 /* entry */
            aload 2 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry:(Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map;)V
        13: .line 2413
            goto 20
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
      StackMap stack: java.lang.StackOverflowError
        14: pop
        15: .line 2414
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
        16: .line 2415
            ldc "contextConfig.annotationsStackOverflow"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        17: .line 2416
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        18: .line 2417
            aload 0 /* this */
            aload 3 /* className */
            aload 5 /* entry */
            aload 2 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.classHierarchyToString:(Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map;)Ljava/lang/String;
            aastore
        19: .line 2414
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 2420
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 32
        21: .line 2422
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 3 /* className */
            invokestatic org.apache.catalina.util.Introspection.loadClass:(Lorg/apache/catalina/Context;Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        22: .line 2423
            aload 4 /* clazz */
            ifnonnull 24
        23: .line 2425
            return
        24: .line 2428
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 31
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry top java.util.Iterator
      StackMap stack:
        25: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jakarta.servlet.ServletContainerInitializer
            astore 6 /* sci */
        start local 6 // jakarta.servlet.ServletContainerInitializer sci
        26: .line 2429
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
            aload 6 /* sci */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 8 /* classes */
        start local 8 // java.util.Set classes
        27: .line 2430
            aload 8 /* classes */
            ifnonnull 30
        28: .line 2431
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 8 /* classes */
        29: .line 2432
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
            aload 6 /* sci */
            aload 8 /* classes */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 2434
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry jakarta.servlet.ServletContainerInitializer java.util.Iterator java.util.Set
      StackMap stack:
            aload 8 /* classes */
            aload 4 /* clazz */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.Set classes
        end local 6 // jakarta.servlet.ServletContainerInitializer sci
        31: .line 2428
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        end local 5 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry entry
        32: .line 2439
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.handlesTypesAnnotations:Z
            ifeq 58
        33: .line 2440
            aload 1 /* javaClass */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getAnnotationEntries:()[Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            astore 5 /* annotationEntries */
        start local 5 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] annotationEntries
        34: .line 2441
            aload 5 /* annotationEntries */
            ifnull 58
        35: .line 2443
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 57
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] top java.util.Iterator
      StackMap stack:
        36: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        37: .line 2444
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            invokevirtual java.lang.Class.isAnnotation:()Z
            ifeq 57
        38: .line 2445
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 8 /* entryClassName */
        start local 8 // java.lang.String entryClassName
        39: .line 2446
            aload 5 /* annotationEntries */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 56
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.util.Map$Entry java.util.Iterator java.lang.String top int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[]
      StackMap stack:
        40: aload 12
            iload 10
            aaload
            astore 9 /* annotationEntry */
        start local 9 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry annotationEntry
        41: .line 2447
            aload 8 /* entryClassName */
        42: .line 2448
            aload 9 /* annotationEntry */
            invokevirtual org.apache.tomcat.util.bcel.classfile.AnnotationEntry.getAnnotationType:()Ljava/lang/String;
            invokestatic org.apache.catalina.startup.ContextConfig.getClassName:(Ljava/lang/String;)Ljava/lang/String;
        43: .line 2447
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        44: .line 2448
            ifeq 55
        45: .line 2449
            aload 4 /* clazz */
            ifnonnull 50
        46: .line 2451
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            aload 3 /* className */
        47: .line 2450
            invokestatic org.apache.catalina.util.Introspection.loadClass:(Lorg/apache/catalina/Context;Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* clazz */
        48: .line 2452
            aload 4 /* clazz */
            ifnonnull 50
        49: .line 2455
            return
        50: .line 2458
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.util.Map$Entry java.util.Iterator java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[]
      StackMap stack:
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 53
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.util.Map$Entry java.util.Iterator java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] top java.util.Iterator
      StackMap stack:
        51: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jakarta.servlet.ServletContainerInitializer
            astore 13 /* sci */
        start local 13 // jakarta.servlet.ServletContainerInitializer sci
        52: .line 2459
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.initializerClassMap:Ljava/util/Map;
            aload 13 /* sci */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 4 /* clazz */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // jakarta.servlet.ServletContainerInitializer sci
        53: .line 2458
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 51
        54: .line 2461
            goto 57
        end local 9 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry annotationEntry
        55: .line 2446
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] java.util.Map$Entry java.util.Iterator java.lang.String top int int org.apache.tomcat.util.bcel.classfile.AnnotationEntry[]
      StackMap stack:
            iinc 10 1
      StackMap locals:
      StackMap stack:
        56: iload 10
            iload 11
            if_icmplt 40
        end local 8 // java.lang.String entryClassName
        end local 6 // java.util.Map$Entry entry
        57: .line 2442
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        end local 5 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry[] annotationEntries
        58: .line 2468
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map java.lang.String java.lang.Class
      StackMap stack:
            return
        end local 4 // java.lang.Class clazz
        end local 3 // java.lang.String className
        end local 2 // java.util.Map javaClassCache
        end local 1 // org.apache.tomcat.util.bcel.classfile.JavaClass javaClass
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   59     0               this  Lorg/apache/catalina/startup/ContextConfig;
            0   59     1          javaClass  Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
            0   59     2     javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            7   59     3          className  Ljava/lang/String;
            8   59     4              clazz  Ljava/lang/Class<*>;
           11   32     5              entry  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
           26   31     6                sci  Ljakarta/servlet/ServletContainerInitializer;
           27   31     8            classes  Ljava/util/Set<Ljava/lang/Class<*>;>;
           34   58     5  annotationEntries  [Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
           37   57     6              entry  Ljava/util/Map$Entry<Ljava/lang/Class<*>;Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;>;
           39   57     8     entryClassName  Ljava/lang/String;
           41   55     9    annotationEntry  Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
           52   53    13                sci  Ljakarta/servlet/ServletContainerInitializer;
      Exception table:
        from    to  target  type
          12    13      14  Class java.lang.StackOverflowError
    Signature: (Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                Name  Flags
      javaClass       
      javaClassCache  

  private java.lang.String classHierarchyToString(java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String className
        start local 2 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry entry
        start local 3 // java.util.Map javaClassCache
         0: .line 2473
            aload 2 /* entry */
            astore 4 /* start */
        start local 4 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry start
         1: .line 2474
            new java.lang.StringBuilder
            dup
            aload 1 /* className */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 5 /* msg */
        start local 5 // java.lang.StringBuilder msg
         2: .line 2475
            aload 5 /* msg */
            ldc "->"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 2477
            aload 2 /* entry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSuperclassName:()Ljava/lang/String;
            astore 6 /* parentName */
        start local 6 // java.lang.String parentName
         4: .line 2478
            aload 3 /* javaClassCache */
            aload 6 /* parentName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
            astore 7 /* parent */
        start local 7 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry parent
         5: .line 2479
            iconst_0
            istore 8 /* count */
        start local 8 // int count
         6: .line 2481
            goto 12
         7: .line 2482
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Map org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.lang.StringBuilder java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry int
      StackMap stack:
            aload 5 /* msg */
            aload 6 /* parentName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 2483
            aload 5 /* msg */
            ldc "->"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 2485
            iinc 8 /* count */ 1
        10: .line 2486
            aload 7 /* parent */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSuperclassName:()Ljava/lang/String;
            astore 6 /* parentName */
        11: .line 2487
            aload 3 /* javaClassCache */
            aload 6 /* parentName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
            astore 7 /* parent */
        12: .line 2481
      StackMap locals:
      StackMap stack:
            iload 8 /* count */
            bipush 100
            if_icmpge 13
            aload 7 /* parent */
            ifnull 13
            aload 7 /* parent */
            aload 4 /* start */
            if_acmpne 7
        13: .line 2490
      StackMap locals:
      StackMap stack:
            aload 5 /* msg */
            aload 6 /* parentName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 2492
            aload 5 /* msg */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 8 // int count
        end local 7 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry parent
        end local 6 // java.lang.String parentName
        end local 5 // java.lang.StringBuilder msg
        end local 4 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry start
        end local 3 // java.util.Map javaClassCache
        end local 2 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry entry
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/apache/catalina/startup/ContextConfig;
            0   15     1       className  Ljava/lang/String;
            0   15     2           entry  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
            0   15     3  javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            1   15     4           start  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
            2   15     5             msg  Ljava/lang/StringBuilder;
            4   15     6      parentName  Ljava/lang/String;
            5   15     7          parent  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
            6   15     8           count  I
    Signature: (Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      className       
      entry           
      javaClassCache  

  private void populateJavaClassCache(java.lang.String, org.apache.tomcat.util.bcel.classfile.JavaClass, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String className
        start local 2 // org.apache.tomcat.util.bcel.classfile.JavaClass javaClass
        start local 3 // java.util.Map javaClassCache
         0: .line 2497
            aload 3 /* javaClassCache */
            aload 1 /* className */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 2498
            return
         2: .line 2502
      StackMap locals:
      StackMap stack:
            aload 3 /* javaClassCache */
            aload 1 /* className */
            new org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
            dup
            aload 2 /* javaClass */
            invokespecial org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.<init>:(Lorg/apache/tomcat/util/bcel/classfile/JavaClass;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 2504
            aload 0 /* this */
            aload 2 /* javaClass */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getSuperclassName:()Ljava/lang/String;
            aload 3 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateJavaClassCache:(Ljava/lang/String;Ljava/util/Map;)V
         4: .line 2506
            aload 2 /* javaClass */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getInterfaceNames:()[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.JavaClass java.util.Map top int int java.lang.String[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* interfaceName */
        start local 4 // java.lang.String interfaceName
         6: .line 2507
            aload 0 /* this */
            aload 4 /* interfaceName */
            aload 3 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateJavaClassCache:(Ljava/lang/String;Ljava/util/Map;)V
        end local 4 // java.lang.String interfaceName
         7: .line 2506
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 5
         9: .line 2509
            return
        end local 3 // java.util.Map javaClassCache
        end local 2 // org.apache.tomcat.util.bcel.classfile.JavaClass javaClass
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lorg/apache/catalina/startup/ContextConfig;
            0   10     1       className  Ljava/lang/String;
            0   10     2       javaClass  Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
            0   10     3  javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            6    7     4   interfaceName  Ljava/lang/String;
    Signature: (Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                Name  Flags
      className       
      javaClass       
      javaClassCache  

  private void populateJavaClassCache(java.lang.String, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String className
        start local 2 // java.util.Map javaClassCache
         0: .line 2513
            aload 2 /* javaClassCache */
            aload 1 /* className */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 29
         1: .line 2514
            new java.lang.StringBuilder
            dup
            aload 1 /* className */
            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
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         2: .line 2515
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.context:Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getLoader:()Lorg/apache/catalina/Loader;
            invokeinterface org.apache.catalina.Loader.getClassLoader:()Ljava/lang/ClassLoader;
            aload 3 /* name */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 6 /* is */
        start local 6 // java.io.InputStream is
         4: .line 2516
            aload 6 /* is */
            ifnonnull 7
         5: .line 2522
            aload 6 /* is */
            ifnull 6
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
         6: .line 2517
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String java.util.Map java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            return
         7: .line 2519
      StackMap locals:
      StackMap stack:
            new org.apache.tomcat.util.bcel.classfile.ClassParser
            dup
            aload 6 /* is */
            invokespecial org.apache.tomcat.util.bcel.classfile.ClassParser.<init>:(Ljava/io/InputStream;)V
            astore 7 /* parser */
        start local 7 // org.apache.tomcat.util.bcel.classfile.ClassParser parser
         8: .line 2520
            aload 7 /* parser */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ClassParser.parse:()Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
            astore 8 /* clazz */
        start local 8 // org.apache.tomcat.util.bcel.classfile.JavaClass clazz
         9: .line 2521
            aload 0 /* this */
            aload 8 /* clazz */
            invokevirtual org.apache.tomcat.util.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            aload 8 /* clazz */
            aload 2 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateJavaClassCache:(Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/JavaClass;Ljava/util/Map;)V
        end local 8 // org.apache.tomcat.util.bcel.classfile.JavaClass clazz
        end local 7 // org.apache.tomcat.util.bcel.classfile.ClassParser parser
        10: .line 2522
            aload 6 /* is */
            ifnull 29
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
            aload 6 /* is */
            ifnull 12
            aload 6 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 6 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        12: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 5
            aload 4
            ifnonnull 14
            aload 5
            astore 4
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 4
            aload 5
            if_acmpeq 15
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 4
            athrow
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String java.util.Map java.lang.String
      StackMap stack: org.apache.tomcat.util.bcel.classfile.ClassFormatException
        16: astore 4 /* e */
        start local 4 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        17: .line 2523
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.invalidSciHandlesTypes"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 2524
            aload 1 /* className */
            aastore
        19: .line 2523
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        20: .line 2524
            aload 4 /* e */
        21: .line 2523
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // org.apache.tomcat.util.bcel.classfile.ClassFormatException e
        22: goto 29
        23: .line 2525
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        24: .line 2526
            getstatic org.apache.catalina.startup.ContextConfig.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "contextConfig.invalidSciHandlesTypes"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        25: .line 2527
            aload 1 /* className */
            aastore
        26: .line 2526
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        27: .line 2527
            aload 4 /* e */
        28: .line 2526
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.io.IOException e
        end local 3 // java.lang.String name
        29: .line 2530
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Map javaClassCache
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0            this  Lorg/apache/catalina/startup/ContextConfig;
            0   30     1       className  Ljava/lang/String;
            0   30     2  javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            2   29     3            name  Ljava/lang/String;
            4   12     6              is  Ljava/io/InputStream;
            8   10     7          parser  Lorg/apache/tomcat/util/bcel/classfile/ClassParser;
            9   10     8           clazz  Lorg/apache/tomcat/util/bcel/classfile/JavaClass;
           17   22     4               e  Lorg/apache/tomcat/util/bcel/classfile/ClassFormatException;
           24   29     4               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5      11  any
           7    10      11  any
           3     6      13  any
           7    13      13  any
           2     6      16  Class org.apache.tomcat.util.bcel.classfile.ClassFormatException
           7    16      16  Class org.apache.tomcat.util.bcel.classfile.ClassFormatException
           2     6      23  Class java.io.IOException
           7    16      23  Class java.io.IOException
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                Name  Flags
      className       
      javaClassCache  

  private void populateSCIsForCacheEntry(org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry, java.util.Map<java.lang.String, org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry>);
    descriptor: (Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry cacheEntry
        start local 2 // java.util.Map javaClassCache
         0: .line 2534
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.Set result
         1: .line 2537
            aload 1 /* cacheEntry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSuperclassName:()Ljava/lang/String;
            astore 4 /* superClassName */
        start local 4 // java.lang.String superClassName
         2: .line 2539
            aload 2 /* javaClassCache */
            aload 4 /* superClassName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
         3: .line 2538
            astore 5 /* superClassCacheEntry */
        start local 5 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry superClassCacheEntry
         4: .line 2542
            aload 1 /* cacheEntry */
            aload 5 /* superClassCacheEntry */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 2543
            aload 1 /* cacheEntry */
            getstatic org.apache.catalina.startup.ContextConfig.EMPTY_SCI_SET:Ljava/util/Set;
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.setSciSet:(Ljava/util/Set;)V
         6: .line 2544
            return
         7: .line 2548
      StackMap locals: java.util.Set java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
      StackMap stack:
            aload 5 /* superClassCacheEntry */
            ifnull 11
         8: .line 2549
            aload 5 /* superClassCacheEntry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            ifnonnull 10
         9: .line 2550
            aload 0 /* this */
            aload 5 /* superClassCacheEntry */
            aload 2 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry:(Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map;)V
        10: .line 2552
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 5 /* superClassCacheEntry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        11: .line 2554
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 0 /* this */
            aload 4 /* superClassName */
            invokevirtual org.apache.catalina.startup.ContextConfig.getSCIsForClass:(Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        12: .line 2557
            aload 1 /* cacheEntry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getInterfaceNames:()[Ljava/lang/String;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 22
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Map java.util.Set java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry top int int java.lang.String[]
      StackMap stack:
        13: aload 9
            iload 7
            aaload
            astore 6 /* interfaceName */
        start local 6 // java.lang.String interfaceName
        14: .line 2559
            aload 2 /* javaClassCache */
            aload 6 /* interfaceName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
        15: .line 2558
            astore 10 /* interfaceEntry */
        start local 10 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry interfaceEntry
        16: .line 2563
            aload 10 /* interfaceEntry */
            ifnull 20
        17: .line 2564
            aload 10 /* interfaceEntry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            ifnonnull 19
        18: .line 2565
            aload 0 /* this */
            aload 10 /* interfaceEntry */
            aload 2 /* javaClassCache */
            invokevirtual org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry:(Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map;)V
        19: .line 2567
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Map java.util.Set java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.lang.String int int java.lang.String[] org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
      StackMap stack:
            aload 3 /* result */
            aload 10 /* interfaceEntry */
            invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.getSciSet:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        20: .line 2569
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 0 /* this */
            aload 6 /* interfaceName */
            invokevirtual org.apache.catalina.startup.ContextConfig.getSCIsForClass:(Ljava/lang/String;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 10 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry interfaceEntry
        end local 6 // java.lang.String interfaceName
        21: .line 2557
            iinc 7 1
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Map java.util.Set java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry top int int java.lang.String[]
      StackMap stack:
        22: iload 7
            iload 8
            if_icmplt 13
        23: .line 2572
            aload 1 /* cacheEntry */
            aload 3 /* result */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 24
            getstatic org.apache.catalina.startup.ContextConfig.EMPTY_SCI_SET:Ljava/util/Set;
            goto 25
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Map java.util.Set java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
      StackMap stack: org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
        24: aload 3 /* result */
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Map java.util.Set java.lang.String org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
      StackMap stack: org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry java.util.Set
        25: invokevirtual org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry.setSciSet:(Ljava/util/Set;)V
        26: .line 2573
            return
        end local 5 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry superClassCacheEntry
        end local 4 // java.lang.String superClassName
        end local 3 // java.util.Set result
        end local 2 // java.util.Map javaClassCache
        end local 1 // org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry cacheEntry
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   27     0                  this  Lorg/apache/catalina/startup/ContextConfig;
            0   27     1            cacheEntry  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
            0   27     2        javaClassCache  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;
            1   27     3                result  Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;
            2   27     4        superClassName  Ljava/lang/String;
            4   27     5  superClassCacheEntry  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
           14   21     6         interfaceName  Ljava/lang/String;
           16   21    10        interfaceEntry  Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;
    Signature: (Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/startup/ContextConfig$JavaClassCacheEntry;>;)V
    MethodParameters:
                Name  Flags
      cacheEntry      
      javaClassCache  

  private java.util.Set<jakarta.servlet.ServletContainerInitializer> getSCIsForClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String className
         0: .line 2577
            aload 0 /* this */
            getfield org.apache.catalina.startup.ContextConfig.typeInitializerMap:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         2: .line 2578
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* clazz */
        start local 4 // java.lang.Class clazz
         3: .line 2579
            aload 4 /* clazz */
            invokevirtual java.lang.Class.isAnnotation:()Z
            ifne 6
         4: .line 2580
            aload 4 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* className */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 2581
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            areturn
        end local 4 // java.lang.Class clazz
        end local 2 // java.util.Map$Entry entry
         6: .line 2576
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 2585
            getstatic org.apache.catalina.startup.ContextConfig.EMPTY_SCI_SET:Ljava/util/Set;
            areturn
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/apache/catalina/startup/ContextConfig;
            0    8     1  className  Ljava/lang/String;
            2    6     2      entry  Ljava/util/Map$Entry<Ljava/lang/Class<*>;Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;>;
            3    6     4      clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljakarta/servlet/ServletContainerInitializer;>;
    MethodParameters:
           Name  Flags
      className  

  private static final java.lang.String getClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String internalForm
         0: .line 2589
            aload 0 /* internalForm */
            ldc "L"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 2590
            aload 0 /* internalForm */
            areturn
         2: .line 2594
      StackMap locals:
      StackMap stack:
            aload 0 /* internalForm */
            iconst_1
         3: .line 2595
            aload 0 /* internalForm */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
         4: .line 2594
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         5: .line 2595
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
         6: .line 2594
            areturn
        end local 0 // java.lang.String internalForm
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0  internalForm  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      internalForm  

  protected void processAnnotationWebServlet(java.lang.String, org.apache.tomcat.util.bcel.classfile.AnnotationEntry, org.apache.tomcat.util.descriptor.web.WebXml);
    descriptor: (Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=17, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String className
        start local 2 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry ae
        start local 3 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         0: .line 2600
            aconst_null
            astore 4 /* servletName */
        start local 4 // java.lang.String servletName
         1: .line 2602
            aload 2 /* ae */
            invokevirtual org.apache.tomcat.util.bcel.classfile.AnnotationEntry.getElementValuePairs:()Ljava/util/List;
            astore 5 /* evps */
        start local 5 // java.util.List evps
         2: .line 2603
            aload 5 /* evps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.bcel.classfile.ElementValuePair
            astore 6 /* evp */
        start local 6 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
         4: .line 2604
            aload 6 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getNameString:()Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
         5: .line 2605
            ldc "name"
            aload 8 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 2606
            aload 6 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            astore 4 /* servletName */
         7: .line 2607
            goto 9
        end local 8 // java.lang.String name
        end local 6 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
         8: .line 2603
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 2610
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List
      StackMap stack:
            aload 4 /* servletName */
            ifnonnull 11
        10: .line 2612
            aload 1 /* className */
            astore 4 /* servletName */
        11: .line 2614
      StackMap locals:
      StackMap stack:
            aload 3 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServlets:()Ljava/util/Map;
            aload 4 /* servletName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.ServletDef
            astore 6 /* servletDef */
        start local 6 // org.apache.tomcat.util.descriptor.web.ServletDef servletDef
        12: .line 2617
            aload 6 /* servletDef */
            ifnonnull 18
        13: .line 2618
            new org.apache.tomcat.util.descriptor.web.ServletDef
            dup
            invokespecial org.apache.tomcat.util.descriptor.web.ServletDef.<init>:()V
            astore 6 /* servletDef */
        14: .line 2619
            aload 6 /* servletDef */
            aload 4 /* servletName */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setServletName:(Ljava/lang/String;)V
        15: .line 2620
            aload 6 /* servletDef */
            aload 1 /* className */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setServletClass:(Ljava/lang/String;)V
        16: .line 2621
            iconst_0
            istore 7 /* isWebXMLservletDef */
        start local 7 // boolean isWebXMLservletDef
        17: .line 2622
            goto 19
        end local 7 // boolean isWebXMLservletDef
        18: .line 2623
      StackMap locals: org.apache.tomcat.util.descriptor.web.ServletDef
      StackMap stack:
            iconst_1
            istore 7 /* isWebXMLservletDef */
        start local 7 // boolean isWebXMLservletDef
        19: .line 2626
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 8 /* urlPatternsSet */
        start local 8 // boolean urlPatternsSet
        20: .line 2627
            aconst_null
            astore 9 /* urlPatterns */
        start local 9 // java.lang.String[] urlPatterns
        21: .line 2630
            aload 5 /* evps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 83
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] top java.util.Iterator
      StackMap stack:
        22: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.bcel.classfile.ElementValuePair
            astore 10 /* evp */
        start local 10 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
        23: .line 2631
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getNameString:()Ljava/lang/String;
            astore 12 /* name */
        start local 12 // java.lang.String name
        24: .line 2632
            ldc "value"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 25
            ldc "urlPatterns"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 32
        25: .line 2633
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String
      StackMap stack:
            iload 8 /* urlPatternsSet */
            ifeq 29
        26: .line 2634
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
        27: .line 2635
            ldc "contextConfig.urlPatternValue"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "WebServlet"
            aastore
            dup
            iconst_1
            aload 1 /* className */
            aastore
        28: .line 2634
            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
        29: .line 2637
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* urlPatternsSet */
        30: .line 2638
            aload 0 /* this */
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStringArray:(Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)[Ljava/lang/String;
            astore 9 /* urlPatterns */
        31: .line 2639
            goto 83
      StackMap locals:
      StackMap stack:
        32: ldc "description"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 36
        33: .line 2640
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getDescription:()Ljava/lang/String;
            ifnonnull 83
        34: .line 2641
            aload 6 /* servletDef */
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setDescription:(Ljava/lang/String;)V
        35: .line 2643
            goto 83
      StackMap locals:
      StackMap stack:
        36: ldc "displayName"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 40
        37: .line 2644
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getDisplayName:()Ljava/lang/String;
            ifnonnull 83
        38: .line 2645
            aload 6 /* servletDef */
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setDisplayName:(Ljava/lang/String;)V
        39: .line 2647
            goto 83
      StackMap locals:
      StackMap stack:
        40: ldc "largeIcon"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        41: .line 2648
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getLargeIcon:()Ljava/lang/String;
            ifnonnull 83
        42: .line 2649
            aload 6 /* servletDef */
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setLargeIcon:(Ljava/lang/String;)V
        43: .line 2651
            goto 83
      StackMap locals:
      StackMap stack:
        44: ldc "smallIcon"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        45: .line 2652
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getSmallIcon:()Ljava/lang/String;
            ifnonnull 83
        46: .line 2653
            aload 6 /* servletDef */
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setSmallIcon:(Ljava/lang/String;)V
        47: .line 2655
            goto 83
      StackMap locals:
      StackMap stack:
        48: ldc "asyncSupported"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 54
        49: .line 2656
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getAsyncSupported:()Ljava/lang/Boolean;
            ifnonnull 83
        50: .line 2657
            aload 6 /* servletDef */
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
        51: .line 2658
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
        52: .line 2657
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setAsyncSupported:(Ljava/lang/String;)V
        53: .line 2660
            goto 83
      StackMap locals:
      StackMap stack:
        54: ldc "loadOnStartup"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 59
        55: .line 2661
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getLoadOnStartup:()Ljava/lang/Integer;
            ifnonnull 83
        56: .line 2662
            aload 6 /* servletDef */
        57: .line 2663
            aload 10 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.setLoadOnStartup:(Ljava/lang/String;)V
        58: .line 2665
            goto 83
      StackMap locals:
      StackMap stack:
        59: ldc "initParams"
            aload 12 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 83
        60: .line 2666
            aload 0 /* this */
            aload 10 /* evp */
        61: .line 2667
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
        62: .line 2666
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationWebInitParams:(Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)Ljava/util/Map;
            astore 13 /* initParams */
        start local 13 // java.util.Map initParams
        63: .line 2668
            iload 7 /* isWebXMLservletDef */
            ifeq 76
        64: .line 2669
            aload 6 /* servletDef */
        65: .line 2670
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.getParameterMap:()Ljava/util/Map;
        66: .line 2669
            astore 14 /* webXMLInitParams */
        start local 14 // java.util.Map webXMLInitParams
        67: .line 2671
            aload 13 /* initParams */
        68: .line 2672
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16
            goto 74
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        69: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 15 /* entry */
        start local 15 // java.util.Map$Entry entry
        70: .line 2673
            aload 14 /* webXMLInitParams */
            aload 15 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 74
        71: .line 2674
            aload 6 /* servletDef */
            aload 15 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 15 /* entry */
        72: .line 2675
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
        73: .line 2674
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.addInitParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 15 // java.util.Map$Entry entry
        74: .line 2671
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 69
        end local 14 // java.util.Map webXMLInitParams
        75: .line 2678
            goto 83
        76: .line 2679
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.util.Map
      StackMap stack:
            aload 13 /* initParams */
        77: .line 2680
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 82
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
        78: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 14 /* entry */
        start local 14 // java.util.Map$Entry entry
        79: .line 2681
            aload 6 /* servletDef */
            aload 14 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 14 /* entry */
        80: .line 2682
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
        81: .line 2681
            invokevirtual org.apache.tomcat.util.descriptor.web.ServletDef.addInitParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 14 // java.util.Map$Entry entry
        82: .line 2679
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 78
        end local 13 // java.util.Map initParams
        end local 12 // java.lang.String name
        end local 10 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
        83: .line 2630
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        84: .line 2687
            iload 7 /* isWebXMLservletDef */
            ifne 86
            aload 9 /* urlPatterns */
            ifnull 86
        85: .line 2688
            aload 3 /* fragment */
            aload 6 /* servletDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.addServlet:(Lorg/apache/tomcat/util/descriptor/web/ServletDef;)V
        86: .line 2690
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[]
      StackMap stack:
            aload 9 /* urlPatterns */
            ifnull 93
        87: .line 2691
            aload 3 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getServletMappings:()Ljava/util/Map;
            aload 4 /* servletName */
            invokeinterface java.util.Map.containsValue:(Ljava/lang/Object;)Z
            ifne 93
        88: .line 2692
            aload 9 /* urlPatterns */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 92
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        89: aload 13
            iload 11
            aaload
            astore 10 /* urlPattern */
        start local 10 // java.lang.String urlPattern
        90: .line 2693
            aload 3 /* fragment */
            aload 10 /* urlPattern */
            aload 4 /* servletName */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.addServletMapping:(Ljava/lang/String;Ljava/lang/String;)V
        end local 10 // java.lang.String urlPattern
        91: .line 2692
            iinc 11 1
      StackMap locals:
      StackMap stack:
        92: iload 11
            iload 12
            if_icmplt 89
        93: .line 2698
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.ServletDef int int java.lang.String[]
      StackMap stack:
            return
        end local 9 // java.lang.String[] urlPatterns
        end local 8 // boolean urlPatternsSet
        end local 7 // boolean isWebXMLservletDef
        end local 6 // org.apache.tomcat.util.descriptor.web.ServletDef servletDef
        end local 5 // java.util.List evps
        end local 4 // java.lang.String servletName
        end local 3 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 2 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry ae
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   94     0                this  Lorg/apache/catalina/startup/ContextConfig;
            0   94     1           className  Ljava/lang/String;
            0   94     2                  ae  Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            0   94     3            fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            1   94     4         servletName  Ljava/lang/String;
            2   94     5                evps  Ljava/util/List<Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;>;
            4    8     6                 evp  Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;
            5    8     8                name  Ljava/lang/String;
           12   94     6          servletDef  Lorg/apache/tomcat/util/descriptor/web/ServletDef;
           17   18     7  isWebXMLservletDef  Z
           19   94     7  isWebXMLservletDef  Z
           20   94     8      urlPatternsSet  Z
           21   94     9         urlPatterns  [Ljava/lang/String;
           23   83    10                 evp  Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;
           24   83    12                name  Ljava/lang/String;
           63   83    13          initParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           67   75    14    webXMLInitParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           70   74    15               entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
           79   82    14               entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
           90   91    10          urlPattern  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  
      ae         
      fragment   

  protected void processAnnotationWebFilter(java.lang.String, org.apache.tomcat.util.bcel.classfile.AnnotationEntry, org.apache.tomcat.util.descriptor.web.WebXml);
    descriptor: (Ljava/lang/String;Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;Lorg/apache/tomcat/util/descriptor/web/WebXml;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=21, args_size=4
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // java.lang.String className
        start local 2 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry ae
        start local 3 // org.apache.tomcat.util.descriptor.web.WebXml fragment
         0: .line 2710
            aconst_null
            astore 4 /* filterName */
        start local 4 // java.lang.String filterName
         1: .line 2712
            aload 2 /* ae */
            invokevirtual org.apache.tomcat.util.bcel.classfile.AnnotationEntry.getElementValuePairs:()Ljava/util/List;
            astore 5 /* evps */
        start local 5 // java.util.List evps
         2: .line 2713
            aload 5 /* evps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.bcel.classfile.ElementValuePair
            astore 6 /* evp */
        start local 6 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
         4: .line 2714
            aload 6 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getNameString:()Ljava/lang/String;
            astore 8 /* name */
        start local 8 // java.lang.String name
         5: .line 2715
            ldc "filterName"
            aload 8 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 2716
            aload 6 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            astore 4 /* filterName */
         7: .line 2717
            goto 9
        end local 8 // java.lang.String name
        end local 6 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
         8: .line 2713
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 2720
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List
      StackMap stack:
            aload 4 /* filterName */
            ifnonnull 11
        10: .line 2722
            aload 1 /* className */
            astore 4 /* filterName */
        11: .line 2724
      StackMap locals:
      StackMap stack:
            aload 3 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getFilters:()Ljava/util/Map;
            aload 4 /* filterName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.FilterDef
            astore 6 /* filterDef */
        start local 6 // org.apache.tomcat.util.descriptor.web.FilterDef filterDef
        12: .line 2725
            new org.apache.tomcat.util.descriptor.web.FilterMap
            dup
            invokespecial org.apache.tomcat.util.descriptor.web.FilterMap.<init>:()V
            astore 7 /* filterMap */
        start local 7 // org.apache.tomcat.util.descriptor.web.FilterMap filterMap
        13: .line 2728
            aload 6 /* filterDef */
            ifnonnull 19
        14: .line 2729
            new org.apache.tomcat.util.descriptor.web.FilterDef
            dup
            invokespecial org.apache.tomcat.util.descriptor.web.FilterDef.<init>:()V
            astore 6 /* filterDef */
        15: .line 2730
            aload 6 /* filterDef */
            aload 4 /* filterName */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setFilterName:(Ljava/lang/String;)V
        16: .line 2731
            aload 6 /* filterDef */
            aload 1 /* className */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setFilterClass:(Ljava/lang/String;)V
        17: .line 2732
            iconst_0
            istore 8 /* isWebXMLfilterDef */
        start local 8 // boolean isWebXMLfilterDef
        18: .line 2733
            goto 20
        end local 8 // boolean isWebXMLfilterDef
        19: .line 2734
      StackMap locals: org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap
      StackMap stack:
            iconst_1
            istore 8 /* isWebXMLfilterDef */
        start local 8 // boolean isWebXMLfilterDef
        20: .line 2737
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 9 /* urlPatternsSet */
        start local 9 // boolean urlPatternsSet
        21: .line 2738
            iconst_0
            istore 10 /* servletNamesSet */
        start local 10 // boolean servletNamesSet
        22: .line 2739
            iconst_0
            istore 11 /* dispatchTypesSet */
        start local 11 // boolean dispatchTypesSet
        23: .line 2740
            aconst_null
            astore 12 /* urlPatterns */
        start local 12 // java.lang.String[] urlPatterns
        24: .line 2742
            aload 5 /* evps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 113
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] top java.util.Iterator
      StackMap stack:
        25: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.bcel.classfile.ElementValuePair
            astore 13 /* evp */
        start local 13 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
        26: .line 2743
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getNameString:()Ljava/lang/String;
            astore 15 /* name */
        start local 15 // java.lang.String name
        27: .line 2744
            ldc "value"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
            ldc "urlPatterns"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        28: .line 2745
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String
      StackMap stack:
            iload 9 /* urlPatternsSet */
            ifeq 32
        29: .line 2746
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.startup.ContextConfig.sm:Lorg/apache/tomcat/util/res/StringManager;
        30: .line 2747
            ldc "contextConfig.urlPatternValue"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "WebFilter"
            aastore
            dup
            iconst_1
            aload 1 /* className */
            aastore
        31: .line 2746
            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
        32: .line 2749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStringArray:(Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)[Ljava/lang/String;
            astore 12 /* urlPatterns */
        33: .line 2750
            aload 12 /* urlPatterns */
            arraylength
            ifle 34
            iconst_1
            goto 35
      StackMap locals:
      StackMap stack:
        34: iconst_0
      StackMap locals:
      StackMap stack: int
        35: istore 9 /* urlPatternsSet */
        36: .line 2751
            aload 12 /* urlPatterns */
            dup
            astore 19
            arraylength
            istore 18
            iconst_0
            istore 17
            goto 40
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String top int int java.lang.String[]
      StackMap stack:
        37: aload 19
            iload 17
            aaload
            astore 16 /* urlPattern */
        start local 16 // java.lang.String urlPattern
        38: .line 2753
            aload 7 /* filterMap */
            aload 16 /* urlPattern */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.addURLPattern:(Ljava/lang/String;)V
        end local 16 // java.lang.String urlPattern
        39: .line 2751
            iinc 17 1
      StackMap locals:
      StackMap stack:
        40: iload 17
            iload 18
            if_icmplt 37
        41: .line 2755
            goto 113
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String
      StackMap stack:
        42: ldc "servletNames"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        43: .line 2756
            aload 0 /* this */
            aload 13 /* evp */
        44: .line 2757
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
        45: .line 2756
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStringArray:(Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)[Ljava/lang/String;
            astore 16 /* servletNames */
        start local 16 // java.lang.String[] servletNames
        46: .line 2758
            aload 16 /* servletNames */
            arraylength
            ifle 47
            iconst_1
            goto 48
      StackMap locals: java.lang.String[]
      StackMap stack:
        47: iconst_0
      StackMap locals:
      StackMap stack: int
        48: istore 10 /* servletNamesSet */
        49: .line 2759
            aload 16 /* servletNames */
            dup
            astore 20
            arraylength
            istore 19
            iconst_0
            istore 18
            goto 53
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        50: aload 20
            iload 18
            aaload
            astore 17 /* servletName */
        start local 17 // java.lang.String servletName
        51: .line 2760
            aload 7 /* filterMap */
            aload 17 /* servletName */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.addServletName:(Ljava/lang/String;)V
        end local 17 // java.lang.String servletName
        52: .line 2759
            iinc 18 1
      StackMap locals:
      StackMap stack:
        53: iload 18
            iload 19
            if_icmplt 50
        end local 16 // java.lang.String[] servletNames
        54: .line 2762
            goto 113
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String
      StackMap stack:
        55: ldc "dispatcherTypes"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 68
        56: .line 2763
            aload 0 /* this */
            aload 13 /* evp */
        57: .line 2764
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
        58: .line 2763
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationsStringArray:(Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)[Ljava/lang/String;
            astore 16 /* dispatcherTypes */
        start local 16 // java.lang.String[] dispatcherTypes
        59: .line 2765
            aload 16 /* dispatcherTypes */
            arraylength
            ifle 60
            iconst_1
            goto 61
      StackMap locals: java.lang.String[]
      StackMap stack:
        60: iconst_0
      StackMap locals:
      StackMap stack: int
        61: istore 11 /* dispatchTypesSet */
        62: .line 2766
            aload 16 /* dispatcherTypes */
            dup
            astore 20
            arraylength
            istore 19
            iconst_0
            istore 18
            goto 66
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        63: aload 20
            iload 18
            aaload
            astore 17 /* dispatcherType */
        start local 17 // java.lang.String dispatcherType
        64: .line 2767
            aload 7 /* filterMap */
            aload 17 /* dispatcherType */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.setDispatcher:(Ljava/lang/String;)V
        end local 17 // java.lang.String dispatcherType
        65: .line 2766
            iinc 18 1
      StackMap locals:
      StackMap stack:
        66: iload 18
            iload 19
            if_icmplt 63
        end local 16 // java.lang.String[] dispatcherTypes
        67: .line 2769
            goto 113
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String
      StackMap stack:
        68: ldc "description"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 72
        69: .line 2770
            aload 6 /* filterDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getDescription:()Ljava/lang/String;
            ifnonnull 113
        70: .line 2771
            aload 6 /* filterDef */
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setDescription:(Ljava/lang/String;)V
        71: .line 2773
            goto 113
      StackMap locals:
      StackMap stack:
        72: ldc "displayName"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 76
        73: .line 2774
            aload 6 /* filterDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getDisplayName:()Ljava/lang/String;
            ifnonnull 113
        74: .line 2775
            aload 6 /* filterDef */
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setDisplayName:(Ljava/lang/String;)V
        75: .line 2777
            goto 113
      StackMap locals:
      StackMap stack:
        76: ldc "largeIcon"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 80
        77: .line 2778
            aload 6 /* filterDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getLargeIcon:()Ljava/lang/String;
            ifnonnull 113
        78: .line 2779
            aload 6 /* filterDef */
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setLargeIcon:(Ljava/lang/String;)V
        79: .line 2781
            goto 113
      StackMap locals:
      StackMap stack:
        80: ldc "smallIcon"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 84
        81: .line 2782
            aload 6 /* filterDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getSmallIcon:()Ljava/lang/String;
            ifnonnull 113
        82: .line 2783
            aload 6 /* filterDef */
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setSmallIcon:(Ljava/lang/String;)V
        83: .line 2785
            goto 113
      StackMap locals:
      StackMap stack:
        84: ldc "asyncSupported"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 89
        85: .line 2786
            aload 6 /* filterDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getAsyncSupported:()Ljava/lang/String;
            ifnonnull 113
        86: .line 2787
            aload 6 /* filterDef */
        87: .line 2788
            aload 13 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.setAsyncSupported:(Ljava/lang/String;)V
        88: .line 2790
            goto 113
      StackMap locals:
      StackMap stack:
        89: ldc "initParams"
            aload 15 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 113
        90: .line 2791
            aload 0 /* this */
            aload 13 /* evp */
        91: .line 2792
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
        92: .line 2791
            invokevirtual org.apache.catalina.startup.ContextConfig.processAnnotationWebInitParams:(Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)Ljava/util/Map;
            astore 16 /* initParams */
        start local 16 // java.util.Map initParams
        93: .line 2793
            iload 8 /* isWebXMLfilterDef */
            ifeq 106
        94: .line 2794
            aload 6 /* filterDef */
        95: .line 2795
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.getParameterMap:()Ljava/util/Map;
        96: .line 2794
            astore 17 /* webXMLInitParams */
        start local 17 // java.util.Map webXMLInitParams
        97: .line 2796
            aload 16 /* initParams */
        98: .line 2797
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 19
            goto 104
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        99: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 18 /* entry */
        start local 18 // java.util.Map$Entry entry
       100: .line 2798
            aload 17 /* webXMLInitParams */
            aload 18 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 104
       101: .line 2799
            aload 6 /* filterDef */
            aload 18 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 18 /* entry */
       102: .line 2800
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
       103: .line 2799
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.addInitParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 18 // java.util.Map$Entry entry
       104: .line 2796
      StackMap locals:
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 99
        end local 17 // java.util.Map webXMLInitParams
       105: .line 2803
            goto 113
       106: .line 2804
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.util.Map
      StackMap stack:
            aload 16 /* initParams */
       107: .line 2805
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 18
            goto 112
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
       108: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 17 /* entry */
        start local 17 // java.util.Map$Entry entry
       109: .line 2806
            aload 6 /* filterDef */
            aload 17 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 17 /* entry */
       110: .line 2807
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
       111: .line 2806
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterDef.addInitParameter:(Ljava/lang/String;Ljava/lang/String;)V
        end local 17 // java.util.Map$Entry entry
       112: .line 2804
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 108
        end local 16 // java.util.Map initParams
        end local 15 // java.lang.String name
        end local 13 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
       113: .line 2742
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
       114: .line 2813
            iload 8 /* isWebXMLfilterDef */
            ifne 119
       115: .line 2814
            aload 3 /* fragment */
            aload 6 /* filterDef */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.addFilter:(Lorg/apache/tomcat/util/descriptor/web/FilterDef;)V
       116: .line 2815
            iload 9 /* urlPatternsSet */
            ifne 117
            iload 10 /* servletNamesSet */
            ifeq 119
       117: .line 2816
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[]
      StackMap stack:
            aload 7 /* filterMap */
            aload 4 /* filterName */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.setFilterName:(Ljava/lang/String;)V
       118: .line 2817
            aload 3 /* fragment */
            aload 7 /* filterMap */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.addFilterMapping:(Lorg/apache/tomcat/util/descriptor/web/FilterMap;)V
       119: .line 2820
      StackMap locals:
      StackMap stack:
            iload 9 /* urlPatternsSet */
            ifne 120
            iload 11 /* dispatchTypesSet */
            ifeq 145
       120: .line 2821
      StackMap locals:
      StackMap stack:
            aload 3 /* fragment */
            invokevirtual org.apache.tomcat.util.descriptor.web.WebXml.getFilterMappings:()Ljava/util/Set;
            astore 13 /* fmap */
        start local 13 // java.util.Set fmap
       121: .line 2822
            aconst_null
            astore 14 /* descMap */
        start local 14 // org.apache.tomcat.util.descriptor.web.FilterMap descMap
       122: .line 2823
            aload 13 /* fmap */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 16
            goto 127
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] java.util.Set org.apache.tomcat.util.descriptor.web.FilterMap top java.util.Iterator
      StackMap stack:
       123: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.descriptor.web.FilterMap
            astore 15 /* map */
        start local 15 // org.apache.tomcat.util.descriptor.web.FilterMap map
       124: .line 2824
            aload 4 /* filterName */
            aload 15 /* map */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.getFilterName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 127
       125: .line 2825
            aload 15 /* map */
            astore 14 /* descMap */
       126: .line 2826
            goto 128
        end local 15 // org.apache.tomcat.util.descriptor.web.FilterMap map
       127: .line 2823
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 123
       128: .line 2829
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] java.util.Set org.apache.tomcat.util.descriptor.web.FilterMap
      StackMap stack:
            aload 14 /* descMap */
            ifnull 145
       129: .line 2830
            aload 14 /* descMap */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.getURLPatterns:()[Ljava/lang/String;
            astore 15 /* urlsPatterns */
        start local 15 // java.lang.String[] urlsPatterns
       130: .line 2831
            iload 9 /* urlPatternsSet */
            ifeq 137
       131: .line 2832
            aload 15 /* urlsPatterns */
            ifnull 132
            aload 15 /* urlsPatterns */
            arraylength
            ifne 137
       132: .line 2833
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 7 /* filterMap */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.getURLPatterns:()[Ljava/lang/String;
            dup
            astore 19
            arraylength
            istore 18
            iconst_0
            istore 17
            goto 136
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] java.util.Set org.apache.tomcat.util.descriptor.web.FilterMap java.lang.String[] top int int java.lang.String[]
      StackMap stack:
       133: aload 19
            iload 17
            aaload
            astore 16 /* urlPattern */
        start local 16 // java.lang.String urlPattern
       134: .line 2835
            aload 14 /* descMap */
            aload 16 /* urlPattern */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.addURLPattern:(Ljava/lang/String;)V
        end local 16 // java.lang.String urlPattern
       135: .line 2833
            iinc 17 1
      StackMap locals:
      StackMap stack:
       136: iload 17
            iload 18
            if_icmplt 133
       137: .line 2838
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] java.util.Set org.apache.tomcat.util.descriptor.web.FilterMap java.lang.String[]
      StackMap stack:
            aload 14 /* descMap */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.getDispatcherNames:()[Ljava/lang/String;
            astore 16 /* dispatcherNames */
        start local 16 // java.lang.String[] dispatcherNames
       138: .line 2839
            iload 11 /* dispatchTypesSet */
            ifeq 145
       139: .line 2840
            aload 16 /* dispatcherNames */
            ifnull 140
            aload 16 /* dispatcherNames */
            arraylength
            ifne 145
       140: .line 2841
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 7 /* filterMap */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.getDispatcherNames:()[Ljava/lang/String;
            dup
            astore 20
            arraylength
            istore 19
            iconst_0
            istore 18
            goto 144
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[] java.util.Set org.apache.tomcat.util.descriptor.web.FilterMap java.lang.String[] java.lang.String[] top int int java.lang.String[]
      StackMap stack:
       141: aload 20
            iload 18
            aaload
            astore 17 /* dis */
        start local 17 // java.lang.String dis
       142: .line 2842
            aload 14 /* descMap */
            aload 17 /* dis */
            invokevirtual org.apache.tomcat.util.descriptor.web.FilterMap.setDispatcher:(Ljava/lang/String;)V
        end local 17 // java.lang.String dis
       143: .line 2841
            iinc 18 1
      StackMap locals:
      StackMap stack:
       144: iload 18
            iload 19
            if_icmplt 141
        end local 16 // java.lang.String[] dispatcherNames
        end local 15 // java.lang.String[] urlsPatterns
        end local 14 // org.apache.tomcat.util.descriptor.web.FilterMap descMap
        end local 13 // java.util.Set fmap
       145: .line 2848
      StackMap locals: org.apache.catalina.startup.ContextConfig java.lang.String org.apache.tomcat.util.bcel.classfile.AnnotationEntry org.apache.tomcat.util.descriptor.web.WebXml java.lang.String java.util.List org.apache.tomcat.util.descriptor.web.FilterDef org.apache.tomcat.util.descriptor.web.FilterMap int int int int java.lang.String[]
      StackMap stack:
            return
        end local 12 // java.lang.String[] urlPatterns
        end local 11 // boolean dispatchTypesSet
        end local 10 // boolean servletNamesSet
        end local 9 // boolean urlPatternsSet
        end local 8 // boolean isWebXMLfilterDef
        end local 7 // org.apache.tomcat.util.descriptor.web.FilterMap filterMap
        end local 6 // org.apache.tomcat.util.descriptor.web.FilterDef filterDef
        end local 5 // java.util.List evps
        end local 4 // java.lang.String filterName
        end local 3 // org.apache.tomcat.util.descriptor.web.WebXml fragment
        end local 2 // org.apache.tomcat.util.bcel.classfile.AnnotationEntry ae
        end local 1 // java.lang.String className
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  146     0               this  Lorg/apache/catalina/startup/ContextConfig;
            0  146     1          className  Ljava/lang/String;
            0  146     2                 ae  Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            0  146     3           fragment  Lorg/apache/tomcat/util/descriptor/web/WebXml;
            1  146     4         filterName  Ljava/lang/String;
            2  146     5               evps  Ljava/util/List<Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;>;
            4    8     6                evp  Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;
            5    8     8               name  Ljava/lang/String;
           12  146     6          filterDef  Lorg/apache/tomcat/util/descriptor/web/FilterDef;
           13  146     7          filterMap  Lorg/apache/tomcat/util/descriptor/web/FilterMap;
           18   19     8  isWebXMLfilterDef  Z
           20  146     8  isWebXMLfilterDef  Z
           21  146     9     urlPatternsSet  Z
           22  146    10    servletNamesSet  Z
           23  146    11   dispatchTypesSet  Z
           24  146    12        urlPatterns  [Ljava/lang/String;
           26  113    13                evp  Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;
           27  113    15               name  Ljava/lang/String;
           38   39    16         urlPattern  Ljava/lang/String;
           46   54    16       servletNames  [Ljava/lang/String;
           51   52    17        servletName  Ljava/lang/String;
           59   67    16    dispatcherTypes  [Ljava/lang/String;
           64   65    17     dispatcherType  Ljava/lang/String;
           93  113    16         initParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           97  105    17   webXMLInitParams  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
          100  104    18              entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
          109  112    17              entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
          121  145    13               fmap  Ljava/util/Set<Lorg/apache/tomcat/util/descriptor/web/FilterMap;>;
          122  145    14            descMap  Lorg/apache/tomcat/util/descriptor/web/FilterMap;
          124  127    15                map  Lorg/apache/tomcat/util/descriptor/web/FilterMap;
          130  145    15       urlsPatterns  [Ljava/lang/String;
          134  135    16         urlPattern  Ljava/lang/String;
          138  145    16    dispatcherNames  [Ljava/lang/String;
          142  143    17                dis  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  
      ae         
      fragment   

  protected java.lang.String[] processAnnotationsStringArray(org.apache.tomcat.util.bcel.classfile.ElementValue);
    descriptor: (Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)[Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.bcel.classfile.ElementValue ev
         0: .line 2851
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* values */
        start local 2 // java.util.List values
         1: .line 2852
            aload 1 /* ev */
            instanceof org.apache.tomcat.util.bcel.classfile.ArrayElementValue
            ifeq 10
         2: .line 2854
            aload 1 /* ev */
            checkcast org.apache.tomcat.util.bcel.classfile.ArrayElementValue
            invokevirtual org.apache.tomcat.util.bcel.classfile.ArrayElementValue.getElementValuesArray:()[Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
         3: .line 2853
            astore 3 /* arrayValues */
        start local 3 // org.apache.tomcat.util.bcel.classfile.ElementValue[] arrayValues
         4: .line 2855
            aload 3 /* arrayValues */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.List org.apache.tomcat.util.bcel.classfile.ElementValue[] top int int org.apache.tomcat.util.bcel.classfile.ElementValue[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* value */
        start local 4 // org.apache.tomcat.util.bcel.classfile.ElementValue value
         6: .line 2856
            aload 2 /* values */
            aload 4 /* value */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.tomcat.util.bcel.classfile.ElementValue value
         7: .line 2855
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 5
        end local 3 // org.apache.tomcat.util.bcel.classfile.ElementValue[] arrayValues
         9: .line 2858
            goto 11
        10: .line 2859
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.List
      StackMap stack:
            aload 2 /* values */
            aload 1 /* ev */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 2861
      StackMap locals:
      StackMap stack:
            aload 2 /* values */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 3 /* result */
        start local 3 // java.lang.String[] result
        12: .line 2862
            aload 2 /* values */
            aload 3 /* result */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 3 // java.lang.String[] result
        end local 2 // java.util.List values
        end local 1 // org.apache.tomcat.util.bcel.classfile.ElementValue ev
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/apache/catalina/startup/ContextConfig;
            0   13     1           ev  Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            1   13     2       values  Ljava/util/List<Ljava/lang/String;>;
            4    9     3  arrayValues  [Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            6    7     4        value  Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
           12   13     3       result  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      ev    

  protected java.util.Map<java.lang.String, java.lang.String> processAnnotationWebInitParams(org.apache.tomcat.util.bcel.classfile.ElementValue);
    descriptor: (Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=13, args_size=2
        start local 0 // org.apache.catalina.startup.ContextConfig this
        start local 1 // org.apache.tomcat.util.bcel.classfile.ElementValue ev
         0: .line 2867
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.Map result
         1: .line 2868
            aload 1 /* ev */
            instanceof org.apache.tomcat.util.bcel.classfile.ArrayElementValue
            ifeq 23
         2: .line 2870
            aload 1 /* ev */
            checkcast org.apache.tomcat.util.bcel.classfile.ArrayElementValue
            invokevirtual org.apache.tomcat.util.bcel.classfile.ArrayElementValue.getElementValuesArray:()[Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
         3: .line 2869
            astore 3 /* arrayValues */
        start local 3 // org.apache.tomcat.util.bcel.classfile.ElementValue[] arrayValues
         4: .line 2871
            aload 3 /* arrayValues */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 22
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.Map org.apache.tomcat.util.bcel.classfile.ElementValue[] top int int org.apache.tomcat.util.bcel.classfile.ElementValue[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* value */
        start local 4 // org.apache.tomcat.util.bcel.classfile.ElementValue value
         6: .line 2872
            aload 4 /* value */
            instanceof org.apache.tomcat.util.bcel.classfile.AnnotationElementValue
            ifeq 21
         7: .line 2873
            aload 4 /* value */
            checkcast org.apache.tomcat.util.bcel.classfile.AnnotationElementValue
         8: .line 2874
            invokevirtual org.apache.tomcat.util.bcel.classfile.AnnotationElementValue.getAnnotationEntry:()Lorg/apache/tomcat/util/bcel/classfile/AnnotationEntry;
            invokevirtual org.apache.tomcat.util.bcel.classfile.AnnotationEntry.getElementValuePairs:()Ljava/util/List;
         9: .line 2873
            astore 8 /* evps */
        start local 8 // java.util.List evps
        10: .line 2875
            aconst_null
            astore 9 /* initParamName */
        start local 9 // java.lang.String initParamName
        11: .line 2876
            aconst_null
            astore 10 /* initParamValue */
        start local 10 // java.lang.String initParamValue
        12: .line 2877
            aload 8 /* evps */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 19
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.Map org.apache.tomcat.util.bcel.classfile.ElementValue[] org.apache.tomcat.util.bcel.classfile.ElementValue int int org.apache.tomcat.util.bcel.classfile.ElementValue[] java.util.List java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        13: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.bcel.classfile.ElementValuePair
            astore 11 /* evp */
        start local 11 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
        14: .line 2878
            ldc "name"
            aload 11 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getNameString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 2879
            aload 11 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            astore 9 /* initParamName */
        16: .line 2880
            goto 19
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.Map org.apache.tomcat.util.bcel.classfile.ElementValue[] org.apache.tomcat.util.bcel.classfile.ElementValue int int org.apache.tomcat.util.bcel.classfile.ElementValue[] java.util.List java.lang.String java.lang.String org.apache.tomcat.util.bcel.classfile.ElementValuePair java.util.Iterator
      StackMap stack:
        17: ldc "value"
            aload 11 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getNameString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 2881
            aload 11 /* evp */
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValuePair.getValue:()Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            invokevirtual org.apache.tomcat.util.bcel.classfile.ElementValue.stringifyValue:()Ljava/lang/String;
            astore 10 /* initParamValue */
        end local 11 // org.apache.tomcat.util.bcel.classfile.ElementValuePair evp
        19: .line 2877
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.Map org.apache.tomcat.util.bcel.classfile.ElementValue[] org.apache.tomcat.util.bcel.classfile.ElementValue int int org.apache.tomcat.util.bcel.classfile.ElementValue[] java.util.List java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        20: .line 2886
            aload 2 /* result */
            aload 9 /* initParamName */
            aload 10 /* initParamValue */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // java.lang.String initParamValue
        end local 9 // java.lang.String initParamName
        end local 8 // java.util.List evps
        end local 4 // org.apache.tomcat.util.bcel.classfile.ElementValue value
        21: .line 2871
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.Map org.apache.tomcat.util.bcel.classfile.ElementValue[] top int int org.apache.tomcat.util.bcel.classfile.ElementValue[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        22: iload 5
            iload 6
            if_icmplt 5
        end local 3 // org.apache.tomcat.util.bcel.classfile.ElementValue[] arrayValues
        23: .line 2890
      StackMap locals: org.apache.catalina.startup.ContextConfig org.apache.tomcat.util.bcel.classfile.ElementValue java.util.Map
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.util.Map result
        end local 1 // org.apache.tomcat.util.bcel.classfile.ElementValue ev
        end local 0 // org.apache.catalina.startup.ContextConfig this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lorg/apache/catalina/startup/ContextConfig;
            0   24     1              ev  Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            1   24     2          result  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4   23     3     arrayValues  [Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
            6   21     4           value  Lorg/apache/tomcat/util/bcel/classfile/ElementValue;
           10   21     8            evps  Ljava/util/List<Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;>;
           11   21     9   initParamName  Ljava/lang/String;
           12   21    10  initParamValue  Ljava/lang/String;
           14   19    11             evp  Lorg/apache/tomcat/util/bcel/classfile/ElementValuePair;
    Signature: (Lorg/apache/tomcat/util/bcel/classfile/ElementValue;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      ev    
}
SourceFile: "ContextConfig.java"
NestMembers:
  org.apache.catalina.startup.ContextConfig$AnnotationScanTask  org.apache.catalina.startup.ContextConfig$ContextXml  org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry  org.apache.catalina.startup.ContextConfig$HostWebXmlCacheCleaner  org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final ResourceSetType = org.apache.catalina.WebResourceRoot$ResourceSetType of org.apache.catalina.WebResourceRoot
  private AnnotationScanTask = org.apache.catalina.startup.ContextConfig$AnnotationScanTask of org.apache.catalina.startup.ContextConfig
  public abstract ContextXml = org.apache.catalina.startup.ContextConfig$ContextXml of org.apache.catalina.startup.ContextConfig
  private DefaultWebXmlCacheEntry = org.apache.catalina.startup.ContextConfig$DefaultWebXmlCacheEntry of org.apache.catalina.startup.ContextConfig
  private HostWebXmlCacheCleaner = org.apache.catalina.startup.ContextConfig$HostWebXmlCacheCleaner of org.apache.catalina.startup.ContextConfig
  JavaClassCacheEntry = org.apache.catalina.startup.ContextConfig$JavaClassCacheEntry of org.apache.catalina.startup.ContextConfig
  public Resource = org.apache.tomcat.util.file.ConfigurationSource$Resource of org.apache.tomcat.util.file.ConfigurationSource