public abstract class org.apache.catalina.core.ContainerBase extends org.apache.catalina.util.LifecycleMBeanBase implements org.apache.catalina.Container
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.catalina.core.ContainerBase
  super_class: org.apache.catalina.util.LifecycleMBeanBase
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected final java.util.HashMap<java.lang.String, org.apache.catalina.Container> children;
    descriptor: Ljava/util/HashMap;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/apache/catalina/Container;>;

  protected int backgroundProcessorDelay;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected java.util.concurrent.ScheduledFuture<?> backgroundProcessorFuture;
    descriptor: Ljava/util/concurrent/ScheduledFuture;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/concurrent/ScheduledFuture<*>;

  protected java.util.concurrent.ScheduledFuture<?> monitorFuture;
    descriptor: Ljava/util/concurrent/ScheduledFuture;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/concurrent/ScheduledFuture<*>;

  protected final java.util.List<org.apache.catalina.ContainerListener> listeners;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/catalina/ContainerListener;>;

  protected org.apache.juli.logging.Log logger;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x0004) ACC_PROTECTED

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

  protected org.apache.catalina.Cluster cluster;
    descriptor: Lorg/apache/catalina/Cluster;
    flags: (0x0004) ACC_PROTECTED

  private final java.util.concurrent.locks.ReadWriteLock clusterLock;
    descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  protected org.apache.catalina.Container parent;
    descriptor: Lorg/apache/catalina/Container;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.ClassLoader parentClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0004) ACC_PROTECTED

  protected final org.apache.catalina.Pipeline pipeline;
    descriptor: Lorg/apache/catalina/Pipeline;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private volatile org.apache.catalina.Realm realm;
    descriptor: Lorg/apache/catalina/Realm;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.concurrent.locks.ReadWriteLock realmLock;
    descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
    flags: (0x0012) ACC_PRIVATE, 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 boolean startChildren;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected final java.beans.PropertyChangeSupport support;
    descriptor: Ljava/beans/PropertyChangeSupport;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

  private volatile boolean accessLogScanComplete;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private int startStopThreads;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  protected java.util.concurrent.ExecutorService startStopExecutor;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 132
            ldc Lorg/apache/catalina/core/ContainerBase;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
         1: .line 245
            ldc "org.apache.catalina.core"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         2: .line 244
            putstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
         3: .line 245
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 129
            aload 0 /* this */
            invokespecial org.apache.catalina.util.LifecycleMBeanBase.<init>:()V
         1: .line 163
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
         2: .line 169
            aload 0 /* this */
            iconst_m1
            putfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
         3: .line 184
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.catalina.core.ContainerBase.listeners:Ljava/util/List;
         4: .line 189
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.logger:Lorg/apache/juli/logging/Log;
         5: .line 195
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.logName:Ljava/lang/String;
         6: .line 201
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.cluster:Lorg/apache/catalina/Cluster;
         7: .line 202
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantReadWriteLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
            putfield org.apache.catalina.core.ContainerBase.clusterLock:Ljava/util/concurrent/locks/ReadWriteLock;
         8: .line 208
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.name:Ljava/lang/String;
         9: .line 214
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
        10: .line 220
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.parentClassLoader:Ljava/lang/ClassLoader;
        11: .line 226
            aload 0 /* this */
            new org.apache.catalina.core.StandardPipeline
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.core.StandardPipeline.<init>:(Lorg/apache/catalina/Container;)V
            putfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
        12: .line 232
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
        13: .line 238
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantReadWriteLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
            putfield org.apache.catalina.core.ContainerBase.realmLock:Ljava/util/concurrent/locks/ReadWriteLock;
        14: .line 251
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.ContainerBase.startChildren:Z
        15: .line 256
            aload 0 /* this */
        16: .line 257
            new java.beans.PropertyChangeSupport
            dup
            aload 0 /* this */
            invokespecial java.beans.PropertyChangeSupport.<init>:(Ljava/lang/Object;)V
            putfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
        17: .line 264
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.accessLog:Lorg/apache/catalina/AccessLog;
        18: .line 265
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.core.ContainerBase.accessLogScanComplete:Z
        19: .line 272
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.ContainerBase.startStopThreads:I
        20: .line 129
            return
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lorg/apache/catalina/core/ContainerBase;

  public int getStartStopThreads();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 280
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopThreads:I
            ireturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void setStartStopThreads(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // int startStopThreads
         0: .line 285
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopThreads:I
            istore 2 /* oldStartStopThreads */
        start local 2 // int oldStartStopThreads
         1: .line 286
            aload 0 /* this */
            iload 1 /* startStopThreads */
            putfield org.apache.catalina.core.ContainerBase.startStopThreads:I
         2: .line 289
            iload 2 /* oldStartStopThreads */
            iload 1 /* startStopThreads */
            if_icmpeq 4
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
            ifnull 4
         3: .line 290
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getStartStopThreads:()I
            invokevirtual org.apache.catalina.core.ContainerBase.reconfigureStartStopExecutor:(I)V
         4: .line 292
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int oldStartStopThreads
        end local 1 // int startStopThreads
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    5     0                 this  Lorg/apache/catalina/core/ContainerBase;
            0    5     1     startStopThreads  I
            1    5     2  oldStartStopThreads  I
    MethodParameters:
                  Name  Flags
      startStopThreads  

  public int getBackgroundProcessorDelay();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 306
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
            ireturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void setBackgroundProcessorDelay(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // int delay
         0: .line 319
            aload 0 /* this */
            iload 1 /* delay */
            putfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
         1: .line 320
            return
        end local 1 // int delay
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/catalina/core/ContainerBase;
            0    2     1  delay  I
    MethodParameters:
       Name  Flags
      delay  

  public org.apache.juli.logging.Log getLogger();
    descriptor: ()Lorg/apache/juli/logging/Log;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 328
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.logger:Lorg/apache/juli/logging/Log;
            ifnull 2
         1: .line 329
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.logger:Lorg/apache/juli/logging/Log;
            areturn
         2: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getLogName:()Ljava/lang/String;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/String;)Lorg/apache/juli/logging/Log;
            putfield org.apache.catalina.core.ContainerBase.logger:Lorg/apache/juli/logging/Log;
         3: .line 331
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.logger:Lorg/apache/juli/logging/Log;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/core/ContainerBase;

  public java.lang.String getLogName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 341
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.logName:Ljava/lang/String;
            ifnull 2
         1: .line 342
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.logName:Ljava/lang/String;
            areturn
         2: .line 344
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* loggerName */
        start local 1 // java.lang.String loggerName
         3: .line 345
            aload 0 /* this */
            astore 2 /* current */
        start local 2 // org.apache.catalina.Container current
         4: .line 346
            goto 17
         5: .line 347
      StackMap locals: java.lang.String org.apache.catalina.Container
      StackMap stack:
            aload 2 /* current */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            astore 3 /* name */
        start local 3 // java.lang.String name
         6: .line 348
            aload 3 /* name */
            ifnull 7
            aload 3 /* name */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 349
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "/"
            astore 3 /* name */
         8: .line 350
            goto 11
      StackMap locals:
      StackMap stack:
         9: aload 3 /* name */
            ldc "##"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 351
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* name */
        11: .line 353
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 354
            aload 1 /* loggerName */
            ifnull 13
            new java.lang.StringBuilder
            dup
            ldc "."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* loggerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 14
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        13: ldc ""
      StackMap locals: org.apache.catalina.core.ContainerBase java.lang.String org.apache.catalina.Container java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 353
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* loggerName */
        16: .line 355
            aload 2 /* current */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            astore 2 /* current */
        end local 3 // java.lang.String name
        17: .line 346
      StackMap locals:
      StackMap stack:
            aload 2 /* current */
            ifnonnull 5
        18: .line 357
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc Lorg/apache/catalina/core/ContainerBase;
            invokevirtual java.lang.Class.getName:()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 1 /* loggerName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.catalina.core.ContainerBase.logName:Ljava/lang/String;
        19: .line 358
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.logName:Ljava/lang/String;
            areturn
        end local 2 // org.apache.catalina.Container current
        end local 1 // java.lang.String loggerName
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lorg/apache/catalina/core/ContainerBase;
            3   20     1  loggerName  Ljava/lang/String;
            4   20     2     current  Lorg/apache/catalina/Container;
            6   17     3        name  Ljava/lang/String;

  public org.apache.catalina.Cluster getCluster();
    descriptor: ()Lorg/apache/catalina/Cluster;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 370
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.clusterLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            astore 1 /* readLock */
        start local 1 // java.util.concurrent.locks.Lock readLock
         1: .line 371
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 373
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.cluster:Lorg/apache/catalina/Cluster;
            ifnull 6
         3: .line 374
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.cluster:Lorg/apache/catalina/Cluster;
            astore 3
         4: .line 381
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         5: .line 374
            aload 3
            areturn
         6: .line 376
      StackMap locals: java.util.concurrent.locks.Lock
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            ifnull 10
         7: .line 377
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getCluster:()Lorg/apache/catalina/Cluster;
            astore 3
         8: .line 381
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         9: .line 377
            aload 3
            areturn
        10: .line 381
      StackMap locals:
      StackMap stack:
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 379
            aconst_null
            areturn
        12: .line 380
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        13: .line 381
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        14: .line 382
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.Lock readLock
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lorg/apache/catalina/core/ContainerBase;
            1   15     1  readLock  Ljava/util/concurrent/locks/Lock;
      Exception table:
        from    to  target  type
           2     4      12  any
           6     8      12  any

  protected org.apache.catalina.Cluster getClusterInternal();
    descriptor: ()Lorg/apache/catalina/Cluster;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 390
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.clusterLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            astore 1 /* readLock */
        start local 1 // java.util.concurrent.locks.Lock readLock
         1: .line 391
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 393
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.cluster:Lorg/apache/catalina/Cluster;
            astore 3
         3: .line 395
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         4: .line 393
            aload 3
            areturn
         5: .line 394
      StackMap locals: org.apache.catalina.core.ContainerBase java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 2
         6: .line 395
            aload 1 /* readLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         7: .line 396
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.Lock readLock
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/apache/catalina/core/ContainerBase;
            1    8     1  readLock  Ljava/util/concurrent/locks/Lock;
      Exception table:
        from    to  target  type
           2     3       5  any

  public void setCluster(org.apache.catalina.Cluster);
    descriptor: (Lorg/apache/catalina/Cluster;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Cluster cluster
         0: .line 408
            aconst_null
            astore 2 /* oldCluster */
        start local 2 // org.apache.catalina.Cluster oldCluster
         1: .line 409
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.clusterLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            astore 3 /* writeLock */
        start local 3 // java.util.concurrent.locks.Lock writeLock
         2: .line 410
            aload 3 /* writeLock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         3: .line 413
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.cluster:Lorg/apache/catalina/Cluster;
            astore 2 /* oldCluster */
         4: .line 414
            aload 2 /* oldCluster */
            aload 1 /* cluster */
            if_acmpne 7
         5: .line 441
            aload 3 /* writeLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 415
            return
         7: .line 416
      StackMap locals: org.apache.catalina.Cluster java.util.concurrent.locks.Lock
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cluster */
            putfield org.apache.catalina.core.ContainerBase.cluster:Lorg/apache/catalina/Cluster;
         8: .line 419
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 14
            aload 2 /* oldCluster */
            ifnull 14
         9: .line 420
            aload 2 /* oldCluster */
            instanceof org.apache.catalina.Lifecycle
            ifeq 14
        10: .line 422
            aload 2 /* oldCluster */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.stop:()V
        11: .line 423
            goto 14
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        12: astore 4 /* e */
        start local 4 // org.apache.catalina.LifecycleException e
        13: .line 424
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.cluster.stop"
            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 // org.apache.catalina.LifecycleException e
        14: .line 429
      StackMap locals:
      StackMap stack:
            aload 1 /* cluster */
            ifnull 16
        15: .line 430
            aload 1 /* cluster */
            aload 0 /* this */
            invokeinterface org.apache.catalina.Cluster.setContainer:(Lorg/apache/catalina/Container;)V
        16: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 26
            aload 1 /* cluster */
            ifnull 26
        17: .line 433
            aload 1 /* cluster */
            instanceof org.apache.catalina.Lifecycle
            ifeq 26
        18: .line 435
            aload 1 /* cluster */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.start:()V
        19: .line 436
            goto 26
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        20: astore 4 /* e */
        start local 4 // org.apache.catalina.LifecycleException e
        21: .line 437
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.cluster.start"
            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 // org.apache.catalina.LifecycleException e
        22: .line 440
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 5
        24: .line 441
            aload 3 /* writeLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        25: .line 442
            aload 5
            athrow
        26: .line 441
      StackMap locals:
      StackMap stack:
            aload 3 /* writeLock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        27: .line 445
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            ldc "cluster"
            aload 2 /* oldCluster */
            aload 1 /* cluster */
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        28: .line 446
            return
        end local 3 // java.util.concurrent.locks.Lock writeLock
        end local 2 // org.apache.catalina.Cluster oldCluster
        end local 1 // org.apache.catalina.Cluster cluster
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   29     0        this  Lorg/apache/catalina/core/ContainerBase;
            0   29     1     cluster  Lorg/apache/catalina/Cluster;
            1   29     2  oldCluster  Lorg/apache/catalina/Cluster;
            2   29     3   writeLock  Ljava/util/concurrent/locks/Lock;
           13   14     4           e  Lorg/apache/catalina/LifecycleException;
           21   22     4           e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
          10    11      12  Class org.apache.catalina.LifecycleException
          18    19      20  Class org.apache.catalina.LifecycleException
           3     5      23  any
           7    23      23  any
    MethodParameters:
         Name  Flags
      cluster  

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 456
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void setName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // java.lang.String name
         0: .line 473
            aload 1 /* name */
            ifnonnull 2
         1: .line 474
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.nullName"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.name:Ljava/lang/String;
            astore 2 /* oldName */
        start local 2 // java.lang.String oldName
         3: .line 477
            aload 0 /* this */
            aload 1 /* name */
            putfield org.apache.catalina.core.ContainerBase.name:Ljava/lang/String;
         4: .line 478
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            ldc "name"
            aload 2 /* oldName */
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.name:Ljava/lang/String;
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 479
            return
        end local 2 // java.lang.String oldName
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/catalina/core/ContainerBase;
            0    6     1     name  Ljava/lang/String;
            3    6     2  oldName  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public boolean getStartChildren();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 489
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startChildren:Z
            ireturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void setStartChildren(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // boolean startChildren
         0: .line 501
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startChildren:Z
            istore 2 /* oldStartChildren */
        start local 2 // boolean oldStartChildren
         1: .line 502
            aload 0 /* this */
            iload 1 /* startChildren */
            putfield org.apache.catalina.core.ContainerBase.startChildren:Z
         2: .line 503
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            ldc "startChildren"
            iload 2 /* oldStartChildren */
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startChildren:Z
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;ZZ)V
         3: .line 504
            return
        end local 2 // boolean oldStartChildren
        end local 1 // boolean startChildren
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lorg/apache/catalina/core/ContainerBase;
            0    4     1     startChildren  Z
            1    4     2  oldStartChildren  Z
    MethodParameters:
               Name  Flags
      startChildren  

  public org.apache.catalina.Container getParent();
    descriptor: ()Lorg/apache/catalina/Container;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 513
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void setParent(org.apache.catalina.Container);
    descriptor: (Lorg/apache/catalina/Container;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Container container
         0: .line 531
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            astore 2 /* oldParent */
        start local 2 // org.apache.catalina.Container oldParent
         1: .line 532
            aload 0 /* this */
            aload 1 /* container */
            putfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
         2: .line 533
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            ldc "parent"
            aload 2 /* oldParent */
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 535
            return
        end local 2 // org.apache.catalina.Container oldParent
        end local 1 // org.apache.catalina.Container container
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/apache/catalina/core/ContainerBase;
            0    4     1  container  Lorg/apache/catalina/Container;
            1    4     2  oldParent  Lorg/apache/catalina/Container;
    MethodParameters:
           Name  Flags
      container  

  public java.lang.ClassLoader getParentClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 545
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parentClassLoader:Ljava/lang/ClassLoader;
            ifnull 2
         1: .line 546
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parentClassLoader:Ljava/lang/ClassLoader;
            areturn
         2: .line 547
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            ifnull 4
         3: .line 548
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getParentClassLoader:()Ljava/lang/ClassLoader;
            areturn
         4: .line 550
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void setParentClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // java.lang.ClassLoader parent
         0: .line 565
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parentClassLoader:Ljava/lang/ClassLoader;
            astore 2 /* oldParentClassLoader */
        start local 2 // java.lang.ClassLoader oldParentClassLoader
         1: .line 566
            aload 0 /* this */
            aload 1 /* parent */
            putfield org.apache.catalina.core.ContainerBase.parentClassLoader:Ljava/lang/ClassLoader;
         2: .line 567
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            ldc "parentClassLoader"
            aload 2 /* oldParentClassLoader */
         3: .line 568
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parentClassLoader:Ljava/lang/ClassLoader;
         4: .line 567
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 570
            return
        end local 2 // java.lang.ClassLoader oldParentClassLoader
        end local 1 // java.lang.ClassLoader parent
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0                  this  Lorg/apache/catalina/core/ContainerBase;
            0    6     1                parent  Ljava/lang/ClassLoader;
            1    6     2  oldParentClassLoader  Ljava/lang/ClassLoader;
    MethodParameters:
        Name  Flags
      parent  

  public org.apache.catalina.Pipeline getPipeline();
    descriptor: ()Lorg/apache/catalina/Pipeline;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 579
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/core/ContainerBase;

  public org.apache.catalina.Realm getRealm();
    descriptor: ()Lorg/apache/catalina/Realm;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 591
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realmLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            astore 1 /* l */
        start local 1 // java.util.concurrent.locks.Lock l
         1: .line 592
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 594
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
            ifnull 6
         3: .line 595
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
            astore 3
         4: .line 600
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         5: .line 595
            aload 3
            areturn
         6: .line 596
      StackMap locals: java.util.concurrent.locks.Lock
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            ifnull 10
         7: .line 597
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getRealm:()Lorg/apache/catalina/Realm;
            astore 3
         8: .line 600
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         9: .line 597
            aload 3
            areturn
        10: .line 600
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 598
            aconst_null
            areturn
        12: .line 599
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        13: .line 600
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        14: .line 601
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.Lock l
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/apache/catalina/core/ContainerBase;
            1   15     1     l  Ljava/util/concurrent/locks/Lock;
      Exception table:
        from    to  target  type
           2     4      12  any
           6     8      12  any

  protected org.apache.catalina.Realm getRealmInternal();
    descriptor: ()Lorg/apache/catalina/Realm;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 606
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realmLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            astore 1 /* l */
        start local 1 // java.util.concurrent.locks.Lock l
         1: .line 607
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 609
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
            astore 3
         3: .line 611
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         4: .line 609
            aload 3
            areturn
         5: .line 610
      StackMap locals: org.apache.catalina.core.ContainerBase java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 2
         6: .line 611
            aload 1 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         7: .line 612
            aload 2
            athrow
        end local 1 // java.util.concurrent.locks.Lock l
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/catalina/core/ContainerBase;
            1    8     1     l  Ljava/util/concurrent/locks/Lock;
      Exception table:
        from    to  target  type
           2     3       5  any

  public void setRealm(org.apache.catalina.Realm);
    descriptor: (Lorg/apache/catalina/Realm;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Realm realm
         0: .line 623
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realmLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
            astore 2 /* l */
        start local 2 // java.util.concurrent.locks.Lock l
         1: .line 624
            aload 2 /* l */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 627
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
            astore 3 /* oldRealm */
        start local 3 // org.apache.catalina.Realm oldRealm
         3: .line 628
            aload 3 /* oldRealm */
            aload 1 /* realm */
            if_acmpne 6
         4: .line 657
            aload 2 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         5: .line 629
            return
         6: .line 630
      StackMap locals: java.util.concurrent.locks.Lock org.apache.catalina.Realm
      StackMap stack:
            aload 0 /* this */
            aload 1 /* realm */
            putfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
         7: .line 633
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 13
            aload 3 /* oldRealm */
            ifnull 13
         8: .line 634
            aload 3 /* oldRealm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 13
         9: .line 636
            aload 3 /* oldRealm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.stop:()V
        10: .line 637
            goto 13
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        11: astore 4 /* e */
        start local 4 // org.apache.catalina.LifecycleException e
        12: .line 638
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.realm.stop"
            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 // org.apache.catalina.LifecycleException e
        13: .line 643
      StackMap locals:
      StackMap stack:
            aload 1 /* realm */
            ifnull 15
        14: .line 644
            aload 1 /* realm */
            aload 0 /* this */
            invokeinterface org.apache.catalina.Realm.setContainer:(Lorg/apache/catalina/Container;)V
        15: .line 645
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 21
            aload 1 /* realm */
            ifnull 21
        16: .line 646
            aload 1 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 21
        17: .line 648
            aload 1 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.start:()V
        18: .line 649
            goto 21
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        19: astore 4 /* e */
        start local 4 // org.apache.catalina.LifecycleException e
        20: .line 650
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.realm.start"
            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 // org.apache.catalina.LifecycleException e
        21: .line 655
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            ldc "realm"
            aload 3 /* oldRealm */
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.realm:Lorg/apache/catalina/Realm;
            invokevirtual java.beans.PropertyChangeSupport.firePropertyChange:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // org.apache.catalina.Realm oldRealm
        22: .line 656
            goto 26
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Realm java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
        23: astore 5
        24: .line 657
            aload 2 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        25: .line 658
            aload 5
            athrow
        26: .line 657
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        27: .line 660
            return
        end local 2 // java.util.concurrent.locks.Lock l
        end local 1 // org.apache.catalina.Realm realm
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lorg/apache/catalina/core/ContainerBase;
            0   28     1     realm  Lorg/apache/catalina/Realm;
            1   28     2         l  Ljava/util/concurrent/locks/Lock;
            3   22     3  oldRealm  Lorg/apache/catalina/Realm;
           12   13     4         e  Lorg/apache/catalina/LifecycleException;
           20   21     4         e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           9    10      11  Class org.apache.catalina.LifecycleException
          17    18      19  Class org.apache.catalina.LifecycleException
           2     4      23  any
           6    23      23  any
    MethodParameters:
       Name  Flags
      realm  

  public void addChild(org.apache.catalina.Container);
    descriptor: (Lorg/apache/catalina/Container;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Container child
         0: .line 685
            getstatic org.apache.catalina.Globals.IS_SECURITY_ENABLED:Z
            ifeq 5
         1: .line 687
            new org.apache.catalina.core.ContainerBase$PrivilegedAddChild
            dup
            aload 0 /* this */
            aload 1 /* child */
            invokespecial org.apache.catalina.core.ContainerBase$PrivilegedAddChild.<init>:(Lorg/apache/catalina/core/ContainerBase;Lorg/apache/catalina/Container;)V
         2: .line 686
            astore 2 /* dp */
        start local 2 // java.security.PrivilegedAction dp
         3: .line 688
            aload 2 /* dp */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
        end local 2 // java.security.PrivilegedAction dp
         4: .line 689
            goto 6
         5: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* child */
            invokevirtual org.apache.catalina.core.ContainerBase.addChildInternal:(Lorg/apache/catalina/Container;)V
         6: .line 692
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.catalina.Container child
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/catalina/core/ContainerBase;
            0    7     1  child  Lorg/apache/catalina/Container;
            3    4     2     dp  Ljava/security/PrivilegedAction<Ljava/lang/Void;>;
    MethodParameters:
       Name  Flags
      child  

  private void addChildInternal(org.apache.catalina.Container);
    descriptor: (Lorg/apache/catalina/Container;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Container child
         0: .line 696
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 2
         1: .line 697
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Add child "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* child */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            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
         2: .line 700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         3: .line 701
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 7
         4: .line 702
            new java.lang.IllegalArgumentException
            dup
         5: .line 703
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.child.notUnique"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         6: .line 702
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 704
      StackMap locals: java.util.HashMap
      StackMap stack:
            aload 1 /* child */
            aload 0 /* this */
            invokeinterface org.apache.catalina.Container.setParent:(Lorg/apache/catalina/Container;)V
         8: .line 705
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            aload 1 /* child */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 700
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "addChild"
            aload 1 /* child */
            invokevirtual org.apache.catalina.core.ContainerBase.fireContainerEvent:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 714
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifne 16
        15: .line 715
            getstatic org.apache.catalina.LifecycleState.STARTING_PREP:Lorg/apache/catalina/LifecycleState;
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.equals:(Ljava/lang/Object;)Z
            ifeq 21
        16: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startChildren:Z
            ifeq 21
        17: .line 717
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.start:()V
        18: .line 719
            goto 21
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        19: astore 2 /* e */
        start local 2 // org.apache.catalina.LifecycleException e
        20: .line 720
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.child.start"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // org.apache.catalina.LifecycleException e
        21: .line 722
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.catalina.Container child
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lorg/apache/catalina/core/ContainerBase;
            0   22     1  child  Lorg/apache/catalina/Container;
           20   21     2      e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           3    10      11  any
          11    12      11  any
          14    18      19  Class org.apache.catalina.LifecycleException
    MethodParameters:
       Name  Flags
      child  

  public void addContainerListener(org.apache.catalina.ContainerListener);
    descriptor: (Lorg/apache/catalina/ContainerListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.ContainerListener listener
         0: .line 732
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.listeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 733
            return
        end local 1 // org.apache.catalina.ContainerListener listener
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/core/ContainerBase;
            0    2     1  listener  Lorg/apache/catalina/ContainerListener;
    MethodParameters:
          Name  Flags
      listener  

  public void addPropertyChangeListener(java.beans.PropertyChangeListener);
    descriptor: (Ljava/beans/PropertyChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // java.beans.PropertyChangeListener listener
         0: .line 743
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            aload 1 /* listener */
            invokevirtual java.beans.PropertyChangeSupport.addPropertyChangeListener:(Ljava/beans/PropertyChangeListener;)V
         1: .line 744
            return
        end local 1 // java.beans.PropertyChangeListener listener
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/core/ContainerBase;
            0    2     1  listener  Ljava/beans/PropertyChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  public org.apache.catalina.Container findChild(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/catalina/Container;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // java.lang.String name
         0: .line 755
            aload 1 /* name */
            ifnonnull 2
         1: .line 756
            aconst_null
            areturn
         2: .line 758
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         3: .line 759
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            aload 1 /* name */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.Container
            aload 2
            monitorexit
         4: areturn
         5: .line 758
      StackMap locals: org.apache.catalina.core.ContainerBase java.lang.String java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // java.lang.String name
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/catalina/core/ContainerBase;
            0    7     1  name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     4       5  any
           5     6       5  any
    MethodParameters:
      Name  Flags
      name  

  public org.apache.catalina.Container[] findChildren();
    descriptor: ()[Lorg/apache/catalina/Container;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 770
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            dup
            astore 1
            monitorenter
         1: .line 771
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            anewarray org.apache.catalina.Container
            astore 2 /* results */
        start local 2 // org.apache.catalina.Container[] results
         2: .line 772
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            aload 2 /* results */
            invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.catalina.Container[]
            aload 1
            monitorexit
         3: areturn
        end local 2 // org.apache.catalina.Container[] results
         4: .line 770
      StackMap locals: org.apache.catalina.core.ContainerBase java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         5: athrow
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/catalina/core/ContainerBase;
            2    4     2  results  [Lorg/apache/catalina/Container;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public org.apache.catalina.ContainerListener[] findContainerListeners();
    descriptor: ()[Lorg/apache/catalina/ContainerListener;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 785
            iconst_0
            anewarray org.apache.catalina.ContainerListener
         1: .line 784
            astore 1 /* results */
        start local 1 // org.apache.catalina.ContainerListener[] results
         2: .line 786
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.listeners:Ljava/util/List;
            aload 1 /* results */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.apache.catalina.ContainerListener[]
            areturn
        end local 1 // org.apache.catalina.ContainerListener[] results
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/apache/catalina/core/ContainerBase;
            2    3     1  results  [Lorg/apache/catalina/ContainerListener;

  public void removeChild(org.apache.catalina.Container);
    descriptor: (Lorg/apache/catalina/Container;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Container child
         0: .line 799
            aload 1 /* child */
            ifnonnull 2
         1: .line 800
            return
         2: .line 804
      StackMap locals:
      StackMap stack:
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 7
         3: .line 805
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.stop:()V
         4: .line 807
            goto 7
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
         5: astore 2 /* e */
        start local 2 // org.apache.catalina.LifecycleException e
         6: .line 808
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.child.stop"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // org.apache.catalina.LifecycleException e
         7: .line 811
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* destroy */
        start local 2 // boolean destroy
         8: .line 816
            getstatic org.apache.catalina.LifecycleState.DESTROYING:Lorg/apache/catalina/LifecycleState;
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.equals:(Ljava/lang/Object;)Z
            ifne 14
         9: .line 817
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.destroy:()V
        10: .line 818
            iconst_1
            istore 2 /* destroy */
        11: .line 820
            goto 14
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Container int
      StackMap stack: org.apache.catalina.LifecycleException
        12: astore 3 /* e */
        start local 3 // org.apache.catalina.LifecycleException e
        13: .line 821
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.child.destroy"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // org.apache.catalina.LifecycleException e
        14: .line 824
      StackMap locals:
      StackMap stack:
            iload 2 /* destroy */
            ifne 16
        15: .line 825
            aload 0 /* this */
            ldc "removeChild"
            aload 1 /* child */
            invokevirtual org.apache.catalina.core.ContainerBase.fireContainerEvent:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            dup
            astore 3
            monitorenter
        17: .line 829
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 20
        18: .line 830
            aload 3
            monitorexit
        19: return
        20: .line 831
      StackMap locals: java.util.HashMap
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            aload 1 /* child */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 828
            aload 3
            monitorexit
        22: goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: aload 3
            monitorexit
        24: athrow
        25: .line 834
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean destroy
        end local 1 // org.apache.catalina.Container child
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lorg/apache/catalina/core/ContainerBase;
            0   26     1    child  Lorg/apache/catalina/Container;
            6    7     2        e  Lorg/apache/catalina/LifecycleException;
            8   26     2  destroy  Z
           13   14     3        e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           2     4       5  Class org.apache.catalina.LifecycleException
           8    11      12  Class org.apache.catalina.LifecycleException
          17    19      23  any
          20    22      23  any
          23    24      23  any
    MethodParameters:
       Name  Flags
      child  

  public void removeContainerListener(org.apache.catalina.ContainerListener);
    descriptor: (Lorg/apache/catalina/ContainerListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.ContainerListener listener
         0: .line 844
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.listeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 845
            return
        end local 1 // org.apache.catalina.ContainerListener listener
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/core/ContainerBase;
            0    2     1  listener  Lorg/apache/catalina/ContainerListener;
    MethodParameters:
          Name  Flags
      listener  

  public void removePropertyChangeListener(java.beans.PropertyChangeListener);
    descriptor: (Ljava/beans/PropertyChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // java.beans.PropertyChangeListener listener
         0: .line 856
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.support:Ljava/beans/PropertyChangeSupport;
            aload 1 /* listener */
            invokevirtual java.beans.PropertyChangeSupport.removePropertyChangeListener:(Ljava/beans/PropertyChangeListener;)V
         1: .line 858
            return
        end local 1 // java.beans.PropertyChangeListener listener
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/catalina/core/ContainerBase;
            0    2     1  listener  Ljava/beans/PropertyChangeListener;
    MethodParameters:
          Name  Flags
      listener  

  protected void initInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 863
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getStartStopThreads:()I
            invokevirtual org.apache.catalina.core.ContainerBase.reconfigureStartStopExecutor:(I)V
         1: .line 864
            aload 0 /* this */
            invokespecial org.apache.catalina.util.LifecycleMBeanBase.initInternal:()V
         2: .line 865
            return
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/core/ContainerBase;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  private void reconfigureStartStopExecutor(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // int threads
         0: .line 869
            iload 1 /* threads */
            iconst_1
            if_icmpne 4
         1: .line 871
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
            instanceof org.apache.tomcat.util.threads.InlineExecutorService
            ifne 7
         2: .line 872
            aload 0 /* this */
            new org.apache.tomcat.util.threads.InlineExecutorService
            dup
            invokespecial org.apache.tomcat.util.threads.InlineExecutorService.<init>:()V
            putfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
         3: .line 874
            goto 7
         4: .line 876
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.apache.catalina.Container.getService:(Lorg/apache/catalina/Container;)Lorg/apache/catalina/Service;
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
            astore 2 /* server */
        start local 2 // org.apache.catalina.Server server
         5: .line 877
            aload 2 /* server */
            iload 1 /* threads */
            invokeinterface org.apache.catalina.Server.setUtilityThreads:(I)V
         6: .line 878
            aload 0 /* this */
            aload 2 /* server */
            invokeinterface org.apache.catalina.Server.getUtilityExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
            putfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
        end local 2 // org.apache.catalina.Server server
         7: .line 880
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int threads
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/catalina/core/ContainerBase;
            0    8     1  threads  I
            5    7     2   server  Lorg/apache/catalina/Server;
    MethodParameters:
         Name  Flags
      threads  

  protected synchronized void startInternal();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=8, locals=9, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 894
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.logger:Lorg/apache/juli/logging/Log;
         1: .line 895
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getLogger:()Lorg/apache/juli/logging/Log;
            pop
         2: .line 896
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getClusterInternal:()Lorg/apache/catalina/Cluster;
            astore 1 /* cluster */
        start local 1 // org.apache.catalina.Cluster cluster
         3: .line 897
            aload 1 /* cluster */
            instanceof org.apache.catalina.Lifecycle
            ifeq 5
         4: .line 898
            aload 1 /* cluster */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.start:()V
         5: .line 900
      StackMap locals: org.apache.catalina.Cluster
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getRealmInternal:()Lorg/apache/catalina/Realm;
            astore 2 /* realm */
        start local 2 // org.apache.catalina.Realm realm
         6: .line 901
            aload 2 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 8
         7: .line 902
            aload 2 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.start:()V
         8: .line 906
      StackMap locals: org.apache.catalina.Realm
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.findChildren:()[Lorg/apache/catalina/Container;
            astore 3 /* children */
        start local 3 // org.apache.catalina.Container[] children
         9: .line 907
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* results */
        start local 4 // java.util.List results
        10: .line 908
            aload 3 /* children */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 14
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster org.apache.catalina.Realm org.apache.catalina.Container[] java.util.List top int int org.apache.catalina.Container[]
      StackMap stack:
        11: aload 8
            iload 6
            aaload
            astore 5 /* child */
        start local 5 // org.apache.catalina.Container child
        12: .line 909
            aload 4 /* results */
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
            new org.apache.catalina.core.ContainerBase$StartChild
            dup
            aload 5 /* child */
            invokespecial org.apache.catalina.core.ContainerBase$StartChild.<init>:(Lorg/apache/catalina/Container;)V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.apache.catalina.Container child
        13: .line 908
            iinc 6 1
      StackMap locals:
      StackMap stack:
        14: iload 6
            iload 7
            if_icmplt 11
        15: .line 912
            aconst_null
            astore 5 /* multiThrowable */
        start local 5 // org.apache.tomcat.util.MultiThrowable multiThrowable
        16: .line 914
            aload 4 /* results */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 25
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster org.apache.catalina.Realm org.apache.catalina.Container[] java.util.List org.apache.tomcat.util.MultiThrowable top java.util.Iterator
      StackMap stack:
        17: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 6 /* result */
        start local 6 // java.util.concurrent.Future result
        18: .line 916
            aload 6 /* result */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        19: .line 917
            goto 25
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster org.apache.catalina.Realm org.apache.catalina.Container[] java.util.List org.apache.tomcat.util.MultiThrowable java.util.concurrent.Future java.util.Iterator
      StackMap stack: java.lang.Throwable
        20: astore 8 /* e */
        start local 8 // java.lang.Throwable e
        21: .line 918
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.threadedStartFailed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 8 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        22: .line 919
            aload 5 /* multiThrowable */
            ifnonnull 24
        23: .line 920
            new org.apache.tomcat.util.MultiThrowable
            dup
            invokespecial org.apache.tomcat.util.MultiThrowable.<init>:()V
            astore 5 /* multiThrowable */
        24: .line 922
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5 /* multiThrowable */
            aload 8 /* e */
            invokevirtual org.apache.tomcat.util.MultiThrowable.add:(Ljava/lang/Throwable;)V
        end local 8 // java.lang.Throwable e
        end local 6 // java.util.concurrent.Future result
        25: .line 914
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster org.apache.catalina.Realm org.apache.catalina.Container[] java.util.List org.apache.tomcat.util.MultiThrowable top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        26: .line 926
            aload 5 /* multiThrowable */
            ifnull 30
        27: .line 927
            new org.apache.catalina.LifecycleException
            dup
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.threadedStartFailed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
        28: .line 928
            aload 5 /* multiThrowable */
            invokevirtual org.apache.tomcat.util.MultiThrowable.getThrowable:()Ljava/lang/Throwable;
        29: .line 927
            invokespecial org.apache.catalina.LifecycleException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        30: .line 932
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster org.apache.catalina.Realm org.apache.catalina.Container[] java.util.List org.apache.tomcat.util.MultiThrowable
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            instanceof org.apache.catalina.Lifecycle
            ifeq 32
        31: .line 933
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.start:()V
        32: .line 936
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STARTING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.core.ContainerBase.setState:(Lorg/apache/catalina/LifecycleState;)V
        33: .line 939
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
            ifle 39
        34: .line 940
            aload 0 /* this */
            aload 0 /* this */
            invokestatic org.apache.catalina.Container.getService:(Lorg/apache/catalina/Container;)Lorg/apache/catalina/Service;
            invokeinterface org.apache.catalina.Service.getServer:()Lorg/apache/catalina/Server;
        35: .line 941
            invokeinterface org.apache.catalina.Server.getUtilityExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
        36: .line 942
            new org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessorMonitor
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessorMonitor.<init>:(Lorg/apache/catalina/core/ContainerBase;)V
            lconst_0
            ldc 60
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
        37: .line 941
            invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
        38: .line 940
            putfield org.apache.catalina.core.ContainerBase.monitorFuture:Ljava/util/concurrent/ScheduledFuture;
        39: .line 944
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.apache.tomcat.util.MultiThrowable multiThrowable
        end local 4 // java.util.List results
        end local 3 // org.apache.catalina.Container[] children
        end local 2 // org.apache.catalina.Realm realm
        end local 1 // org.apache.catalina.Cluster cluster
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            this  Lorg/apache/catalina/core/ContainerBase;
            3   40     1         cluster  Lorg/apache/catalina/Cluster;
            6   40     2           realm  Lorg/apache/catalina/Realm;
            9   40     3        children  [Lorg/apache/catalina/Container;
           10   40     4         results  Ljava/util/List<Ljava/util/concurrent/Future<Ljava/lang/Void;>;>;
           12   13     5           child  Lorg/apache/catalina/Container;
           16   40     5  multiThrowable  Lorg/apache/tomcat/util/MultiThrowable;
           18   25     6          result  Ljava/util/concurrent/Future<Ljava/lang/Void;>;
           21   25     8               e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          18    19      20  Class java.lang.Throwable
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected synchronized void stopInternal();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 958
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.monitorFuture:Ljava/util/concurrent/ScheduledFuture;
            ifnull 3
         1: .line 959
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.monitorFuture:Ljava/util/concurrent/ScheduledFuture;
            iconst_1
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
         2: .line 960
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.monitorFuture:Ljava/util/concurrent/ScheduledFuture;
         3: .line 962
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.threadStop:()V
         4: .line 964
            aload 0 /* this */
            getstatic org.apache.catalina.LifecycleState.STOPPING:Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.core.ContainerBase.setState:(Lorg/apache/catalina/LifecycleState;)V
         5: .line 967
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            instanceof org.apache.catalina.Lifecycle
            ifeq 8
         6: .line 968
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 8
         7: .line 969
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.stop:()V
         8: .line 973
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.findChildren:()[Lorg/apache/catalina/Container;
            astore 1 /* children */
        start local 1 // org.apache.catalina.Container[] children
         9: .line 974
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* results */
        start local 2 // java.util.List results
        10: .line 975
            aload 1 /* children */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 14
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Container[] java.util.List top int int org.apache.catalina.Container[]
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* child */
        start local 3 // org.apache.catalina.Container child
        12: .line 976
            aload 2 /* results */
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
            new org.apache.catalina.core.ContainerBase$StopChild
            dup
            aload 3 /* child */
            invokespecial org.apache.catalina.core.ContainerBase$StopChild.<init>:(Lorg/apache/catalina/Container;)V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.catalina.Container child
        13: .line 975
            iinc 4 1
      StackMap locals:
      StackMap stack:
        14: iload 4
            iload 5
            if_icmplt 11
        15: .line 979
            iconst_0
            istore 3 /* fail */
        start local 3 // boolean fail
        16: .line 980
            aload 2 /* results */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 23
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Container[] java.util.List int top java.util.Iterator
      StackMap stack:
        17: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 4 /* result */
        start local 4 // java.util.concurrent.Future result
        18: .line 982
            aload 4 /* result */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        19: .line 983
            goto 23
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Container[] java.util.List int java.util.concurrent.Future java.util.Iterator
      StackMap stack: java.lang.Exception
        20: astore 6 /* e */
        start local 6 // java.lang.Exception e
        21: .line 984
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.threadedStopFailed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        22: .line 985
            iconst_1
            istore 3 /* fail */
        end local 6 // java.lang.Exception e
        end local 4 // java.util.concurrent.Future result
        23: .line 980
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Container[] java.util.List int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        24: .line 988
            iload 3 /* fail */
            ifeq 28
        25: .line 989
            new org.apache.catalina.LifecycleException
            dup
        26: .line 990
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.threadedStopFailed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
        27: .line 989
            invokespecial org.apache.catalina.LifecycleException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 994
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Container[] java.util.List int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getRealmInternal:()Lorg/apache/catalina/Realm;
            astore 4 /* realm */
        start local 4 // org.apache.catalina.Realm realm
        29: .line 995
            aload 4 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 31
        30: .line 996
            aload 4 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.stop:()V
        31: .line 998
      StackMap locals: org.apache.catalina.Realm
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getClusterInternal:()Lorg/apache/catalina/Cluster;
            astore 5 /* cluster */
        start local 5 // org.apache.catalina.Cluster cluster
        32: .line 999
            aload 5 /* cluster */
            instanceof org.apache.catalina.Lifecycle
            ifeq 34
        33: .line 1000
            aload 5 /* cluster */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.stop:()V
        34: .line 1002
      StackMap locals: org.apache.catalina.Cluster
      StackMap stack:
            return
        end local 5 // org.apache.catalina.Cluster cluster
        end local 4 // org.apache.catalina.Realm realm
        end local 3 // boolean fail
        end local 2 // java.util.List results
        end local 1 // org.apache.catalina.Container[] children
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   35     0      this  Lorg/apache/catalina/core/ContainerBase;
            9   35     1  children  [Lorg/apache/catalina/Container;
           10   35     2   results  Ljava/util/List<Ljava/util/concurrent/Future<Ljava/lang/Void;>;>;
           12   13     3     child  Lorg/apache/catalina/Container;
           16   35     3      fail  Z
           18   23     4    result  Ljava/util/concurrent/Future<Ljava/lang/Void;>;
           21   23     6         e  Ljava/lang/Exception;
           29   35     4     realm  Lorg/apache/catalina/Realm;
           32   35     5   cluster  Lorg/apache/catalina/Cluster;
      Exception table:
        from    to  target  type
          18    19      20  Class java.lang.Exception
    Exceptions:
      throws org.apache.catalina.LifecycleException

  protected void destroyInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1007
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getRealmInternal:()Lorg/apache/catalina/Realm;
            astore 1 /* realm */
        start local 1 // org.apache.catalina.Realm realm
         1: .line 1008
            aload 1 /* realm */
            instanceof org.apache.catalina.Lifecycle
            ifeq 3
         2: .line 1009
            aload 1 /* realm */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.destroy:()V
         3: .line 1011
      StackMap locals: org.apache.catalina.Realm
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getClusterInternal:()Lorg/apache/catalina/Cluster;
            astore 2 /* cluster */
        start local 2 // org.apache.catalina.Cluster cluster
         4: .line 1012
            aload 2 /* cluster */
            instanceof org.apache.catalina.Lifecycle
            ifeq 6
         5: .line 1013
            aload 2 /* cluster */
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.destroy:()V
         6: .line 1017
      StackMap locals: org.apache.catalina.Cluster
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            instanceof org.apache.catalina.Lifecycle
            ifeq 8
         7: .line 1018
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            checkcast org.apache.catalina.Lifecycle
            invokeinterface org.apache.catalina.Lifecycle.destroy:()V
         8: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.findChildren:()[Lorg/apache/catalina/Container;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 12
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Realm org.apache.catalina.Cluster top int int org.apache.catalina.Container[]
      StackMap stack:
         9: aload 6
            iload 4
            aaload
            astore 3 /* child */
        start local 3 // org.apache.catalina.Container child
        10: .line 1023
            aload 0 /* this */
            aload 3 /* child */
            invokevirtual org.apache.catalina.core.ContainerBase.removeChild:(Lorg/apache/catalina/Container;)V
        end local 3 // org.apache.catalina.Container child
        11: .line 1022
            iinc 4 1
      StackMap locals:
      StackMap stack:
        12: iload 4
            iload 5
            if_icmplt 9
        13: .line 1027
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            ifnull 15
        14: .line 1028
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            aload 0 /* this */
            invokeinterface org.apache.catalina.Container.removeChild:(Lorg/apache/catalina/Container;)V
        15: .line 1032
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Realm org.apache.catalina.Cluster
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
            ifnull 17
        16: .line 1033
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.startStopExecutor:Ljava/util/concurrent/ExecutorService;
            invokeinterface java.util.concurrent.ExecutorService.shutdownNow:()Ljava/util/List;
            pop
        17: .line 1036
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.apache.catalina.util.LifecycleMBeanBase.destroyInternal:()V
        18: .line 1037
            return
        end local 2 // org.apache.catalina.Cluster cluster
        end local 1 // org.apache.catalina.Realm realm
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lorg/apache/catalina/core/ContainerBase;
            1   19     1    realm  Lorg/apache/catalina/Realm;
            4   19     2  cluster  Lorg/apache/catalina/Cluster;
           10   11     3    child  Lorg/apache/catalina/Container;
    Exceptions:
      throws org.apache.catalina.LifecycleException

  public void logAccess(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, long, boolean);
    descriptor: (Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;JZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.connector.Request request
        start local 2 // org.apache.catalina.connector.Response response
        start local 3 // long time
        start local 5 // boolean useDefault
         0: .line 1049
            iconst_0
            istore 6 /* logged */
        start local 6 // boolean logged
         1: .line 1051
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getAccessLog:()Lorg/apache/catalina/AccessLog;
            ifnull 4
         2: .line 1052
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getAccessLog:()Lorg/apache/catalina/AccessLog;
            aload 1 /* request */
            aload 2 /* response */
            lload 3 /* time */
            invokeinterface org.apache.catalina.AccessLog.log:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;J)V
         3: .line 1053
            iconst_1
            istore 6 /* logged */
         4: .line 1056
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getParent:()Lorg/apache/catalina/Container;
            ifnull 8
         5: .line 1059
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getParent:()Lorg/apache/catalina/Container;
            aload 1 /* request */
            aload 2 /* response */
            lload 3 /* time */
            iload 5 /* useDefault */
            ifeq 6
            iload 6 /* logged */
            ifne 6
            iconst_1
            goto 7
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.connector.Request org.apache.catalina.connector.Response long int int
      StackMap stack: org.apache.catalina.Container org.apache.catalina.connector.Request org.apache.catalina.connector.Response long
         6: iconst_0
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.connector.Request org.apache.catalina.connector.Response long int int
      StackMap stack: org.apache.catalina.Container org.apache.catalina.connector.Request org.apache.catalina.connector.Response long int
         7: invokeinterface org.apache.catalina.Container.logAccess:(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;JZ)V
         8: .line 1061
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean logged
        end local 5 // boolean useDefault
        end local 3 // long time
        end local 2 // org.apache.catalina.connector.Response response
        end local 1 // org.apache.catalina.connector.Request request
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/apache/catalina/core/ContainerBase;
            0    9     1     request  Lorg/apache/catalina/connector/Request;
            0    9     2    response  Lorg/apache/catalina/connector/Response;
            0    9     3        time  J
            0    9     5  useDefault  Z
            1    9     6      logged  Z
    MethodParameters:
            Name  Flags
      request     
      response    
      time        
      useDefault  

  public org.apache.catalina.AccessLog getAccessLog();
    descriptor: ()Lorg/apache/catalina/AccessLog;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1066
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.accessLogScanComplete:Z
            ifeq 2
         1: .line 1067
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.accessLog:Lorg/apache/catalina/AccessLog;
            areturn
         2: .line 1070
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* adapter */
        start local 1 // org.apache.catalina.core.AccessLogAdapter adapter
         3: .line 1071
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getPipeline:()Lorg/apache/catalina/Pipeline;
            invokeinterface org.apache.catalina.Pipeline.getValves:()[Lorg/apache/catalina/Valve;
            astore 2 /* valves */
        start local 2 // org.apache.catalina.Valve[] valves
         4: .line 1072
            aload 2 /* valves */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 12
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.core.AccessLogAdapter org.apache.catalina.Valve[] top int int org.apache.catalina.Valve[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* valve */
        start local 3 // org.apache.catalina.Valve valve
         6: .line 1073
            aload 3 /* valve */
            instanceof org.apache.catalina.AccessLog
            ifeq 11
         7: .line 1074
            aload 1 /* adapter */
            ifnonnull 10
         8: .line 1075
            new org.apache.catalina.core.AccessLogAdapter
            dup
            aload 3 /* valve */
            checkcast org.apache.catalina.AccessLog
            invokespecial org.apache.catalina.core.AccessLogAdapter.<init>:(Lorg/apache/catalina/AccessLog;)V
            astore 1 /* adapter */
         9: .line 1076
            goto 11
        10: .line 1077
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.core.AccessLogAdapter org.apache.catalina.Valve[] org.apache.catalina.Valve int int org.apache.catalina.Valve[]
      StackMap stack:
            aload 1 /* adapter */
            aload 3 /* valve */
            checkcast org.apache.catalina.AccessLog
            invokevirtual org.apache.catalina.core.AccessLogAdapter.add:(Lorg/apache/catalina/AccessLog;)V
        end local 3 // org.apache.catalina.Valve valve
        11: .line 1072
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.core.AccessLogAdapter org.apache.catalina.Valve[] top int int org.apache.catalina.Valve[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        12: iload 4
            iload 5
            if_icmplt 5
        13: .line 1081
            aload 1 /* adapter */
            ifnull 15
        14: .line 1082
            aload 0 /* this */
            aload 1 /* adapter */
            putfield org.apache.catalina.core.ContainerBase.accessLog:Lorg/apache/catalina/AccessLog;
        15: .line 1084
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.core.AccessLogAdapter org.apache.catalina.Valve[]
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.core.ContainerBase.accessLogScanComplete:Z
        16: .line 1085
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.accessLog:Lorg/apache/catalina/AccessLog;
            areturn
        end local 2 // org.apache.catalina.Valve[] valves
        end local 1 // org.apache.catalina.core.AccessLogAdapter adapter
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/apache/catalina/core/ContainerBase;
            3   17     1  adapter  Lorg/apache/catalina/core/AccessLogAdapter;
            4   17     2   valves  [Lorg/apache/catalina/Valve;
            6   11     3    valve  Lorg/apache/catalina/Valve;

  public synchronized void addValve(org.apache.catalina.Valve);
    descriptor: (Lorg/apache/catalina/Valve;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // org.apache.catalina.Valve valve
         0: .line 1110
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            aload 1 /* valve */
            invokeinterface org.apache.catalina.Pipeline.addValve:(Lorg/apache/catalina/Valve;)V
         1: .line 1111
            return
        end local 1 // org.apache.catalina.Valve valve
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/catalina/core/ContainerBase;
            0    2     1  valve  Lorg/apache/catalina/Valve;
    MethodParameters:
       Name  Flags
      valve  

  public void backgroundProcess();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1122
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifne 2
         1: .line 1123
            return
         2: .line 1125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getClusterInternal:()Lorg/apache/catalina/Cluster;
            astore 1 /* cluster */
        start local 1 // org.apache.catalina.Cluster cluster
         3: .line 1126
            aload 1 /* cluster */
            ifnull 12
         4: .line 1128
            aload 1 /* cluster */
            invokeinterface org.apache.catalina.Cluster.backgroundProcess:()V
         5: .line 1129
            goto 12
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster
      StackMap stack: java.lang.Exception
         6: astore 2 /* e */
        start local 2 // java.lang.Exception e
         7: .line 1130
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.backgroundProcess.cluster"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 1131
            aload 1 /* cluster */
            aastore
         9: .line 1130
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        10: .line 1131
            aload 2 /* e */
        11: .line 1130
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception e
        12: .line 1134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getRealmInternal:()Lorg/apache/catalina/Realm;
            astore 2 /* realm */
        start local 2 // org.apache.catalina.Realm realm
        13: .line 1135
            aload 2 /* realm */
            ifnull 18
        14: .line 1137
            aload 2 /* realm */
            invokeinterface org.apache.catalina.Realm.backgroundProcess:()V
        15: .line 1138
            goto 18
      StackMap locals: org.apache.catalina.core.ContainerBase org.apache.catalina.Cluster org.apache.catalina.Realm
      StackMap stack: java.lang.Exception
        16: astore 3 /* e */
        start local 3 // java.lang.Exception e
        17: .line 1139
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.backgroundProcess.realm"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* realm */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 3 /* e */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Exception e
        18: .line 1142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.pipeline:Lorg/apache/catalina/Pipeline;
            invokeinterface org.apache.catalina.Pipeline.getFirst:()Lorg/apache/catalina/Valve;
            astore 3 /* current */
        start local 3 // org.apache.catalina.Valve current
        19: .line 1143
            goto 25
        20: .line 1145
      StackMap locals: org.apache.catalina.Valve
      StackMap stack:
            aload 3 /* current */
            invokeinterface org.apache.catalina.Valve.backgroundProcess:()V
        21: .line 1146
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Exception
        22: astore 4 /* e */
        start local 4 // java.lang.Exception e
        23: .line 1147
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.backgroundProcess.valve"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* current */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 4 /* e */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 4 // java.lang.Exception e
        24: .line 1149
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            invokeinterface org.apache.catalina.Valve.getNext:()Lorg/apache/catalina/Valve;
            astore 3 /* current */
        25: .line 1143
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 20
        26: .line 1151
            aload 0 /* this */
            ldc "periodic"
            aconst_null
            invokevirtual org.apache.catalina.core.ContainerBase.fireLifecycleEvent:(Ljava/lang/String;Ljava/lang/Object;)V
        27: .line 1152
            return
        end local 3 // org.apache.catalina.Valve current
        end local 2 // org.apache.catalina.Realm realm
        end local 1 // org.apache.catalina.Cluster cluster
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   28     0     this  Lorg/apache/catalina/core/ContainerBase;
            3   28     1  cluster  Lorg/apache/catalina/Cluster;
            7   12     2        e  Ljava/lang/Exception;
           13   28     2    realm  Lorg/apache/catalina/Realm;
           17   18     3        e  Ljava/lang/Exception;
           19   28     3  current  Lorg/apache/catalina/Valve;
           23   24     4        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Exception
          14    15      16  Class java.lang.Exception
          20    21      22  Class java.lang.Exception

  public java.io.File getCatalinaBase();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1158
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            ifnonnull 2
         1: .line 1159
            aconst_null
            areturn
         2: .line 1162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getCatalinaBase:()Ljava/io/File;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/core/ContainerBase;

  public java.io.File getCatalinaHome();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1169
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            ifnonnull 2
         1: .line 1170
            aconst_null
            areturn
         2: .line 1173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.parent:Lorg/apache/catalina/Container;
            invokeinterface org.apache.catalina.Container.getCatalinaHome:()Ljava/io/File;
            areturn
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/core/ContainerBase;

  public void fireContainerEvent(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.catalina.core.ContainerBase this
        start local 1 // java.lang.String type
        start local 2 // java.lang.Object data
         0: .line 1190
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.listeners:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpge 2
         1: .line 1191
            return
         2: .line 1193
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.ContainerEvent
            dup
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* data */
            invokespecial org.apache.catalina.ContainerEvent.<init>:(Lorg/apache/catalina/Container;Ljava/lang/String;Ljava/lang/Object;)V
            astore 3 /* event */
        start local 3 // org.apache.catalina.ContainerEvent event
         3: .line 1195
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.listeners:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.apache.catalina.core.ContainerBase java.lang.String java.lang.Object org.apache.catalina.ContainerEvent top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.ContainerListener
            astore 4 /* listener */
        start local 4 // org.apache.catalina.ContainerListener listener
         5: .line 1196
            aload 4 /* listener */
            aload 3 /* event */
            invokeinterface org.apache.catalina.ContainerListener.containerEvent:(Lorg/apache/catalina/ContainerEvent;)V
        end local 4 // org.apache.catalina.ContainerListener listener
         6: .line 1195
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 1198
            return
        end local 3 // org.apache.catalina.ContainerEvent event
        end local 2 // java.lang.Object data
        end local 1 // java.lang.String type
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/apache/catalina/core/ContainerBase;
            0    8     1      type  Ljava/lang/String;
            0    8     2      data  Ljava/lang/Object;
            3    8     3     event  Lorg/apache/catalina/ContainerEvent;
            5    6     4  listener  Lorg/apache/catalina/ContainerListener;
    MethodParameters:
      Name  Flags
      type  
      data  

  protected java.lang.String getDomainInternal();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1206
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getParent:()Lorg/apache/catalina/Container;
            astore 1 /* p */
        start local 1 // org.apache.catalina.Container p
         1: .line 1207
            aload 1 /* p */
            ifnonnull 3
         2: .line 1208
            aconst_null
            areturn
         3: .line 1210
      StackMap locals: org.apache.catalina.Container
      StackMap stack:
            aload 1 /* p */
            invokeinterface org.apache.catalina.Container.getDomain:()Ljava/lang/String;
            areturn
        end local 1 // org.apache.catalina.Container p
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/core/ContainerBase;
            1    4     1     p  Lorg/apache/catalina/Container;

  public java.lang.String getMBeanKeyProperties();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1217
            aload 0 /* this */
            astore 1 /* c */
        start local 1 // org.apache.catalina.Container c
         1: .line 1218
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* keyProperties */
        start local 2 // java.lang.StringBuilder keyProperties
         2: .line 1219
            iconst_0
            istore 3 /* containerCount */
        start local 3 // int containerCount
         3: .line 1223
            goto 27
         4: .line 1224
      StackMap locals: org.apache.catalina.Container java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* c */
            instanceof org.apache.catalina.Wrapper
            ifeq 8
         5: .line 1225
            aload 2 /* keyProperties */
            iconst_0
            ldc ",servlet="
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1226
            aload 2 /* keyProperties */
            bipush 9
            aload 1 /* c */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 1227
            goto 26
      StackMap locals:
      StackMap stack:
         8: aload 1 /* c */
            instanceof org.apache.catalina.Context
            ifeq 13
         9: .line 1228
            aload 2 /* keyProperties */
            iconst_0
            ldc ",context="
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 1229
            new org.apache.catalina.util.ContextName
            dup
            aload 1 /* c */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            iconst_0
            invokespecial org.apache.catalina.util.ContextName.<init>:(Ljava/lang/String;Z)V
            astore 4 /* cn */
        start local 4 // org.apache.catalina.util.ContextName cn
        11: .line 1230
            aload 2 /* keyProperties */
            bipush 9
            aload 4 /* cn */
            invokevirtual org.apache.catalina.util.ContextName.getDisplayName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // org.apache.catalina.util.ContextName cn
        12: .line 1231
            goto 26
      StackMap locals:
      StackMap stack:
        13: aload 1 /* c */
            instanceof org.apache.catalina.Host
            ifeq 17
        14: .line 1232
            aload 2 /* keyProperties */
            iconst_0
            ldc ",host="
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 1233
            aload 2 /* keyProperties */
            bipush 6
            aload 1 /* c */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.insert:(ILjava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 1234
            goto 26
      StackMap locals:
      StackMap stack:
        17: aload 1 /* c */
            ifnonnull 22
        18: .line 1236
            aload 2 /* keyProperties */
            ldc ",container"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 1237
            aload 2 /* keyProperties */
            iload 3 /* containerCount */
            iinc 3 /* containerCount */ 1
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        20: .line 1238
            aload 2 /* keyProperties */
            ldc "=null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 1239
            goto 28
        22: .line 1242
      StackMap locals:
      StackMap stack:
            aload 2 /* keyProperties */
            ldc ",container"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 1243
            aload 2 /* keyProperties */
            iload 3 /* containerCount */
            iinc 3 /* containerCount */ 1
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        24: .line 1244
            aload 2 /* keyProperties */
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        25: .line 1245
            aload 2 /* keyProperties */
            aload 1 /* c */
            invokeinterface org.apache.catalina.Container.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 1247
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            invokeinterface org.apache.catalina.Container.getParent:()Lorg/apache/catalina/Container;
            astore 1 /* c */
        27: .line 1223
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            instanceof org.apache.catalina.Engine
            ifeq 4
        28: .line 1249
      StackMap locals:
      StackMap stack:
            aload 2 /* keyProperties */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int containerCount
        end local 2 // java.lang.StringBuilder keyProperties
        end local 1 // org.apache.catalina.Container c
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lorg/apache/catalina/core/ContainerBase;
            1   29     1               c  Lorg/apache/catalina/Container;
            2   29     2   keyProperties  Ljava/lang/StringBuilder;
            3   29     3  containerCount  I
           11   12     4              cn  Lorg/apache/catalina/util/ContextName;

  public javax.management.ObjectName[] getChildren();
    descriptor: ()[Ljavax/management/ObjectName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1253
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* names */
        start local 1 // java.util.List names
         1: .line 1254
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.children:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.apache.catalina.core.ContainerBase java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.catalina.Container
            astore 2 /* next */
        start local 2 // org.apache.catalina.Container next
         3: .line 1255
            aload 2 /* next */
            instanceof org.apache.catalina.core.ContainerBase
            ifeq 5
         4: .line 1256
            aload 1 /* names */
            aload 2 /* next */
            invokeinterface org.apache.catalina.Container.getObjectName:()Ljavax/management/ObjectName;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.catalina.Container next
         5: .line 1254
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 1259
            aload 1 /* names */
            iconst_0
            anewarray javax.management.ObjectName
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast javax.management.ObjectName[]
            areturn
        end local 1 // java.util.List names
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/catalina/core/ContainerBase;
            1    7     1  names  Ljava/util/List<Ljavax/management/ObjectName;>;
            3    5     2   next  Lorg/apache/catalina/Container;

  protected void threadStart();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1270
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
            ifle 14
         1: .line 1271
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifne 2
            getstatic org.apache.catalina.LifecycleState.STARTING_PREP:Lorg/apache/catalina/LifecycleState;
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.equals:(Ljava/lang/Object;)Z
            ifeq 14
         2: .line 1272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            ifnull 3
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            invokeinterface java.util.concurrent.ScheduledFuture.isDone:()Z
            ifeq 14
         3: .line 1273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            ifnull 8
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            invokeinterface java.util.concurrent.ScheduledFuture.isDone:()Z
            ifeq 8
         4: .line 1276
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            invokeinterface java.util.concurrent.ScheduledFuture.get:()Ljava/lang/Object;
            pop
         5: .line 1277
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 1 /* e */
        start local 1 // java.lang.Exception e
         7: .line 1278
            getstatic org.apache.catalina.core.ContainerBase.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.core.ContainerBase.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "containerBase.backgroundProcess.error"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         8: .line 1281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            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.getUtilityExecutor:()Ljava/util/concurrent/ScheduledExecutorService;
         9: .line 1282
            new org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor
            dup
            aload 0 /* this */
            invokespecial org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.<init>:(Lorg/apache/catalina/core/ContainerBase;)V
        10: .line 1283
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
            i2l
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorDelay:I
            i2l
        11: .line 1284
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
        12: .line 1282
            invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
        13: .line 1281
            putfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
        14: .line 1286
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lorg/apache/catalina/core/ContainerBase;
            7    8     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.InterruptedException
           4     5       6  Class java.util.concurrent.ExecutionException

  protected void threadStop();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1294
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            ifnull 3
         1: .line 1295
            aload 0 /* this */
            getfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
            iconst_1
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
         2: .line 1296
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.core.ContainerBase.backgroundProcessorFuture:Ljava/util/concurrent/ScheduledFuture;
         3: .line 1298
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/catalina/core/ContainerBase;

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.apache.catalina.core.ContainerBase this
         0: .line 1303
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 1304
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getParent:()Lorg/apache/catalina/Container;
            astore 2 /* parent */
        start local 2 // org.apache.catalina.Container parent
         2: .line 1305
            aload 2 /* parent */
            ifnull 5
         3: .line 1306
            aload 1 /* sb */
            aload 2 /* parent */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 1307
            aload 1 /* sb */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 1309
      StackMap locals: java.lang.StringBuilder org.apache.catalina.Container
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 1310
            aload 1 /* sb */
            bipush 91
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 1311
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual org.apache.catalina.core.ContainerBase.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1312
            aload 1 /* sb */
            bipush 93
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         9: .line 1313
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // org.apache.catalina.Container parent
        end local 1 // java.lang.StringBuilder sb
        end local 0 // org.apache.catalina.core.ContainerBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/apache/catalina/core/ContainerBase;
            1   10     1      sb  Ljava/lang/StringBuilder;
            2   10     2  parent  Lorg/apache/catalina/Container;
}
SourceFile: "ContainerBase.java"
NestMembers:
  org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor  org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessorMonitor  org.apache.catalina.core.ContainerBase$PrivilegedAddChild  org.apache.catalina.core.ContainerBase$StartChild  org.apache.catalina.core.ContainerBase$StopChild
InnerClasses:
  protected ContainerBackgroundProcessor = org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor of org.apache.catalina.core.ContainerBase
  protected ContainerBackgroundProcessorMonitor = org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessorMonitor of org.apache.catalina.core.ContainerBase
  protected PrivilegedAddChild = org.apache.catalina.core.ContainerBase$PrivilegedAddChild of org.apache.catalina.core.ContainerBase
  private StartChild = org.apache.catalina.core.ContainerBase$StartChild of org.apache.catalina.core.ContainerBase
  private StopChild = org.apache.catalina.core.ContainerBase$StopChild of org.apache.catalina.core.ContainerBase