public final class io.ebeaninternal.server.executor.DaemonScheduleThreadPool extends java.util.concurrent.ScheduledThreadPoolExecutor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.ebeaninternal.server.executor.DaemonScheduleThreadPool
super_class: java.util.concurrent.ScheduledThreadPoolExecutor
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock lock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String namePrefix;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int shutdownWaitSeconds;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lio/ebeaninternal/server/executor/DaemonScheduleThreadPool;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic io.ebeaninternal.server.executor.DaemonScheduleThreadPool.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int, int, java.lang.String);
descriptor: (IILjava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
new io.ebeaninternal.server.executor.DaemonThreadFactory
dup
aload 3
invokespecial io.ebeaninternal.server.executor.DaemonThreadFactory.<init>:(Ljava/lang/String;)V
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.<init>:(ILjava/util/concurrent/ThreadFactory;)V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.lock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
aload 3
putfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.namePrefix:Ljava/lang/String;
3: aload 0
iload 2
putfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.shutdownWaitSeconds:I
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/ebeaninternal/server/executor/DaemonScheduleThreadPool;
0 5 1 coreSize I
0 5 2 shutdownWaitSeconds I
0 5 3 namePrefix Ljava/lang/String;
MethodParameters:
Name Flags
coreSize
shutdownWaitSeconds
namePrefix
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.isShutdown:()Z
ifeq 5
2: getstatic io.ebeaninternal.server.executor.DaemonScheduleThreadPool.logger:Lorg/slf4j/Logger;
ldc "Already shutdown {}"
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.namePrefix:Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
3: aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
4: return
5: StackMap locals:
StackMap stack:
getstatic io.ebeaninternal.server.executor.DaemonScheduleThreadPool.logger:Lorg/slf4j/Logger;
ldc "Shutting down {} ..."
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.namePrefix:Ljava/lang/String;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
6: aload 0
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.shutdown:()V
7: aload 0
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.shutdownWaitSeconds:I
i2l
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
ifne 10
8: getstatic io.ebeaninternal.server.executor.DaemonScheduleThreadPool.logger:Lorg/slf4j/Logger;
ldc "Shutdown wait timeout exceeded. Terminating running threads for {}"
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.namePrefix:Ljava/lang/String;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
9: aload 0
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.shutdownNow:()Ljava/util/List;
pop
10: StackMap locals:
StackMap stack:
getstatic io.ebeaninternal.server.executor.DaemonScheduleThreadPool.logger:Lorg/slf4j/Logger;
ldc "Shutdown complete for {}"
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.namePrefix:Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
11: goto 19
StackMap locals:
StackMap stack: java.lang.Exception
12: astore 1
start local 1 13: getstatic io.ebeaninternal.server.executor.DaemonScheduleThreadPool.logger:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Error during shutdown of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.namePrefix:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
14: aload 1
invokevirtual java.lang.Exception.printStackTrace:()V
end local 1 15: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 2
17: aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 2
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.executor.DaemonScheduleThreadPool.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
20: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/ebeaninternal/server/executor/DaemonScheduleThreadPool;
13 15 1 e Ljava/lang/Exception;
Exception table:
from to target type
5 11 12 Class java.lang.Exception
1 3 16 any
5 16 16 any
}
SourceFile: "DaemonScheduleThreadPool.java"