public class org.apache.tomcat.util.net.NioEndpoint$Poller implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.tomcat.util.net.NioEndpoint$Poller
  super_class: java.lang.Object
{
  private java.nio.channels.Selector selector;
    descriptor: Ljava/nio/channels/Selector;
    flags: (0x0002) ACC_PRIVATE

  private final org.apache.tomcat.util.collections.SynchronizedQueue<org.apache.tomcat.util.net.NioEndpoint$PollerEvent> events;
    descriptor: Lorg/apache/tomcat/util/collections/SynchronizedQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/apache/tomcat/util/collections/SynchronizedQueue<Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;>;

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

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

  private java.util.concurrent.atomic.AtomicLong wakeupCounter;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0002) ACC_PRIVATE

  private volatile int keyCount;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  final org.apache.tomcat.util.net.NioEndpoint this$0;
    descriptor: Lorg/apache/tomcat/util/net/NioEndpoint;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$apache$tomcat$util$net$SendfileKeepAliveState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(org.apache.tomcat.util.net.NioEndpoint);
    descriptor: (Lorg/apache/tomcat/util/net/NioEndpoint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
         0: .line 480
            aload 0 /* this */
            aload 1
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 469
            aload 0 /* this */
         2: .line 470
            new org.apache.tomcat.util.collections.SynchronizedQueue
            dup
            invokespecial org.apache.tomcat.util.collections.SynchronizedQueue.<init>:()V
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.events:Lorg/apache/tomcat/util/collections/SynchronizedQueue;
         3: .line 472
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
         4: .line 474
            aload 0 /* this */
            lconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.nextExpiration:J
         5: .line 476
            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.net.NioEndpoint$Poller.wakeupCounter:Ljava/util/concurrent/atomic/AtomicLong;
         6: .line 478
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
         7: .line 481
            aload 0 /* this */
            invokestatic java.nio.channels.Selector.open:()Ljava/nio/channels/Selector;
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
         8: .line 482
            return
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      this$0  final

  public int getKeyCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
         0: .line 484
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
            ireturn
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;

  public java.nio.channels.Selector getSelector();
    descriptor: ()Ljava/nio/channels/Selector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
         0: .line 486
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            areturn
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;

  protected void destroy();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
         0: .line 495
            aload 0 /* this */
            iconst_1
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
         1: .line 496
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
            pop
         2: .line 497
            return
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;

  private void addEvent(org.apache.tomcat.util.net.NioEndpoint$PollerEvent);
    descriptor: (Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent event
         0: .line 500
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.events:Lorg/apache/tomcat/util/collections/SynchronizedQueue;
            aload 1 /* event */
            invokevirtual org.apache.tomcat.util.collections.SynchronizedQueue.offer:(Ljava/lang/Object;)Z
            pop
         1: .line 501
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.wakeupCounter:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            lconst_0
            lcmp
            ifne 3
         2: .line 502
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.wakeup:()Ljava/nio/channels/Selector;
            pop
         3: .line 504
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent event
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0    4     1  event  Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;
    MethodParameters:
       Name  Flags
      event  

  public void add(org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper, int);
    descriptor: (Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        start local 2 // int interestOps
         0: .line 517
            aconst_null
            astore 3 /* r */
        start local 3 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent r
         1: .line 518
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.eventCache:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            ifnull 3
         2: .line 519
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.eventCache:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            invokevirtual org.apache.tomcat.util.collections.SynchronizedStack.pop:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioEndpoint$PollerEvent
            astore 3 /* r */
         3: .line 521
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$PollerEvent
      StackMap stack:
            aload 3 /* r */
            ifnonnull 6
         4: .line 522
            new org.apache.tomcat.util.net.NioEndpoint$PollerEvent
            dup
            aload 1 /* socketWrapper */
            iload 2 /* interestOps */
            invokespecial org.apache.tomcat.util.net.NioEndpoint$PollerEvent.<init>:(Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
            astore 3 /* r */
         5: .line 523
            goto 7
         6: .line 524
      StackMap locals:
      StackMap stack:
            aload 3 /* r */
            aload 1 /* socketWrapper */
            iload 2 /* interestOps */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$PollerEvent.reset:(Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
         7: .line 526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* r */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.addEvent:(Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;)V
         8: .line 527
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifeq 10
         9: .line 528
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            aload 1 /* socketWrapper */
            getstatic org.apache.tomcat.util.net.SocketEvent.STOP:Lorg/apache/tomcat/util/net/SocketEvent;
            iconst_0
            invokevirtual org.apache.tomcat.util.net.NioEndpoint.processSocket:(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;Z)Z
            pop
        10: .line 530
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent r
        end local 2 // int interestOps
        end local 1 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0   11     1  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            0   11     2    interestOps  I
            1   11     3              r  Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;
    MethodParameters:
               Name  Flags
      socketWrapper  
      interestOps    

  public boolean events();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
         0: .line 539
            iconst_0
            istore 1 /* result */
        start local 1 // boolean result
         1: .line 541
            aconst_null
            astore 2 /* pe */
        start local 2 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent pe
         2: .line 542
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.events:Lorg/apache/tomcat/util/collections/SynchronizedQueue;
            invokevirtual org.apache.tomcat.util.collections.SynchronizedQueue.size:()I
            istore 4 /* size */
        start local 4 // int size
         4: goto 37
         5: .line 543
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int org.apache.tomcat.util.net.NioEndpoint$PollerEvent int int
      StackMap stack:
            iconst_1
            istore 1 /* result */
         6: .line 544
            aload 2 /* pe */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$PollerEvent.getSocketWrapper:()Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            astore 5 /* socketWrapper */
        start local 5 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
         7: .line 545
            aload 5 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSocket:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioChannel
            invokevirtual org.apache.tomcat.util.net.NioChannel.getIOChannel:()Ljava/nio/channels/SocketChannel;
            astore 6 /* sc */
        start local 6 // java.nio.channels.SocketChannel sc
         8: .line 546
            aload 2 /* pe */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$PollerEvent.getInterestOps:()I
            istore 7 /* interestOps */
        start local 7 // int interestOps
         9: .line 547
            aload 6 /* sc */
            ifnonnull 13
        10: .line 548
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.nio.nullSocketChannel"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
        11: .line 549
            aload 5 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.close:()V
        12: .line 550
            goto 33
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper java.nio.channels.SocketChannel int
      StackMap stack:
        13: iload 7 /* interestOps */
            sipush 256
            if_icmpne 19
        14: .line 552
            aload 6 /* sc */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.getSelector:()Ljava/nio/channels/Selector;
            iconst_1
            aload 5 /* socketWrapper */
            invokevirtual java.nio.channels.SocketChannel.register:(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;
            pop
        15: .line 553
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Exception
        16: astore 8 /* x */
        start local 8 // java.lang.Exception x
        17: .line 554
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.nio.registerFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 8 /* x */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 8 // java.lang.Exception x
        18: .line 556
            goto 33
        19: .line 557
      StackMap locals:
      StackMap stack:
            aload 6 /* sc */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.getSelector:()Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.SocketChannel.keyFor:(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;
            astore 8 /* key */
        start local 8 // java.nio.channels.SelectionKey key
        20: .line 558
            aload 8 /* key */
            ifnonnull 23
        21: .line 564
            aload 5 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.close:()V
        22: .line 565
            goto 33
        23: .line 566
      StackMap locals: java.nio.channels.SelectionKey
      StackMap stack:
            aload 8 /* key */
            invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
            astore 9 /* attachment */
        start local 9 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper attachment
        24: .line 567
            aload 9 /* attachment */
            ifnull 32
        25: .line 570
            aload 8 /* key */
            invokevirtual java.nio.channels.SelectionKey.interestOps:()I
            iload 7 /* interestOps */
            ior
            istore 10 /* ops */
        start local 10 // int ops
        26: .line 571
            aload 9 /* attachment */
            iload 10 /* ops */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:(I)I
            pop
        27: .line 572
            aload 8 /* key */
            iload 10 /* ops */
            invokevirtual java.nio.channels.SelectionKey.interestOps:(I)Ljava/nio/channels/SelectionKey;
            pop
        end local 10 // int ops
        28: .line 573
            goto 33
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int org.apache.tomcat.util.net.NioEndpoint$PollerEvent int int org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper java.nio.channels.SocketChannel int java.nio.channels.SelectionKey org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
      StackMap stack: java.nio.channels.CancelledKeyException
        29: pop
        30: .line 574
            aload 0 /* this */
            aload 8 /* key */
            aload 5 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        31: .line 576
            goto 33
        32: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* key */
            aload 5 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        end local 9 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper attachment
        end local 8 // java.nio.channels.SelectionKey key
        33: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.running:Z
            ifeq 36
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.paused:Z
            ifne 36
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.eventCache:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            ifnull 36
        34: .line 582
            aload 2 /* pe */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$PollerEvent.reset:()V
        35: .line 583
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.eventCache:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            aload 2 /* pe */
            invokevirtual org.apache.tomcat.util.collections.SynchronizedStack.push:(Ljava/lang/Object;)Z
            pop
        end local 7 // int interestOps
        end local 6 // java.nio.channels.SocketChannel sc
        end local 5 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        36: .line 542
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 3 /* i */
            iload 4 /* size */
            if_icmpge 38
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.events:Lorg/apache/tomcat/util/collections/SynchronizedQueue;
            invokevirtual org.apache.tomcat.util.collections.SynchronizedQueue.poll:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioEndpoint$PollerEvent
            dup
            astore 2 /* pe */
            ifnonnull 5
        end local 4 // int size
        end local 3 // int i
        38: .line 587
      StackMap locals:
      StackMap stack:
            iload 1 /* result */
            ireturn
        end local 2 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent pe
        end local 1 // boolean result
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   39     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            1   39     1         result  Z
            2   39     2             pe  Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;
            3   38     3              i  I
            4   38     4           size  I
            7   36     5  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            8   36     6             sc  Ljava/nio/channels/SocketChannel;
            9   36     7    interestOps  I
           17   18     8              x  Ljava/lang/Exception;
           20   33     8            key  Ljava/nio/channels/SelectionKey;
           24   33     9     attachment  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
           26   28    10            ops  I
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.Exception
          25    28      29  Class java.nio.channels.CancelledKeyException

  public void register(org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper);
    descriptor: (Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
         0: .line 596
            aload 1 /* socketWrapper */
            iconst_1
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:(I)I
            pop
         1: .line 597
            aconst_null
            astore 2 /* event */
        start local 2 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent event
         2: .line 598
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.eventCache:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            ifnull 4
         3: .line 599
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.eventCache:Lorg/apache/tomcat/util/collections/SynchronizedStack;
            invokevirtual org.apache.tomcat.util.collections.SynchronizedStack.pop:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioEndpoint$PollerEvent
            astore 2 /* event */
         4: .line 601
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$PollerEvent
      StackMap stack:
            aload 2 /* event */
            ifnonnull 7
         5: .line 602
            new org.apache.tomcat.util.net.NioEndpoint$PollerEvent
            dup
            aload 1 /* socketWrapper */
            sipush 256
            invokespecial org.apache.tomcat.util.net.NioEndpoint$PollerEvent.<init>:(Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
            astore 2 /* event */
         6: .line 603
            goto 8
         7: .line 604
      StackMap locals:
      StackMap stack:
            aload 2 /* event */
            aload 1 /* socketWrapper */
            sipush 256
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$PollerEvent.reset:(Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
         8: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* event */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.addEvent:(Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;)V
         9: .line 607
            return
        end local 2 // org.apache.tomcat.util.net.NioEndpoint$PollerEvent event
        end local 1 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0   10     1  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            2   10     2          event  Lorg/apache/tomcat/util/net/NioEndpoint$PollerEvent;
    MethodParameters:
               Name  Flags
      socketWrapper  final

  public void cancelledKey(java.nio.channels.SelectionKey, org.apache.tomcat.util.net.SocketWrapperBase<org.apache.tomcat.util.net.NioChannel>);
    descriptor: (Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // java.nio.channels.SelectionKey sk
        start local 2 // org.apache.tomcat.util.net.SocketWrapperBase socketWrapper
         0: .line 610
            invokestatic org.apache.tomcat.util.compat.JreCompat.isJre11Available:()Z
            ifeq 3
            aload 2 /* socketWrapper */
            ifnull 3
         1: .line 611
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.close:()V
         2: .line 612
            goto 20
         3: .line 619
      StackMap locals:
      StackMap stack:
            aload 1 /* sk */
            ifnull 18
         4: .line 620
            aload 1 /* sk */
            aconst_null
            invokevirtual java.nio.channels.SelectionKey.attach:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 621
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.isValid:()Z
            ifeq 18
         6: .line 622
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.cancel:()V
         7: .line 625
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         9: .line 626
            aload 3 /* e */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        10: .line 627
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 12
        11: .line 628
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.debug.channelCloseFail"
            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 // java.lang.Throwable e
        12: .line 631
      StackMap locals:
      StackMap stack:
            aload 2 /* socketWrapper */
            ifnull 20
        13: .line 632
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.close:()V
            goto 20
        14: .line 630
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        15: .line 631
            aload 2 /* socketWrapper */
            ifnull 17
        16: .line 632
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.close:()V
        17: .line 634
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller java.nio.channels.SelectionKey org.apache.tomcat.util.net.SocketWrapperBase top java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        18: .line 631
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller java.nio.channels.SelectionKey org.apache.tomcat.util.net.SocketWrapperBase
      StackMap stack:
            aload 2 /* socketWrapper */
            ifnull 20
        19: .line 632
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.close:()V
        20: .line 636
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.tomcat.util.net.SocketWrapperBase socketWrapper
        end local 1 // java.nio.channels.SelectionKey sk
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0   21     1             sk  Ljava/nio/channels/SelectionKey;
            0   21     2  socketWrapper  Lorg/apache/tomcat/util/net/SocketWrapperBase<Lorg/apache/tomcat/util/net/NioChannel;>;
            9   12     3              e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.Throwable
           3    12      14  any
    Signature: (Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase<Lorg/apache/tomcat/util/net/NioChannel;>;)V
    MethodParameters:
               Name  Flags
      sk             
      socketWrapper  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
         0: .line 648
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* hasEvents */
        start local 1 // boolean hasEvents
         1: .line 651
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifne 8
         2: .line 652
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.events:()Z
            istore 1 /* hasEvents */
         3: .line 653
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.wakeupCounter:Ljava/util/concurrent/atomic/AtomicLong;
            ldc -1
            invokevirtual java.util.concurrent.atomic.AtomicLong.getAndSet:(J)J
            lconst_0
            lcmp
            ifle 6
         4: .line 656
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.selectNow:()I
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
         5: .line 657
            goto 7
         6: .line 658
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.selectorTimeout:J
            invokevirtual java.nio.channels.Selector.select:(J)I
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
         7: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.wakeupCounter:Ljava/util/concurrent/atomic/AtomicLong;
            lconst_0
            invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
         8: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifeq 16
         9: .line 663
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.events:()Z
            pop
        10: .line 664
            aload 0 /* this */
            iconst_0
            iconst_0
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.timeout:(IZ)V
        11: .line 666
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.close:()V
        12: .line 667
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        13: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
        14: .line 668
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.nio.selectorCloseFail"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* ioe */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // java.io.IOException ioe
        15: .line 670
            goto 35
        16: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
            ifne 23
        17: .line 674
            iload 1 /* hasEvents */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.events:()Z
            ior
            istore 1 /* hasEvents */
        18: .line 676
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 2 /* x */
        start local 2 // java.lang.Throwable x
        20: .line 677
            aload 2 /* x */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        21: .line 678
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.nio.selectorLoopError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 2 /* x */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        22: .line 679
            goto 0
        end local 2 // java.lang.Throwable x
        23: .line 683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
            ifle 24
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.selectedKeys:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            goto 25
      StackMap locals:
      StackMap stack:
        24: aconst_null
        25: .line 682
      StackMap locals:
      StackMap stack: java.util.Iterator
            astore 2 /* iterator */
        start local 2 // java.util.Iterator iterator
        26: .line 686
            goto 32
        27: .line 687
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.channels.SelectionKey
            astore 3 /* sk */
        start local 3 // java.nio.channels.SelectionKey sk
        28: .line 688
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.remove:()V
        29: .line 689
            aload 3 /* sk */
            invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
            astore 4 /* socketWrapper */
        start local 4 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        30: .line 692
            aload 4 /* socketWrapper */
            ifnull 32
        31: .line 693
            aload 0 /* this */
            aload 3 /* sk */
            aload 4 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.processKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;)V
        end local 4 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 3 // java.nio.channels.SelectionKey sk
        32: .line 686
      StackMap locals:
      StackMap stack:
            aload 2 /* iterator */
            ifnull 33
            aload 2 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        33: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.keyCount:I
            iload 1 /* hasEvents */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.timeout:(IZ)V
        end local 2 // java.util.Iterator iterator
        end local 1 // boolean hasEvents
        34: .line 646
            goto 0
        35: .line 701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint.getStopLatch:()Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        36: .line 702
            return
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            1   34     1      hasEvents  Z
           14   15     2            ioe  Ljava/io/IOException;
           20   23     2              x  Ljava/lang/Throwable;
           26   34     2       iterator  Ljava/util/Iterator<Ljava/nio/channels/SelectionKey;>;
           28   32     3             sk  Ljava/nio/channels/SelectionKey;
           30   32     4  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
      Exception table:
        from    to  target  type
          11    12      13  Class java.io.IOException
           1    15      19  Class java.lang.Throwable
          16    18      19  Class java.lang.Throwable

  protected void processKey(java.nio.channels.SelectionKey, org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper);
    descriptor: (Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // java.nio.channels.SelectionKey sk
        start local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
         0: .line 706
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifeq 3
         1: .line 707
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
         2: .line 708
            goto 50
      StackMap locals:
      StackMap stack:
         3: aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.isValid:()Z
            ifeq 43
         4: .line 709
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.isReadable:()Z
            ifne 5
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.isWritable:()Z
            ifeq 50
         5: .line 710
      StackMap locals:
      StackMap stack:
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSendfileData:()Lorg/apache/tomcat/util/net/NioEndpoint$SendfileData;
            ifnull 8
         6: .line 711
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            iconst_0
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.processSendfile:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;Z)Lorg/apache/tomcat/util/net/SendfileState;
            pop
         7: .line 712
            goto 50
         8: .line 713
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.readyOps:()I
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.unreg:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
         9: .line 714
            iconst_0
            istore 3 /* closeSocket */
        start local 3 // boolean closeSocket
        10: .line 716
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.isReadable:()Z
            ifeq 25
        11: .line 717
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            ifnull 15
        12: .line 718
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.process:()Z
            ifne 25
        13: .line 719
            iconst_1
            istore 3 /* closeSocket */
        14: .line 721
            goto 25
      StackMap locals: int
      StackMap stack:
        15: aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readBlocking:Z
            ifeq 23
        16: .line 722
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        17: .line 723
            aload 2 /* socketWrapper */
            iconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readBlocking:Z
        18: .line 724
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notify:()V
        19: .line 722
            aload 4
            monitorexit
        20: goto 25
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller java.nio.channels.SelectionKey org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper int java.lang.Object
      StackMap stack: java.lang.Throwable
        21: aload 4
            monitorexit
        22: athrow
        23: .line 726
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            aload 2 /* socketWrapper */
            getstatic org.apache.tomcat.util.net.SocketEvent.OPEN_READ:Lorg/apache/tomcat/util/net/SocketEvent;
            iconst_1
            invokevirtual org.apache.tomcat.util.net.NioEndpoint.processSocket:(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;Z)Z
            ifne 25
        24: .line 727
            iconst_1
            istore 3 /* closeSocket */
        25: .line 730
      StackMap locals:
      StackMap stack:
            iload 3 /* closeSocket */
            ifne 40
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.isWritable:()Z
            ifeq 40
        26: .line 731
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            ifnull 30
        27: .line 732
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.process:()Z
            ifne 40
        28: .line 733
            iconst_1
            istore 3 /* closeSocket */
        29: .line 735
            goto 40
      StackMap locals:
      StackMap stack:
        30: aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeBlocking:Z
            ifeq 38
        31: .line 736
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        32: .line 737
            aload 2 /* socketWrapper */
            iconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeBlocking:Z
        33: .line 738
            aload 2 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notify:()V
        34: .line 736
            aload 4
            monitorexit
        35: goto 40
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller java.nio.channels.SelectionKey org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper int java.lang.Object
      StackMap stack: java.lang.Throwable
        36: aload 4
            monitorexit
        37: athrow
        38: .line 740
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            aload 2 /* socketWrapper */
            getstatic org.apache.tomcat.util.net.SocketEvent.OPEN_WRITE:Lorg/apache/tomcat/util/net/SocketEvent;
            iconst_1
            invokevirtual org.apache.tomcat.util.net.NioEndpoint.processSocket:(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;Z)Z
            ifne 40
        39: .line 741
            iconst_1
            istore 3 /* closeSocket */
        40: .line 744
      StackMap locals:
      StackMap stack:
            iload 3 /* closeSocket */
            ifeq 50
        41: .line 745
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        end local 3 // boolean closeSocket
        42: .line 749
            goto 50
        43: .line 751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        44: .line 753
            goto 50
      StackMap locals:
      StackMap stack: java.nio.channels.CancelledKeyException
        45: pop
        46: .line 754
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
            goto 50
        47: .line 755
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
        48: .line 756
            aload 3 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        49: .line 757
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.nio.keyProcessingError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* t */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
        50: .line 759
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 1 // java.nio.channels.SelectionKey sk
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   51     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0   51     1             sk  Ljava/nio/channels/SelectionKey;
            0   51     2  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
           10   42     3    closeSocket  Z
           48   50     3              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          17    20      21  any
          21    22      21  any
          32    35      36  any
          36    37      36  any
           0    44      45  Class java.nio.channels.CancelledKeyException
           0    44      47  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      sk             
      socketWrapper  

  public org.apache.tomcat.util.net.SendfileState processSendfile(java.nio.channels.SelectionKey, org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper, boolean);
    descriptor: (Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;Z)Lorg/apache/tomcat/util/net/SendfileState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // java.nio.channels.SelectionKey sk
        start local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        start local 3 // boolean calledByProcessor
         0: .line 763
            aconst_null
            astore 4 /* sc */
        start local 4 // org.apache.tomcat.util.net.NioChannel sc
         1: .line 765
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.readyOps:()I
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.unreg:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
         2: .line 766
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSendfileData:()Lorg/apache/tomcat/util/net/NioEndpoint$SendfileData;
            astore 5 /* sd */
        start local 5 // org.apache.tomcat.util.net.NioEndpoint$SendfileData sd
         3: .line 768
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 5
         4: .line 769
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Processing send file for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fileName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
         5: .line 772
      StackMap locals: org.apache.tomcat.util.net.NioChannel org.apache.tomcat.util.net.NioEndpoint$SendfileData
      StackMap stack:
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fchannel:Ljava/nio/channels/FileChannel;
            ifnonnull 9
         6: .line 774
            new java.io.File
            dup
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fileName:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 6 /* f */
        start local 6 // java.io.File f
         7: .line 776
            new java.io.FileInputStream
            dup
            aload 6 /* f */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 7 /* fis */
        start local 7 // java.io.FileInputStream fis
         8: .line 777
            aload 5 /* sd */
            aload 7 /* fis */
            invokevirtual java.io.FileInputStream.getChannel:()Ljava/nio/channels/FileChannel;
            putfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fchannel:Ljava/nio/channels/FileChannel;
        end local 7 // java.io.FileInputStream fis
        end local 6 // java.io.File f
         9: .line 781
      StackMap locals:
      StackMap stack:
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSocket:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioChannel
            astore 4 /* sc */
        10: .line 783
            aload 4 /* sc */
            instanceof org.apache.tomcat.util.net.SecureNioChannel
            ifeq 11
            aload 4 /* sc */
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 4 /* sc */
            invokevirtual org.apache.tomcat.util.net.NioChannel.getIOChannel:()Ljava/nio/channels/SocketChannel;
      StackMap locals:
      StackMap stack: java.nio.channels.ByteChannel
        12: astore 6 /* wc */
        start local 6 // java.nio.channels.WritableByteChannel wc
        13: .line 786
            aload 4 /* sc */
            invokevirtual org.apache.tomcat.util.net.NioChannel.getOutboundRemaining:()I
            ifle 17
        14: .line 787
            aload 4 /* sc */
            invokevirtual org.apache.tomcat.util.net.NioChannel.flushOutbound:()Z
            ifeq 25
        15: .line 788
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.updateLastWrite:()V
        16: .line 790
            goto 25
        17: .line 791
      StackMap locals: java.nio.channels.WritableByteChannel
      StackMap stack:
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fchannel:Ljava/nio/channels/FileChannel;
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.pos:J
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.length:J
            aload 6 /* wc */
            invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
            lstore 7 /* written */
        start local 7 // long written
        18: .line 792
            lload 7 /* written */
            lconst_0
            lcmp
            ifle 23
        19: .line 793
            aload 5 /* sd */
            dup
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.pos:J
            lload 7 /* written */
            ladd
            putfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.pos:J
        20: .line 794
            aload 5 /* sd */
            dup
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.length:J
            lload 7 /* written */
            lsub
            putfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.length:J
        21: .line 795
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.updateLastWrite:()V
        22: .line 796
            goto 25
        23: .line 799
      StackMap locals: long
      StackMap stack:
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fchannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.size:()J
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.pos:J
            lcmp
            ifgt 25
        24: .line 800
            new java.io.IOException
            dup
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.sendfile.tooMuchData"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // long written
        25: .line 804
      StackMap locals:
      StackMap stack:
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.length:J
            lconst_0
            lcmp
            ifgt 48
            aload 4 /* sc */
            invokevirtual org.apache.tomcat.util.net.NioChannel.getOutboundRemaining:()I
            ifgt 48
        26: .line 805
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 28
        27: .line 806
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Send file complete for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fileName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        28: .line 808
      StackMap locals:
      StackMap stack:
            aload 2 /* socketWrapper */
            aconst_null
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.setSendfileData:(Lorg/apache/tomcat/util/net/NioEndpoint$SendfileData;)V
        29: .line 810
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fchannel:Ljava/nio/channels/FileChannel;
            invokevirtual java.nio.channels.FileChannel.close:()V
        30: .line 811
            goto 32
      StackMap locals:
      StackMap stack: java.lang.Exception
        31: pop
        32: .line 816
      StackMap locals:
      StackMap stack:
            iload 3 /* calledByProcessor */
            ifne 46
        33: .line 817
            invokestatic org.apache.tomcat.util.net.NioEndpoint$Poller.$SWITCH_TABLE$org$apache$tomcat$util$net$SendfileKeepAliveState:()[I
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.keepAliveState:Lorg/apache/tomcat/util/net/SendfileKeepAliveState;
            invokevirtual org.apache.tomcat.util.net.SendfileKeepAliveState.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 34
                    2: 38
                    3: 43
              default: 46
          }
        34: .line 819
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 36
        35: .line 820
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            ldc "Send file connection is being closed"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        36: .line 822
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.poller:Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        37: .line 823
            goto 46
        38: .line 826
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 40
        39: .line 827
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            ldc "Connection is keep alive, processing pipe-lined data"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        40: .line 829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            aload 2 /* socketWrapper */
            getstatic org.apache.tomcat.util.net.SocketEvent.OPEN_READ:Lorg/apache/tomcat/util/net/SocketEvent;
            iconst_1
            invokevirtual org.apache.tomcat.util.net.NioEndpoint.processSocket:(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;Z)Z
            ifne 46
        41: .line 830
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.poller:Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        42: .line 832
            goto 46
        43: .line 835
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 45
        44: .line 836
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            ldc "Connection is keep alive, registering back for OP_READ"
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        45: .line 838
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            iconst_1
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.reg:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
        46: .line 843
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.SendfileState.DONE:Lorg/apache/tomcat/util/net/SendfileState;
        47: areturn
        48: .line 845
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 50
        49: .line 846
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "OP_WRITE for sendfile: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sd */
            getfield org.apache.tomcat.util.net.NioEndpoint$SendfileData.fileName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
        50: .line 848
      StackMap locals:
      StackMap stack:
            iload 3 /* calledByProcessor */
            ifeq 53
        51: .line 849
            aload 0 /* this */
            aload 2 /* socketWrapper */
            iconst_4
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.add:(Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
        52: .line 850
            goto 54
        53: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            iconst_4
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.reg:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
        54: .line 853
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.SendfileState.PENDING:Lorg/apache/tomcat/util/net/SendfileState;
        55: areturn
        end local 6 // java.nio.channels.WritableByteChannel wc
        end local 5 // org.apache.tomcat.util.net.NioEndpoint$SendfileData sd
        56: .line 855
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller java.nio.channels.SelectionKey org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper int org.apache.tomcat.util.net.NioChannel
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        57: .line 856
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 59
        58: .line 857
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            ldc "Unable to complete sendfile request:"
            aload 5 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        59: .line 859
      StackMap locals: java.io.IOException
      StackMap stack:
            iload 3 /* calledByProcessor */
            ifne 61
            aload 4 /* sc */
            ifnull 61
        60: .line 860
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.poller:Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        61: .line 862
      StackMap locals:
      StackMap stack:
            getstatic org.apache.tomcat.util.net.SendfileState.ERROR:Lorg/apache/tomcat/util/net/SendfileState;
            areturn
        end local 5 // java.io.IOException e
        62: .line 863
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller java.nio.channels.SelectionKey org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper int org.apache.tomcat.util.net.NioChannel
      StackMap stack: java.lang.Throwable
            astore 5 /* t */
        start local 5 // java.lang.Throwable t
        63: .line 864
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.sendfile.error"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* t */
            invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        64: .line 865
            iload 3 /* calledByProcessor */
            ifne 66
            aload 4 /* sc */
            ifnull 66
        65: .line 866
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.poller:Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        66: .line 868
      StackMap locals: java.lang.Throwable
      StackMap stack:
            getstatic org.apache.tomcat.util.net.SendfileState.ERROR:Lorg/apache/tomcat/util/net/SendfileState;
            areturn
        end local 5 // java.lang.Throwable t
        end local 4 // org.apache.tomcat.util.net.NioChannel sc
        end local 3 // boolean calledByProcessor
        end local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 1 // java.nio.channels.SelectionKey sk
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   67     0               this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0   67     1                 sk  Ljava/nio/channels/SelectionKey;
            0   67     2      socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            0   67     3  calledByProcessor  Z
            1   67     4                 sc  Lorg/apache/tomcat/util/net/NioChannel;
            3   56     5                 sd  Lorg/apache/tomcat/util/net/NioEndpoint$SendfileData;
            7    9     6                  f  Ljava/io/File;
            8    9     7                fis  Ljava/io/FileInputStream;
           13   56     6                 wc  Ljava/nio/channels/WritableByteChannel;
           18   25     7            written  J
           57   62     5                  e  Ljava/io/IOException;
           63   67     5                  t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          29    30      31  Class java.lang.Exception
           1    47      56  Class java.io.IOException
          48    55      56  Class java.io.IOException
           1    47      62  Class java.lang.Throwable
          48    55      62  Class java.lang.Throwable
    MethodParameters:
                   Name  Flags
      sk                 
      socketWrapper      
      calledByProcessor  

  protected void unreg(java.nio.channels.SelectionKey, org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper, int);
    descriptor: (Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // java.nio.channels.SelectionKey sk
        start local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        start local 3 // int readyOps
         0: .line 874
            aload 0 /* this */
            aload 1 /* sk */
            aload 2 /* socketWrapper */
            aload 1 /* sk */
            invokevirtual java.nio.channels.SelectionKey.interestOps:()I
            iload 3 /* readyOps */
            iconst_m1
            ixor
            iand
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.reg:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
         1: .line 875
            return
        end local 3 // int readyOps
        end local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 1 // java.nio.channels.SelectionKey sk
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0    2     1             sk  Ljava/nio/channels/SelectionKey;
            0    2     2  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            0    2     3       readyOps  I
    MethodParameters:
               Name  Flags
      sk             
      socketWrapper  
      readyOps       

  protected void reg(java.nio.channels.SelectionKey, org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper, int);
    descriptor: (Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // java.nio.channels.SelectionKey sk
        start local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        start local 3 // int intops
         0: .line 878
            aload 1 /* sk */
            iload 3 /* intops */
            invokevirtual java.nio.channels.SelectionKey.interestOps:(I)Ljava/nio/channels/SelectionKey;
            pop
         1: .line 879
            aload 2 /* socketWrapper */
            iload 3 /* intops */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:(I)I
            pop
         2: .line 880
            return
        end local 3 // int intops
        end local 2 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 1 // java.nio.channels.SelectionKey sk
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0    3     1             sk  Ljava/nio/channels/SelectionKey;
            0    3     2  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            0    3     3         intops  I
    MethodParameters:
               Name  Flags
      sk             
      socketWrapper  
      intops         

  protected void timeout(int, boolean);
    descriptor: (IZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
        start local 1 // int keyCount
        start local 2 // boolean hasEvents
         0: .line 883
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 3 /* now */
        start local 3 // long now
         1: .line 891
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.nextExpiration:J
            lconst_0
            lcmp
            ifle 4
            iload 1 /* keyCount */
            ifgt 2
            iload 2 /* hasEvents */
            ifeq 4
      StackMap locals: long
      StackMap stack:
         2: lload 3 /* now */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.nextExpiration:J
            lcmp
            ifge 4
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifne 4
         3: .line 892
            return
         4: .line 894
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* keycount */
        start local 5 // int keycount
         5: .line 896
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.selector:Ljava/nio/channels/Selector;
            invokevirtual java.nio.channels.Selector.keys:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 48
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.channels.SelectionKey
            astore 6 /* key */
        start local 6 // java.nio.channels.SelectionKey key
         7: .line 897
            iinc 5 /* keycount */ 1
         8: .line 898
            aload 6 /* key */
            invokevirtual java.nio.channels.SelectionKey.attachment:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
            astore 8 /* socketWrapper */
        start local 8 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
         9: .line 900
            aload 8 /* socketWrapper */
            ifnonnull 12
        10: .line 902
            aload 0 /* this */
            aload 6 /* key */
            aconst_null
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        11: .line 903
            goto 48
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int java.nio.channels.SelectionKey java.util.Iterator org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
      StackMap stack:
        12: aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifeq 17
        13: .line 904
            aload 6 /* key */
            iconst_0
            invokevirtual java.nio.channels.SelectionKey.interestOps:(I)Ljava/nio/channels/SelectionKey;
            pop
        14: .line 906
            aload 8 /* socketWrapper */
            iconst_0
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:(I)I
            pop
        15: .line 907
            aload 0 /* this */
            aload 6 /* key */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        16: .line 908
            goto 48
      StackMap locals:
      StackMap stack:
        17: aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:()I
            iconst_1
            iand
            iconst_1
            if_icmpeq 19
        18: .line 909
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:()I
            iconst_4
            iand
            iconst_4
            if_icmpne 48
        19: .line 910
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* readTimeout */
        start local 9 // boolean readTimeout
        20: .line 911
            iconst_0
            istore 10 /* writeTimeout */
        start local 10 // boolean writeTimeout
        21: .line 913
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:()I
            iconst_1
            iand
            iconst_1
            if_icmpne 26
        22: .line 914
            lload 3 /* now */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getLastRead:()J
            lsub
            lstore 11 /* delta */
        start local 11 // long delta
        23: .line 915
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getReadTimeout:()J
            lstore 13 /* timeout */
        start local 13 // long timeout
        24: .line 916
            lload 13 /* timeout */
            lconst_0
            lcmp
            ifle 26
            lload 11 /* delta */
            lload 13 /* timeout */
            lcmp
            ifle 26
        25: .line 917
            iconst_1
            istore 9 /* readTimeout */
        end local 13 // long timeout
        end local 11 // long delta
        26: .line 921
      StackMap locals: int int
      StackMap stack:
            iload 9 /* readTimeout */
            ifne 31
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:()I
            iconst_4
            iand
            iconst_4
            if_icmpne 31
        27: .line 922
            lload 3 /* now */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getLastWrite:()J
            lsub
            lstore 11 /* delta */
        start local 11 // long delta
        28: .line 923
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getWriteTimeout:()J
            lstore 13 /* timeout */
        start local 13 // long timeout
        29: .line 924
            lload 13 /* timeout */
            lconst_0
            lcmp
            ifle 31
            lload 11 /* delta */
            lload 13 /* timeout */
            lcmp
            ifle 31
        30: .line 925
            iconst_1
            istore 10 /* writeTimeout */
        end local 13 // long timeout
        end local 11 // long delta
        31: .line 928
      StackMap locals:
      StackMap stack:
            iload 9 /* readTimeout */
            ifne 32
            iload 10 /* writeTimeout */
            ifeq 48
        32: .line 929
      StackMap locals:
      StackMap stack:
            aload 6 /* key */
            iconst_0
            invokevirtual java.nio.channels.SelectionKey.interestOps:(I)Ljava/nio/channels/SelectionKey;
            pop
        33: .line 931
            aload 8 /* socketWrapper */
            iconst_0
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.interestOps:(I)I
            pop
        34: .line 932
            aload 8 /* socketWrapper */
            new java.net.SocketTimeoutException
            dup
            invokespecial java.net.SocketTimeoutException.<init>:()V
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.setError:(Ljava/io/IOException;)V
        35: .line 933
            iload 9 /* readTimeout */
            ifeq 39
            aload 8 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            ifnull 39
        36: .line 934
            aload 8 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.process:()Z
            ifne 48
        37: .line 935
            aload 0 /* this */
            aload 6 /* key */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        38: .line 937
            goto 48
      StackMap locals:
      StackMap stack:
        39: iload 10 /* writeTimeout */
            ifeq 43
            aload 8 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            ifnull 43
        40: .line 938
            aload 8 /* socketWrapper */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.process:()Z
            ifne 48
        41: .line 939
            aload 0 /* this */
            aload 6 /* key */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        42: .line 941
            goto 48
      StackMap locals:
      StackMap stack:
        43: aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            aload 8 /* socketWrapper */
            getstatic org.apache.tomcat.util.net.SocketEvent.ERROR:Lorg/apache/tomcat/util/net/SocketEvent;
            iconst_1
            invokevirtual org.apache.tomcat.util.net.NioEndpoint.processSocket:(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;Z)Z
            ifne 48
        44: .line 942
            aload 0 /* this */
            aload 6 /* key */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        end local 10 // boolean writeTimeout
        end local 9 // boolean readTimeout
        45: .line 946
            goto 48
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int java.nio.channels.SelectionKey java.util.Iterator org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
      StackMap stack: java.nio.channels.CancelledKeyException
        46: pop
        47: .line 947
            aload 0 /* this */
            aload 6 /* key */
            aload 8 /* socketWrapper */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey:(Ljava/nio/channels/SelectionKey;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
        end local 8 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper socketWrapper
        end local 6 // java.nio.channels.SelectionKey key
        48: .line 896
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        49: .line 950
            goto 52
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int
      StackMap stack: java.util.ConcurrentModificationException
        50: astore 6 /* cme */
        start local 6 // java.util.ConcurrentModificationException cme
        51: .line 952
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.tomcat.util.net.NioEndpoint.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "endpoint.nio.timeoutCme"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            aload 6 /* cme */
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 6 // java.util.ConcurrentModificationException cme
        52: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.nextExpiration:J
            lstore 6 /* prevExp */
        start local 6 // long prevExp
        53: .line 956
            aload 0 /* this */
            invokestatic java.lang.System.currentTimeMillis:()J
        54: .line 957
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.this$0:Lorg/apache/tomcat/util/net/NioEndpoint;
            getfield org.apache.tomcat.util.net.NioEndpoint.socketProperties:Lorg/apache/tomcat/util/net/SocketProperties;
            invokevirtual org.apache.tomcat.util.net.SocketProperties.getTimeoutInterval:()J
            ladd
        55: .line 956
            putfield org.apache.tomcat.util.net.NioEndpoint$Poller.nextExpiration:J
        56: .line 958
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
            ifeq 65
        57: .line 959
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "timeout completed: keys processed="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* keycount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        58: .line 960
            ldc "; now="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 3 /* now */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "; nextExpiration="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 6 /* prevExp */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        59: .line 961
            ldc "; keyCount="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* keyCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "; hasEvents="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* hasEvents */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        60: .line 962
            ldc "; eval="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 3 /* now */
            lload 6 /* prevExp */
            lcmp
            ifge 62
            iload 1 /* keyCount */
            ifgt 61
            iload 2 /* hasEvents */
            ifeq 62
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int long
      StackMap stack: org.apache.juli.logging.Log java.lang.StringBuilder
        61: aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$Poller.close:Z
            ifne 62
            iconst_1
            goto 63
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int long
      StackMap stack: org.apache.juli.logging.Log java.lang.StringBuilder
        62: iconst_0
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$Poller int int long int long
      StackMap stack: org.apache.juli.logging.Log java.lang.StringBuilder int
        63: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        64: .line 959
            invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
        65: .line 965
      StackMap locals:
      StackMap stack:
            return
        end local 6 // long prevExp
        end local 5 // int keycount
        end local 3 // long now
        end local 2 // boolean hasEvents
        end local 1 // int keyCount
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$Poller this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   66     0           this  Lorg/apache/tomcat/util/net/NioEndpoint$Poller;
            0   66     1       keyCount  I
            0   66     2      hasEvents  Z
            1   66     3            now  J
            5   66     5       keycount  I
            7   48     6            key  Ljava/nio/channels/SelectionKey;
            9   48     8  socketWrapper  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
           20   45     9    readTimeout  Z
           21   45    10   writeTimeout  Z
           23   26    11          delta  J
           24   26    13        timeout  J
           28   31    11          delta  J
           29   31    13        timeout  J
           51   52     6            cme  Ljava/util/ConcurrentModificationException;
           53   66     6        prevExp  J
      Exception table:
        from    to  target  type
           9    45      46  Class java.nio.channels.CancelledKeyException
           5    49      50  Class java.util.ConcurrentModificationException
    MethodParameters:
           Name  Flags
      keyCount   
      hasEvents  

  static int[] $SWITCH_TABLE$org$apache$tomcat$util$net$SendfileKeepAliveState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 466
            getstatic org.apache.tomcat.util.net.NioEndpoint$Poller.$SWITCH_TABLE$org$apache$tomcat$util$net$SendfileKeepAliveState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.tomcat.util.net.SendfileKeepAliveState.values:()[Lorg/apache/tomcat/util/net/SendfileKeepAliveState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.tomcat.util.net.SendfileKeepAliveState.NONE:Lorg/apache/tomcat/util/net/SendfileKeepAliveState;
            invokevirtual org.apache.tomcat.util.net.SendfileKeepAliveState.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.tomcat.util.net.SendfileKeepAliveState.OPEN:Lorg/apache/tomcat/util/net/SendfileKeepAliveState;
            invokevirtual org.apache.tomcat.util.net.SendfileKeepAliveState.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.tomcat.util.net.SendfileKeepAliveState.PIPELINED:Lorg/apache/tomcat/util/net/SendfileKeepAliveState;
            invokevirtual org.apache.tomcat.util.net.SendfileKeepAliveState.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.apache.tomcat.util.net.NioEndpoint$Poller.$SWITCH_TABLE$org$apache$tomcat$util$net$SendfileKeepAliveState:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "NioEndpoint.java"
NestHost: org.apache.tomcat.util.net.NioEndpoint
InnerClasses:
  public NioSocketWrapper = org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper of org.apache.tomcat.util.net.NioEndpoint
  public Poller = org.apache.tomcat.util.net.NioEndpoint$Poller of org.apache.tomcat.util.net.NioEndpoint
  public PollerEvent = org.apache.tomcat.util.net.NioEndpoint$PollerEvent of org.apache.tomcat.util.net.NioEndpoint
  public SendfileData = org.apache.tomcat.util.net.NioEndpoint$SendfileData of org.apache.tomcat.util.net.NioEndpoint
  protected abstract OperationState = org.apache.tomcat.util.net.SocketWrapperBase$OperationState of org.apache.tomcat.util.net.SocketWrapperBase