public class org.apache.tomcat.util.threads.ThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.tomcat.util.threads.ThreadPoolExecutor
  super_class: java.util.concurrent.ThreadPoolExecutor
{
  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

  private final java.util.concurrent.atomic.AtomicInteger submittedCount;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicLong lastContextStoppedTime;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicLong lastTimeThreadKilledItself;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long threadRenewalDelay;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 41
            ldc "org.apache.tomcat.util.threads.res"
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/String;)Lorg/apache/tomcat/util/res/StringManager;
         1: .line 40
            putstatic org.apache.tomcat.util.threads.ThreadPoolExecutor.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 41
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>, java.util.concurrent.RejectedExecutionHandler);
    descriptor: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // int corePoolSize
        start local 2 // int maximumPoolSize
        start local 3 // long keepAliveTime
        start local 5 // java.util.concurrent.TimeUnit unit
        start local 6 // java.util.concurrent.BlockingQueue workQueue
        start local 7 // java.util.concurrent.RejectedExecutionHandler handler
         0: .line 65
            aload 0 /* this */
            iload 1 /* corePoolSize */
            iload 2 /* maximumPoolSize */
            lload 3 /* keepAliveTime */
            aload 5 /* unit */
            aload 6 /* workQueue */
            aload 7 /* handler */
            invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V
         1: .line 49
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
         2: .line 50
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastContextStoppedTime:Ljava/util/concurrent/atomic/AtomicLong;
         3: .line 57
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
         4: .line 62
            aload 0 /* this */
            ldc 1000
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
         5: .line 66
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
            pop
         6: .line 67
            return
        end local 7 // java.util.concurrent.RejectedExecutionHandler handler
        end local 6 // java.util.concurrent.BlockingQueue workQueue
        end local 5 // java.util.concurrent.TimeUnit unit
        end local 3 // long keepAliveTime
        end local 2 // int maximumPoolSize
        end local 1 // int corePoolSize
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    7     1     corePoolSize  I
            0    7     2  maximumPoolSize  I
            0    7     3    keepAliveTime  J
            0    7     5             unit  Ljava/util/concurrent/TimeUnit;
            0    7     6        workQueue  Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
            0    7     7          handler  Ljava/util/concurrent/RejectedExecutionHandler;
    Signature: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;Ljava/util/concurrent/RejectedExecutionHandler;)V
    MethodParameters:
                 Name  Flags
      corePoolSize     
      maximumPoolSize  
      keepAliveTime    
      unit             
      workQueue        
      handler          

  public void <init>(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>, java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler);
    descriptor: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=8
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // int corePoolSize
        start local 2 // int maximumPoolSize
        start local 3 // long keepAliveTime
        start local 5 // java.util.concurrent.TimeUnit unit
        start local 6 // java.util.concurrent.BlockingQueue workQueue
        start local 7 // java.util.concurrent.ThreadFactory threadFactory
        start local 8 // java.util.concurrent.RejectedExecutionHandler handler
         0: .line 71
            aload 0 /* this */
            iload 1 /* corePoolSize */
            iload 2 /* maximumPoolSize */
            lload 3 /* keepAliveTime */
            aload 5 /* unit */
            aload 6 /* workQueue */
            aload 7 /* threadFactory */
            aload 8 /* handler */
            invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
         1: .line 49
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
         2: .line 50
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastContextStoppedTime:Ljava/util/concurrent/atomic/AtomicLong;
         3: .line 57
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
         4: .line 62
            aload 0 /* this */
            ldc 1000
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
         5: .line 72
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
            pop
         6: .line 73
            return
        end local 8 // java.util.concurrent.RejectedExecutionHandler handler
        end local 7 // java.util.concurrent.ThreadFactory threadFactory
        end local 6 // java.util.concurrent.BlockingQueue workQueue
        end local 5 // java.util.concurrent.TimeUnit unit
        end local 3 // long keepAliveTime
        end local 2 // int maximumPoolSize
        end local 1 // int corePoolSize
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    7     1     corePoolSize  I
            0    7     2  maximumPoolSize  I
            0    7     3    keepAliveTime  J
            0    7     5             unit  Ljava/util/concurrent/TimeUnit;
            0    7     6        workQueue  Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
            0    7     7    threadFactory  Ljava/util/concurrent/ThreadFactory;
            0    7     8          handler  Ljava/util/concurrent/RejectedExecutionHandler;
    Signature: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
    MethodParameters:
                 Name  Flags
      corePoolSize     
      maximumPoolSize  
      keepAliveTime    
      unit             
      workQueue        
      threadFactory    
      handler          

  public void <init>(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>, java.util.concurrent.ThreadFactory);
    descriptor: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=8, args_size=7
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // int corePoolSize
        start local 2 // int maximumPoolSize
        start local 3 // long keepAliveTime
        start local 5 // java.util.concurrent.TimeUnit unit
        start local 6 // java.util.concurrent.BlockingQueue workQueue
        start local 7 // java.util.concurrent.ThreadFactory threadFactory
         0: .line 76
            aload 0 /* this */
            iload 1 /* corePoolSize */
            iload 2 /* maximumPoolSize */
            lload 3 /* keepAliveTime */
            aload 5 /* unit */
            aload 6 /* workQueue */
            aload 7 /* threadFactory */
            new org.apache.tomcat.util.threads.ThreadPoolExecutor$RejectHandler
            dup
            invokespecial org.apache.tomcat.util.threads.ThreadPoolExecutor$RejectHandler.<init>:()V
            invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
         1: .line 49
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
         2: .line 50
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastContextStoppedTime:Ljava/util/concurrent/atomic/AtomicLong;
         3: .line 57
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
         4: .line 62
            aload 0 /* this */
            ldc 1000
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
         5: .line 77
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
            pop
         6: .line 78
            return
        end local 7 // java.util.concurrent.ThreadFactory threadFactory
        end local 6 // java.util.concurrent.BlockingQueue workQueue
        end local 5 // java.util.concurrent.TimeUnit unit
        end local 3 // long keepAliveTime
        end local 2 // int maximumPoolSize
        end local 1 // int corePoolSize
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    7     1     corePoolSize  I
            0    7     2  maximumPoolSize  I
            0    7     3    keepAliveTime  J
            0    7     5             unit  Ljava/util/concurrent/TimeUnit;
            0    7     6        workQueue  Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
            0    7     7    threadFactory  Ljava/util/concurrent/ThreadFactory;
    Signature: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;Ljava/util/concurrent/ThreadFactory;)V
    MethodParameters:
                 Name  Flags
      corePoolSize     
      maximumPoolSize  
      keepAliveTime    
      unit             
      workQueue        
      threadFactory    

  public void <init>(int, int, long, java.util.concurrent.TimeUnit, java.util.concurrent.BlockingQueue<java.lang.Runnable>);
    descriptor: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=6
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // int corePoolSize
        start local 2 // int maximumPoolSize
        start local 3 // long keepAliveTime
        start local 5 // java.util.concurrent.TimeUnit unit
        start local 6 // java.util.concurrent.BlockingQueue workQueue
         0: .line 81
            aload 0 /* this */
            iload 1 /* corePoolSize */
            iload 2 /* maximumPoolSize */
            lload 3 /* keepAliveTime */
            aload 5 /* unit */
            aload 6 /* workQueue */
            new org.apache.tomcat.util.threads.ThreadPoolExecutor$RejectHandler
            dup
            invokespecial org.apache.tomcat.util.threads.ThreadPoolExecutor$RejectHandler.<init>:()V
            invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V
         1: .line 49
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
         2: .line 50
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastContextStoppedTime:Ljava/util/concurrent/atomic/AtomicLong;
         3: .line 57
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
         4: .line 62
            aload 0 /* this */
            ldc 1000
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
         5: .line 82
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
            pop
         6: .line 83
            return
        end local 6 // java.util.concurrent.BlockingQueue workQueue
        end local 5 // java.util.concurrent.TimeUnit unit
        end local 3 // long keepAliveTime
        end local 2 // int maximumPoolSize
        end local 1 // int corePoolSize
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    7     1     corePoolSize  I
            0    7     2  maximumPoolSize  I
            0    7     3    keepAliveTime  J
            0    7     5             unit  Ljava/util/concurrent/TimeUnit;
            0    7     6        workQueue  Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;
    Signature: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;)V
    MethodParameters:
                 Name  Flags
      corePoolSize     
      maximumPoolSize  
      keepAliveTime    
      unit             
      workQueue        

  public long getThreadRenewalDelay();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
         0: .line 86
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
            lreturn
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;

  public void setThreadRenewalDelay(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // long threadRenewalDelay
         0: .line 90
            aload 0 /* this */
            lload 1 /* threadRenewalDelay */
            putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
         1: .line 91
            return
        end local 1 // long threadRenewalDelay
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    2     1  threadRenewalDelay  J
    MethodParameters:
                    Name  Flags
      threadRenewalDelay  

  protected void afterExecute(java.lang.Runnable, java.lang.Throwable);
    descriptor: (Ljava/lang/Runnable;Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // java.lang.Runnable r
        start local 2 // java.lang.Throwable t
         0: .line 99
            aload 2 /* t */
            instanceof org.apache.tomcat.util.threads.StopPooledThreadException
            ifne 2
         1: .line 100
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
         2: .line 103
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            ifnonnull 4
         3: .line 104
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.stopCurrentThreadIfNeeded:()V
         4: .line 106
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Runnable r
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    5     1     r  Ljava/lang/Runnable;
            0    5     2     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      r     
      t     

  protected void stopCurrentThreadIfNeeded();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
         0: .line 113
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.currentThreadShouldBeStopped:()Z
            ifeq 12
         1: .line 114
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.longValue:()J
            lstore 1 /* lastTime */
        start local 1 // long lastTime
         2: .line 115
            lload 1 /* lastTime */
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
            ladd
            invokestatic java.lang.System.currentTimeMillis:()J
            lcmp
            ifge 12
         3: .line 116
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
            lload 1 /* lastTime */
         4: .line 117
            invokestatic java.lang.System.currentTimeMillis:()J
            lconst_1
            ladd
         5: .line 116
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
         6: .line 117
            ifeq 12
         7: .line 120
            getstatic org.apache.tomcat.util.threads.ThreadPoolExecutor.sm:Lorg/apache/tomcat/util/res/StringManager;
         8: .line 121
            ldc "threadPoolExecutor.threadStoppedToAvoidPotentialLeak"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 122
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            aastore
        10: .line 120
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
        11: .line 124
            new org.apache.tomcat.util.threads.StopPooledThreadException
            dup
            aload 3 /* msg */
            invokespecial org.apache.tomcat.util.threads.StopPooledThreadException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String msg
        end local 1 // long lastTime
        12: .line 128
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            2   12     1  lastTime  J
           11   12     3       msg  Ljava/lang/String;

  protected boolean currentThreadShouldBeStopped();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
         0: .line 131
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
            lconst_0
            lcmp
            iflt 6
         1: .line 132
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            instanceof org.apache.tomcat.util.threads.TaskThread
            ifeq 6
         2: .line 133
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            checkcast org.apache.tomcat.util.threads.TaskThread
            astore 1 /* currentTaskThread */
        start local 1 // org.apache.tomcat.util.threads.TaskThread currentTaskThread
         3: .line 134
            aload 1 /* currentTaskThread */
            invokevirtual org.apache.tomcat.util.threads.TaskThread.getCreationTime:()J
         4: .line 135
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastContextStoppedTime:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.longValue:()J
            lcmp
            ifge 6
         5: .line 136
            iconst_1
            ireturn
        end local 1 // org.apache.tomcat.util.threads.TaskThread currentTaskThread
         6: .line 139
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            3    6     1  currentTaskThread  Lorg/apache/tomcat/util/threads/TaskThread;

  public int getSubmittedCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
         0: .line 143
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ireturn
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;

  public void execute(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // java.lang.Runnable command
         0: .line 151
            aload 0 /* this */
            aload 1 /* command */
            lconst_0
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.execute:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
         1: .line 152
            return
        end local 1 // java.lang.Runnable command
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0    2     1  command  Ljava/lang/Runnable;
    MethodParameters:
         Name  Flags
      command  

  public void execute(java.lang.Runnable, long, java.util.concurrent.TimeUnit);
    descriptor: (Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
        start local 1 // java.lang.Runnable command
        start local 2 // long timeout
        start local 4 // java.util.concurrent.TimeUnit unit
         0: .line 171
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
         1: .line 173
            aload 0 /* this */
            aload 1 /* command */
            invokespecial java.util.concurrent.ThreadPoolExecutor.execute:(Ljava/lang/Runnable;)V
         2: .line 174
            goto 14
      StackMap locals:
      StackMap stack: java.util.concurrent.RejectedExecutionException
         3: astore 5 /* rx */
        start local 5 // java.util.concurrent.RejectedExecutionException rx
         4: .line 175
            aload 0 /* this */
            invokespecial java.util.concurrent.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
            instanceof org.apache.tomcat.util.threads.TaskQueue
            ifeq 12
         5: .line 176
            aload 0 /* this */
            invokespecial java.util.concurrent.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
            checkcast org.apache.tomcat.util.threads.TaskQueue
            astore 6 /* queue */
        start local 6 // org.apache.tomcat.util.threads.TaskQueue queue
         6: .line 178
            aload 6 /* queue */
            aload 1 /* command */
            lload 2 /* timeout */
            aload 4 /* unit */
            invokevirtual org.apache.tomcat.util.threads.TaskQueue.force:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Z
            ifne 14
         7: .line 179
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
         8: .line 180
            new java.util.concurrent.RejectedExecutionException
            dup
            getstatic org.apache.tomcat.util.threads.ThreadPoolExecutor.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "threadPoolExecutor.queueFull"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 182
      StackMap locals: org.apache.tomcat.util.threads.ThreadPoolExecutor java.lang.Runnable long java.util.concurrent.TimeUnit java.util.concurrent.RejectedExecutionException org.apache.tomcat.util.threads.TaskQueue
      StackMap stack: java.lang.InterruptedException
            astore 7 /* x */
        start local 7 // java.lang.InterruptedException x
        10: .line 183
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        11: .line 184
            new java.util.concurrent.RejectedExecutionException
            dup
            aload 7 /* x */
            invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.lang.InterruptedException x
        end local 6 // org.apache.tomcat.util.threads.TaskQueue queue
        12: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        13: .line 188
            aload 5 /* rx */
            athrow
        end local 5 // java.util.concurrent.RejectedExecutionException rx
        14: .line 192
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long timeout
        end local 1 // java.lang.Runnable command
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            0   15     1  command  Ljava/lang/Runnable;
            0   15     2  timeout  J
            0   15     4     unit  Ljava/util/concurrent/TimeUnit;
            4   14     5       rx  Ljava/util/concurrent/RejectedExecutionException;
            6   12     6    queue  Lorg/apache/tomcat/util/threads/TaskQueue;
           10   12     7        x  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.util.concurrent.RejectedExecutionException
           6     9       9  Class java.lang.InterruptedException
    MethodParameters:
         Name  Flags
      command  
      timeout  
      unit     

  public void contextStopping();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
         0: .line 195
            aload 0 /* this */
            getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastContextStoppedTime:Ljava/util/concurrent/atomic/AtomicLong;
            invokestatic java.lang.System.currentTimeMillis:()J
            invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
         1: .line 198
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.getCorePoolSize:()I
            istore 1 /* savedCorePoolSize */
        start local 1 // int savedCorePoolSize
         2: .line 200
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
            instanceof org.apache.tomcat.util.threads.TaskQueue
            ifeq 3
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
            checkcast org.apache.tomcat.util.threads.TaskQueue
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aconst_null
         4: .line 199
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.threads.TaskQueue
            astore 2 /* taskQueue */
        start local 2 // org.apache.tomcat.util.threads.TaskQueue taskQueue
         5: .line 201
            aload 2 /* taskQueue */
            ifnull 7
         6: .line 206
            aload 2 /* taskQueue */
            iconst_0
            invokevirtual org.apache.tomcat.util.threads.TaskQueue.setForcedRemainingCapacity:(I)V
         7: .line 210
      StackMap locals: org.apache.tomcat.util.threads.TaskQueue
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.setCorePoolSize:(I)V
         8: .line 216
            aload 2 /* taskQueue */
            ifnull 10
         9: .line 218
            aload 2 /* taskQueue */
            invokevirtual org.apache.tomcat.util.threads.TaskQueue.resetForcedRemainingCapacity:()V
        10: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* savedCorePoolSize */
            invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.setCorePoolSize:(I)V
        11: .line 221
            return
        end local 2 // org.apache.tomcat.util.threads.TaskQueue taskQueue
        end local 1 // int savedCorePoolSize
        end local 0 // org.apache.tomcat.util.threads.ThreadPoolExecutor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
            2   12     1  savedCorePoolSize  I
            5   12     2          taskQueue  Lorg/apache/tomcat/util/threads/TaskQueue;
}
SourceFile: "ThreadPoolExecutor.java"
NestMembers:
  org.apache.tomcat.util.threads.ThreadPoolExecutor$RejectHandler
InnerClasses:
  private RejectHandler = org.apache.tomcat.util.threads.ThreadPoolExecutor$RejectHandler of org.apache.tomcat.util.threads.ThreadPoolExecutor