public abstract class org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker
  super_class: java.lang.Object
{
  protected java.lang.Thread t;
    descriptor: Ljava/lang/Thread;
    flags: (0x0004) ACC_PROTECTED

  protected volatile long transactionExpirationTime;
    descriptor: J
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  final org.glassfish.grizzly.threadpool.AbstractThreadPool this$0;
    descriptor: Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.glassfish.grizzly.threadpool.AbstractThreadPool);
    descriptor: (Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker this
         0: .line 506
            aload 0 /* this */
            aload 1
            putfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;
    MethodParameters:
        Name  Flags
      this$0  final

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker this
         0: .line 514
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.onWorkerStarted:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;)V
         1: .line 515
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork:()V
         2: .line 516
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 517
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.onWorkerExit:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;)V
         5: .line 518
            aload 1
            athrow
         6: .line 517
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.onWorkerExit:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;)V
         7: .line 519
            return
        end local 0 // org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;
      Exception table:
        from    to  target  type
           0     3       3  any

  protected void doWork();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker this
         0: .line 522
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.t:Ljava/lang/Thread;
            astore 1 /* thread */
        start local 1 // java.lang.Thread thread
         1: .line 526
      StackMap locals: java.lang.Thread
      StackMap stack:
            invokestatic java.lang.Thread.interrupted:()Z
            pop
         2: .line 527
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.getTask:()Ljava/lang/Runnable;
            astore 2 /* r */
        start local 2 // java.lang.Runnable r
         3: .line 528
            aload 2 /* r */
            getstatic org.glassfish.grizzly.threadpool.AbstractThreadPool.poison:Ljava/lang/Runnable;
            if_acmpeq 4
            aload 2 /* r */
            ifnonnull 5
         4: .line 529
      StackMap locals: java.lang.Runnable
      StackMap stack:
            return
         5: .line 531
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 2 /* r */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.onTaskDequeued:(Ljava/lang/Runnable;)V
         6: .line 532
            aconst_null
            astore 3 /* error */
        start local 3 // java.lang.Throwable error
         7: .line 534
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            aload 1 /* thread */
            aload 2 /* r */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.beforeExecute:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;Ljava/lang/Thread;Ljava/lang/Runnable;)V
         8: .line 535
            aload 2 /* r */
            invokeinterface java.lang.Runnable.run:()V
         9: .line 536
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 2 /* r */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.onTaskCompletedEvent:(Ljava/lang/Runnable;)V
        10: .line 537
            goto 17
      StackMap locals: org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker java.lang.Thread java.lang.Runnable java.lang.Throwable
      StackMap stack: java.lang.Exception
        11: astore 4 /* e */
        start local 4 // java.lang.Exception e
        12: .line 538
            aload 4 /* e */
            astore 3 /* error */
        end local 4 // java.lang.Exception e
        13: .line 540
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            aload 1 /* thread */
            aload 2 /* r */
            aload 3 /* error */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.afterExecute:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;Ljava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Throwable;)V
            goto 1
        14: .line 539
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 540
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            aload 1 /* thread */
            aload 2 /* r */
            aload 3 /* error */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.afterExecute:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;Ljava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Throwable;)V
        16: .line 541
            aload 5
            athrow
        17: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.this$0:Lorg/glassfish/grizzly/threadpool/AbstractThreadPool;
            aload 0 /* this */
            aload 1 /* thread */
            aload 2 /* r */
            aload 3 /* error */
            invokevirtual org.glassfish.grizzly.threadpool.AbstractThreadPool.afterExecute:(Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;Ljava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable error
        end local 2 // java.lang.Runnable r
        18: .line 542
            goto 1
      StackMap locals: org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker java.lang.Thread
      StackMap stack: java.lang.Exception
        19: pop
        20: .line 524
            goto 1
        end local 1 // java.lang.Thread thread
        end local 0 // org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lorg/glassfish/grizzly/threadpool/AbstractThreadPool$Worker;
            1   21     1  thread  Ljava/lang/Thread;
            3   18     2       r  Ljava/lang/Runnable;
            7   18     3   error  Ljava/lang/Throwable;
           12   13     4       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7    10      11  Class java.lang.Exception
           7    13      14  any
           1     4      19  Class java.lang.Exception
           5    18      19  Class java.lang.Exception

  protected abstract java.lang.Runnable getTask();
    descriptor: ()Ljava/lang/Runnable;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.lang.InterruptedException
}
SourceFile: "AbstractThreadPool.java"
NestHost: org.glassfish.grizzly.threadpool.AbstractThreadPool
InnerClasses:
  public abstract Worker = org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker of org.glassfish.grizzly.threadpool.AbstractThreadPool