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: 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: putstatic org.apache.tomcat.util.threads.ThreadPoolExecutor.sm:Lorg/apache/tomcat/util/res/StringManager;
2: 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 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 0: aload 0
iload 1
iload 2
lload 3
aload 5
aload 6
aload 7
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V
1: aload 0
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: aload 0
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: aload 0
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: aload 0
ldc 1000
putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
5: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
pop
6: return
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 start local 8 0: aload 0
iload 1
iload 2
lload 3
aload 5
aload 6
aload 7
aload 8
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V
1: aload 0
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: aload 0
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: aload 0
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: aload 0
ldc 1000
putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
5: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
pop
6: return
end local 8 end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 5 start local 6 start local 7 0: aload 0
iload 1
iload 2
lload 3
aload 5
aload 6
aload 7
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: aload 0
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: aload 0
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: aload 0
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: aload 0
ldc 1000
putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
5: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
pop
6: return
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 5 start local 6 0: aload 0
iload 1
iload 2
lload 3
aload 5
aload 6
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: aload 0
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: aload 0
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: aload 0
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: aload 0
ldc 1000
putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
5: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.prestartAllCoreThreads:()I
pop
6: return
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
lreturn
end local 0 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 start local 1 0: aload 0
lload 1
putfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
1: return
end local 1 end local 0 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 start local 1 start local 2 0: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
1: aload 2
ifnonnull 3
2: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.stopCurrentThreadIfNeeded:()V
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/tomcat/util/threads/ThreadPoolExecutor;
0 4 1 r Ljava/lang/Runnable;
0 4 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 0: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.currentThreadShouldBeStopped:()Z
ifeq 12
1: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.longValue:()J
lstore 1
start local 1 2: lload 1
aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
ladd
invokestatic java.lang.System.currentTimeMillis:()J
lcmp
ifge 12
3: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.lastTimeThreadKilledItself:Ljava/util/concurrent/atomic/AtomicLong;
lload 1
4: invokestatic java.lang.System.currentTimeMillis:()J
lconst_1
ladd
5: invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
6: ifeq 12
7: getstatic org.apache.tomcat.util.threads.ThreadPoolExecutor.sm:Lorg/apache/tomcat/util/res/StringManager;
8: ldc "threadPoolExecutor.threadStoppedToAvoidPotentialLeak"
iconst_1
anewarray java.lang.Object
dup
iconst_0
9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
aastore
10: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 3
start local 3 11: new org.apache.tomcat.util.threads.StopPooledThreadException
dup
aload 3
invokespecial org.apache.tomcat.util.threads.StopPooledThreadException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 1 12: StackMap locals:
StackMap stack:
return
end local 0 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 0: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.threadRenewalDelay:J
lconst_0
lcmp
iflt 6
1: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
instanceof org.apache.tomcat.util.threads.TaskThread
ifeq 6
2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
checkcast org.apache.tomcat.util.threads.TaskThread
astore 1
start local 1 3: aload 1
invokevirtual org.apache.tomcat.util.threads.TaskThread.getCreationTime:()J
4: aload 0
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: iconst_1
ireturn
end local 1 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 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 0: aload 0
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 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 start local 1 0: aload 0
aload 1
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: return
end local 1 end local 0 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 start local 1 start local 2 start local 4 0: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
pop
1: aload 0
aload 1
invokespecial java.util.concurrent.ThreadPoolExecutor.execute:(Ljava/lang/Runnable;)V
2: goto 14
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
3: astore 5
start local 5 4: aload 0
invokespecial java.util.concurrent.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
instanceof org.apache.tomcat.util.threads.TaskQueue
ifeq 12
5: aload 0
invokespecial java.util.concurrent.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
checkcast org.apache.tomcat.util.threads.TaskQueue
astore 6
start local 6 6: aload 6
aload 1
lload 2
aload 4
invokevirtual org.apache.tomcat.util.threads.TaskQueue.force:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Z
ifne 14
7: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
8: 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: 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
start local 7 10: aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
11: new java.util.concurrent.RejectedExecutionException
dup
aload 7
invokespecial java.util.concurrent.RejectedExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 end local 6 12: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.threads.ThreadPoolExecutor.submittedCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
13: aload 5
athrow
end local 5 14: StackMap locals:
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 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 0: aload 0
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: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.getCorePoolSize:()I
istore 1
start local 1 2: aload 0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.getQueue:()Ljava/util/concurrent/BlockingQueue;
instanceof org.apache.tomcat.util.threads.TaskQueue
ifeq 3
aload 0
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: StackMap locals:
StackMap stack: org.apache.tomcat.util.threads.TaskQueue
astore 2
start local 2 5: aload 2
ifnull 7
6: aload 2
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.apache.tomcat.util.threads.TaskQueue.setForcedRemainingCapacity:(Ljava/lang/Integer;)V
7: StackMap locals: org.apache.tomcat.util.threads.TaskQueue
StackMap stack:
aload 0
iconst_0
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.setCorePoolSize:(I)V
8: aload 2
ifnull 10
9: aload 2
aconst_null
invokevirtual org.apache.tomcat.util.threads.TaskQueue.setForcedRemainingCapacity:(Ljava/lang/Integer;)V
10: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.apache.tomcat.util.threads.ThreadPoolExecutor.setCorePoolSize:(I)V
11: return
end local 2 end local 1 end local 0 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