class org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState<A> extends org.apache.tomcat.util.net.SocketWrapperBase<org.apache.tomcat.util.net.NioChannel>.OperationState<A>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState
  super_class: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
{
  private volatile boolean inline;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  private void <init>(boolean, java.nio.ByteBuffer[], int, int, org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode, long, java.util.concurrent.TimeUnit, A, org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>, java.util.concurrent.Semaphore, org.apache.tomcat.util.net.SocketWrapperBase<org.apache.tomcat.util.net.NioChannel>.VectoredIOCompletionHandler<A>);
    descriptor: (Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;Z[Ljava/nio/ByteBuffer;IILorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;Ljava/nio/channels/CompletionHandler;Ljava/util/concurrent/Semaphore;Lorg/apache/tomcat/util/net/SocketWrapperBase$VectoredIOCompletionHandler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=15, args_size=14
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState this
        start local 2 // boolean read
        start local 3 // java.nio.ByteBuffer[] buffers
        start local 4 // int offset
        start local 5 // int length
        start local 6 // org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode block
        start local 7 // long timeout
        start local 9 // java.util.concurrent.TimeUnit unit
        start local 10 // java.lang.Object attachment
        start local 11 // org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck check
        start local 12 // java.nio.channels.CompletionHandler handler
        start local 13 // java.util.concurrent.Semaphore semaphore
        start local 14 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler completion
         0: .line 1403
            aload 0 /* this */
            aload 1
            putfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
         1: .line 1404
            aload 0 /* this */
            aload 1
            iload 2 /* read */
            aload 3 /* buffers */
            iload 4 /* offset */
            iload 5 /* length */
            aload 6 /* block */
         2: .line 1405
            lload 7 /* timeout */
            aload 9 /* unit */
            aload 10 /* attachment */
            aload 11 /* check */
            aload 12 /* handler */
            aload 13 /* semaphore */
            aload 14 /* completion */
            invokespecial org.apache.tomcat.util.net.SocketWrapperBase$OperationState.<init>:(Lorg/apache/tomcat/util/net/SocketWrapperBase;Z[Ljava/nio/ByteBuffer;IILorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;Ljava/nio/channels/CompletionHandler;Ljava/util/concurrent/Semaphore;Lorg/apache/tomcat/util/net/SocketWrapperBase$VectoredIOCompletionHandler;)V
         3: .line 1399
            aload 0 /* this */
            iconst_1
            putfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.inline:Z
         4: .line 1406
            return
        end local 14 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler completion
        end local 13 // java.util.concurrent.Semaphore semaphore
        end local 12 // java.nio.channels.CompletionHandler handler
        end local 11 // org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck check
        end local 10 // java.lang.Object attachment
        end local 9 // java.util.concurrent.TimeUnit unit
        end local 7 // long timeout
        end local 6 // org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode block
        end local 5 // int length
        end local 4 // int offset
        end local 3 // java.nio.ByteBuffer[] buffers
        end local 2 // boolean read
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper$NioOperationState<TA;>;
            0    5     2        read  Z
            0    5     3     buffers  [Ljava/nio/ByteBuffer;
            0    5     4      offset  I
            0    5     5      length  I
            0    5     6       block  Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
            0    5     7     timeout  J
            0    5     9        unit  Ljava/util/concurrent/TimeUnit;
            0    5    10  attachment  TA;
            0    5    11       check  Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;
            0    5    12     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;
            0    5    13   semaphore  Ljava/util/concurrent/Semaphore;
            0    5    14  completion  Lorg/apache/tomcat/util/net/SocketWrapperBase<Lorg/apache/tomcat/util/net/NioChannel;>.VectoredIOCompletionHandler<TA;>;
    Signature: (Z[Ljava/nio/ByteBuffer;IILorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;JLjava/util/concurrent/TimeUnit;TA;Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;Ljava/util/concurrent/Semaphore;Lorg/apache/tomcat/util/net/SocketWrapperBase<Lorg/apache/tomcat/util/net/NioChannel;>.VectoredIOCompletionHandler<TA;>;)V
    MethodParameters:
            Name  Flags
      this$0      final
      read        
      buffers     
      offset      
      length      
      block       
      timeout     
      unit        
      attachment  
      check       
      handler     
      semaphore   
      completion  

  protected boolean isInline();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState this
         0: .line 1410
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.inline:Z
            ireturn
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper$NioOperationState<TA;>;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState this
         0: .line 1417
            lconst_0
            lstore 1 /* nBytes */
        start local 1 // long nBytes
         1: .line 1418
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getError:()Ljava/io/IOException;
            ifnonnull 50
         2: .line 1420
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         3: .line 1421
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.completionDone:Z
            ifne 10
         4: .line 1424
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 8
         5: .line 1425
            getstatic org.apache.tomcat.util.net.NioEndpoint.log:Lorg/apache/juli/logging/Log;
            new java.lang.StringBuilder
            dup
            ldc "Skip concurrent "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.read:Z
            ifeq 6
            ldc "read"
            goto 7
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState long org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState
      StackMap stack: org.apache.juli.logging.Log java.lang.StringBuilder
         6: ldc "write"
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState long org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState
      StackMap stack: org.apache.juli.logging.Log java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " notification"
            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
         8: .line 1427
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         9: return
        10: .line 1429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.read:Z
            ifeq 22
        11: .line 1431
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.isReadBufferEmpty:()Z
            ifne 18
        12: .line 1433
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.configureReadBufferForRead:()V
        13: .line 1434
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        14: goto 17
        15: .line 1435
      StackMap locals: int
      StackMap stack:
            lload 1 /* nBytes */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.getReadBuffer:()Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.buffers:[Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.offset:I
            iload 4 /* i */
            iadd
            aaload
            invokestatic org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.transfer:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            i2l
            ladd
            lstore 1 /* nBytes */
        16: .line 1434
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.length:I
            if_icmpge 18
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.isReadBufferEmpty:()Z
            ifeq 15
        end local 4 // int i
        18: .line 1438
      StackMap locals:
      StackMap stack:
            lload 1 /* nBytes */
            lconst_0
            lcmp
            ifne 42
        19: .line 1439
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSocket:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioChannel
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.buffers:[Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.offset:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.length:I
            invokevirtual org.apache.tomcat.util.net.NioChannel.read:([Ljava/nio/ByteBuffer;II)J
            lstore 1 /* nBytes */
        20: .line 1440
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.updateLastRead:()V
        21: .line 1442
            goto 42
        22: .line 1443
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* doWrite */
        start local 4 // boolean doWrite
        23: .line 1445
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.isWriteBufferEmpty:()Z
            ifne 32
        24: .line 1447
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.configureWriteBufferForRead:()V
        25: .line 1449
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSocket:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioChannel
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.getWriteBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.apache.tomcat.util.net.NioChannel.write:(Ljava/nio/ByteBuffer;)I
            i2l
            lstore 1 /* nBytes */
        26: .line 1450
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.isWriteBufferEmpty:()Z
            ifne 28
            lload 1 /* nBytes */
            lconst_0
        27: .line 1448
            lcmp
            ifgt 25
        28: .line 1451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.socketBufferHandler:Lorg/apache/tomcat/util/net/SocketBufferHandler;
            invokevirtual org.apache.tomcat.util.net.SocketBufferHandler.isWriteBufferEmpty:()Z
            ifne 30
        29: .line 1452
            iconst_0
            istore 4 /* doWrite */
        30: .line 1455
      StackMap locals:
      StackMap stack:
            lload 1 /* nBytes */
            lconst_0
            lcmp
            ifle 32
        31: .line 1456
            lconst_0
            lstore 1 /* nBytes */
        32: .line 1459
      StackMap locals:
      StackMap stack:
            iload 4 /* doWrite */
            ifeq 42
        33: .line 1460
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
        34: .line 1462
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSocket:()Ljava/lang/Object;
            checkcast org.apache.tomcat.util.net.NioChannel
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.buffers:[Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.offset:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.length:I
            invokevirtual org.apache.tomcat.util.net.NioChannel.write:([Ljava/nio/ByteBuffer;II)J
            lstore 5 /* n */
        35: .line 1463
            lload 5 /* n */
            ldc -1
            lcmp
            ifne 38
        36: .line 1464
            lload 5 /* n */
            lstore 1 /* nBytes */
        37: .line 1465
            goto 39
        38: .line 1466
      StackMap locals:
      StackMap stack:
            lload 1 /* nBytes */
            lload 5 /* n */
            ladd
            lstore 1 /* nBytes */
        39: .line 1468
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            lconst_0
        40: .line 1461
            lcmp
            ifgt 34
        41: .line 1469
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.updateLastWrite:()V
        end local 5 // long n
        end local 4 // boolean doWrite
        42: .line 1472
      StackMap locals:
      StackMap stack:
            lload 1 /* nBytes */
            lconst_0
            lcmp
            ifne 43
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.buffers:[Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.offset:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.length:I
            invokestatic org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.buffersArrayHasRemaining:([Ljava/nio/ByteBuffer;II)Z
            ifne 44
        43: .line 1473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.completionDone:Z
        44: .line 1420
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        45: goto 50
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: aload 3
            monitorexit
        47: athrow
        48: .line 1476
      StackMap locals: org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState long
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        49: .line 1477
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            aload 3 /* e */
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.setError:(Ljava/io/IOException;)V
        end local 3 // java.io.IOException e
        50: .line 1480
      StackMap locals:
      StackMap stack:
            lload 1 /* nBytes */
            lconst_0
            lcmp
            ifgt 51
            lload 1 /* nBytes */
            lconst_0
            lcmp
            ifne 53
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.buffers:[Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.offset:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.length:I
            invokestatic org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.buffersArrayHasRemaining:([Ljava/nio/ByteBuffer;II)Z
            ifne 53
        51: .line 1482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.completion:Lorg/apache/tomcat/util/net/SocketWrapperBase$VectoredIOCompletionHandler;
            lload 1 /* nBytes */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.completed:(Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
        52: .line 1483
            goto 64
      StackMap locals:
      StackMap stack:
        53: lload 1 /* nBytes */
            lconst_0
            lcmp
            iflt 54
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getError:()Ljava/io/IOException;
            ifnull 59
        54: .line 1484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getError:()Ljava/io/IOException;
            astore 3 /* error */
        start local 3 // java.io.IOException error
        55: .line 1485
            aload 3 /* error */
            ifnonnull 57
        56: .line 1486
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            astore 3 /* error */
        57: .line 1488
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.completion:Lorg/apache/tomcat/util/net/SocketWrapperBase$VectoredIOCompletionHandler;
            aload 3 /* error */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed:(Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
        end local 3 // java.io.IOException error
        58: .line 1489
            goto 64
        59: .line 1491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.inline:Z
        60: .line 1492
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.read:Z
            ifeq 63
        61: .line 1493
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.registerReadInterest:()V
        62: .line 1494
            goto 64
        63: .line 1495
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.this$1:Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper;
            invokevirtual org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.registerWriteInterest:()V
        64: .line 1498
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long nBytes
        end local 0 // org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   65     0     this  Lorg/apache/tomcat/util/net/NioEndpoint$NioSocketWrapper$NioOperationState<TA;>;
            1   65     1   nBytes  J
           14   18     4        i  I
           23   42     4  doWrite  Z
           34   42     5        n  J
           49   50     3        e  Ljava/io/IOException;
           55   58     3    error  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     9      46  any
          10    45      46  any
          46    47      46  any
           2     9      48  Class java.io.IOException
          10    48      48  Class java.io.IOException
}
Signature: <A:Ljava/lang/Object;>Lorg/apache/tomcat/util/net/SocketWrapperBase<Lorg/apache/tomcat/util/net/NioChannel;>.OperationState<TA;>;
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
  private NioOperationState = org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState of org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
  public final BlockingMode = org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode of org.apache.tomcat.util.net.SocketWrapperBase
  public abstract CompletionCheck = org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck of org.apache.tomcat.util.net.SocketWrapperBase
  protected abstract OperationState = org.apache.tomcat.util.net.SocketWrapperBase$OperationState of org.apache.tomcat.util.net.SocketWrapperBase
  protected VectoredIOCompletionHandler = org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler of org.apache.tomcat.util.net.SocketWrapperBase