public class org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler<A> implements java.nio.channels.CompletionHandler<java.lang.Long, org.apache.tomcat.util.net.SocketWrapperBase<E>.OperationState<A>>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler
  super_class: java.lang.Object
{
  final org.apache.tomcat.util.net.SocketWrapperBase this$0;
    descriptor: Lorg/apache/tomcat/util/net/SocketWrapperBase;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  protected void <init>(org.apache.tomcat.util.net.SocketWrapperBase);
    descriptor: (Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler this
         0: .line 1024
            aload 0 /* this */
            aload 1
            putfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.VectoredIOCompletionHandler<TA;>;
    MethodParameters:
        Name  Flags
      this$0  final

  public void completed(java.lang.Long, org.apache.tomcat.util.net.SocketWrapperBase<E>.OperationState<A>);
    descriptor: (Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler this
        start local 1 // java.lang.Long nBytes
        start local 2 // org.apache.tomcat.util.net.SocketWrapperBase$OperationState state
         0: .line 1027
            aload 1 /* nBytes */
            invokevirtual java.lang.Long.longValue:()J
            lconst_0
            lcmp
            ifge 3
         1: .line 1028
            aload 0 /* this */
            new java.io.EOFException
            dup
            invokespecial java.io.EOFException.<init>:()V
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed:(Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
         2: .line 1029
            goto 46
         3: .line 1030
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            dup
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.nBytes:J
            aload 1 /* nBytes */
            invokevirtual java.lang.Long.longValue:()J
            ladd
            putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.nBytes:J
         4: .line 1031
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.isInline:()Z
            ifeq 5
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.INLINE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
            goto 6
      StackMap locals:
      StackMap stack:
         5: getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.DONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$CompletionState
         6: astore 3 /* currentState */
        start local 3 // org.apache.tomcat.util.net.SocketWrapperBase$CompletionState currentState
         7: .line 1032
            iconst_1
            istore 4 /* complete */
        start local 4 // boolean complete
         8: .line 1033
            iconst_1
            istore 5 /* completion */
        start local 5 // boolean completion
         9: .line 1034
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.check:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;
            ifnull 16
        10: .line 1035
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.check:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;
            aload 3 /* currentState */
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.buffers:[Ljava/nio/ByteBuffer;
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.offset:I
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.length:I
            invokeinterface org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck.callHandler:(Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;[Ljava/nio/ByteBuffer;II)Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
            astore 6 /* call */
        start local 6 // org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall call
        11: .line 1036
            aload 6 /* call */
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall.CONTINUE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
            if_acmpne 14
        12: .line 1037
            iconst_0
            istore 4 /* complete */
        13: .line 1038
            goto 16
      StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Long org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState int int org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall
      StackMap stack:
        14: aload 6 /* call */
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall.NONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
            if_acmpne 16
        15: .line 1039
            iconst_0
            istore 5 /* completion */
        end local 6 // org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall call
        16: .line 1042
      StackMap locals:
      StackMap stack:
            iload 4 /* complete */
            ifeq 39
        17: .line 1043
            iconst_0
            istore 6 /* notify */
        start local 6 // boolean notify
        18: .line 1044
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.semaphore:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        19: .line 1045
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.read:Z
            ifeq 22
        20: .line 1046
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aconst_null
            putfield org.apache.tomcat.util.net.SocketWrapperBase.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
        21: .line 1047
            goto 23
        22: .line 1048
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aconst_null
            putfield org.apache.tomcat.util.net.SocketWrapperBase.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
        23: .line 1050
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.block:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode.BLOCK:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
            if_acmpne 26
            aload 3 /* currentState */
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.INLINE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
            if_acmpeq 26
        24: .line 1051
            iconst_1
            istore 6 /* notify */
        25: .line 1052
            goto 27
        26: .line 1053
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            aload 3 /* currentState */
            putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
        27: .line 1055
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.end:()V
        28: .line 1056
            iload 5 /* completion */
            ifeq 30
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
            ifnull 30
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.callHandler:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 30
        29: .line 1057
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.nBytes:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.attachment:Ljava/lang/Object;
            invokeinterface java.nio.channels.CompletionHandler.completed:(Ljava/lang/Object;Ljava/lang/Object;)V
        30: .line 1059
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            dup
            astore 7
            monitorenter
        31: .line 1060
            aload 2 /* state */
            iconst_1
            putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.completionDone:Z
        32: .line 1061
            iload 6 /* notify */
            ifeq 35
        33: .line 1062
            aload 2 /* state */
            aload 3 /* currentState */
            putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
        34: .line 1063
            aload 2 /* state */
            invokevirtual java.lang.Object.notify:()V
        35: .line 1059
      StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
      StackMap stack:
            aload 7
            monitorexit
        36: goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: aload 7
            monitorexit
        38: athrow
        end local 6 // boolean notify
        39: .line 1067
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            dup
            astore 6
            monitorenter
        40: .line 1068
            aload 2 /* state */
            iconst_1
            putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.completionDone:Z
        41: .line 1067
            aload 6
            monitorexit
        42: goto 45
      StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Long org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState int int org.apache.tomcat.util.net.SocketWrapperBase$OperationState
      StackMap stack: java.lang.Throwable
        43: aload 6
            monitorexit
        44: athrow
        45: .line 1070
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.run:()V
        end local 5 // boolean completion
        end local 4 // boolean complete
        end local 3 // org.apache.tomcat.util.net.SocketWrapperBase$CompletionState currentState
        46: .line 1073
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.tomcat.util.net.SocketWrapperBase$OperationState state
        end local 1 // java.lang.Long nBytes
        end local 0 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   47     0          this  Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.VectoredIOCompletionHandler<TA;>;
            0   47     1        nBytes  Ljava/lang/Long;
            0   47     2         state  Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;
            7   46     3  currentState  Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
            8   46     4      complete  Z
            9   46     5    completion  Z
           11   16     6          call  Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
           18   39     6        notify  Z
      Exception table:
        from    to  target  type
          31    36      37  any
          37    38      37  any
          40    42      43  any
          43    44      43  any
    Signature: (Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;)V
    MethodParameters:
        Name  Flags
      nBytes  
      state   

  public void failed(java.lang.Throwable, org.apache.tomcat.util.net.SocketWrapperBase<E>.OperationState<A>);
    descriptor: (Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler this
        start local 1 // java.lang.Throwable exc
        start local 2 // org.apache.tomcat.util.net.SocketWrapperBase$OperationState state
         0: .line 1076
            aconst_null
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
         1: .line 1077
            aload 1 /* exc */
            instanceof java.nio.channels.InterruptedByTimeoutException
            ifeq 5
         2: .line 1078
            new java.net.SocketTimeoutException
            dup
            invokespecial java.net.SocketTimeoutException.<init>:()V
            astore 3 /* ioe */
         3: .line 1079
            aload 3 /* ioe */
            astore 1 /* exc */
         4: .line 1080
            goto 7
      StackMap locals: java.io.IOException
      StackMap stack:
         5: aload 1 /* exc */
            instanceof java.io.IOException
            ifeq 7
         6: .line 1081
            aload 1 /* exc */
            checkcast java.io.IOException
            astore 3 /* ioe */
         7: .line 1083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aload 3 /* ioe */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.setError:(Ljava/io/IOException;)V
         8: .line 1084
            iconst_0
            istore 4 /* notify */
        start local 4 // boolean notify
         9: .line 1085
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.semaphore:Ljava/util/concurrent/Semaphore;
            invokevirtual java.util.concurrent.Semaphore.release:()V
        10: .line 1086
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.read:Z
            ifeq 13
        11: .line 1087
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aconst_null
            putfield org.apache.tomcat.util.net.SocketWrapperBase.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
        12: .line 1088
            goto 14
        13: .line 1089
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            aconst_null
            putfield org.apache.tomcat.util.net.SocketWrapperBase.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
        14: .line 1091
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.block:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode.BLOCK:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
            if_acmpne 17
        15: .line 1092
            iconst_1
            istore 4 /* notify */
        16: .line 1093
            goto 20
        17: .line 1094
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.isInline:()Z
            ifeq 18
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.ERROR:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
            goto 19
      StackMap locals:
      StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
        18: getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.DONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
      StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Throwable org.apache.tomcat.util.net.SocketWrapperBase$OperationState java.io.IOException int
      StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState
        19: putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
        20: .line 1096
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.end:()V
        21: .line 1097
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
            ifnull 23
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.callHandler:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 23
        22: .line 1098
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
            aload 1 /* exc */
            aload 2 /* state */
            getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.attachment:Ljava/lang/Object;
            invokeinterface java.nio.channels.CompletionHandler.failed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
        23: .line 1100
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            dup
            astore 5
            monitorenter
        24: .line 1101
            aload 2 /* state */
            iconst_1
            putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.completionDone:Z
        25: .line 1102
            iload 4 /* notify */
            ifeq 30
        26: .line 1103
            aload 2 /* state */
            aload 2 /* state */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.isInline:()Z
            ifeq 27
            getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.ERROR:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
            goto 28
      StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Throwable org.apache.tomcat.util.net.SocketWrapperBase$OperationState java.io.IOException int org.apache.tomcat.util.net.SocketWrapperBase$OperationState
      StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
        27: getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.DONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
      StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Throwable org.apache.tomcat.util.net.SocketWrapperBase$OperationState java.io.IOException int org.apache.tomcat.util.net.SocketWrapperBase$OperationState
      StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState
        28: putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
        29: .line 1104
            aload 2 /* state */
            invokevirtual java.lang.Object.notify:()V
        30: .line 1100
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        31: goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: aload 5
            monitorexit
        33: athrow
        34: .line 1107
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean notify
        end local 3 // java.io.IOException ioe
        end local 2 // org.apache.tomcat.util.net.SocketWrapperBase$OperationState state
        end local 1 // java.lang.Throwable exc
        end local 0 // org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   35     0    this  Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.VectoredIOCompletionHandler<TA;>;
            0   35     1     exc  Ljava/lang/Throwable;
            0   35     2   state  Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;
            1   35     3     ioe  Ljava/io/IOException;
            9   35     4  notify  Z
      Exception table:
        from    to  target  type
          24    31      32  any
          32    33      32  any
    Signature: (Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;)V
    MethodParameters:
       Name  Flags
      exc    
      state  

  public void failed(java.lang.Throwable, java.lang.Object);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.apache.tomcat.util.net.SocketWrapperBase$OperationState
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed:(Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void completed(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast java.lang.Long
            aload 2
            checkcast org.apache.tomcat.util.net.SocketWrapperBase$OperationState
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.completed:(Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <A:Ljava/lang/Object;>Ljava/lang/Object;Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;>;
SourceFile: "SocketWrapperBase.java"
NestHost: org.apache.tomcat.util.net.SocketWrapperBase
InnerClasses:
  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
  public final CompletionHandlerCall = org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall of org.apache.tomcat.util.net.SocketWrapperBase
  public final CompletionState = org.apache.tomcat.util.net.SocketWrapperBase$CompletionState 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