public final class io.undertow.conduits.FixedLengthStreamSourceConduit extends org.xnio.conduits.AbstractStreamSourceConduit<org.xnio.conduits.StreamSourceConduit>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.undertow.conduits.FixedLengthStreamSourceConduit
  super_class: org.xnio.conduits.AbstractStreamSourceConduit
{
  private final io.undertow.conduits.ConduitListener<? super io.undertow.conduits.FixedLengthStreamSourceConduit> finishListener;
    descriptor: Lio/undertow/conduits/ConduitListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/FixedLengthStreamSourceConduit;>;

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

  private static final long FLAG_CLOSED;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -9223372036854775808

  private static final long FLAG_FINISHED;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4611686018427387904

  private static final long FLAG_LENGTH_CHECKED;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2305843009213693952

  private static final long MASK_COUNT;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.undertow.server.HttpServerExchange exchange;
    descriptor: Lio/undertow/server/HttpServerExchange;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 67
            iconst_0
            bipush 60
            invokestatic org.xnio.Bits.longBitMask:(II)J
            putstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.xnio.conduits.StreamSourceConduit, long, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.FixedLengthStreamSourceConduit>, io.undertow.server.HttpServerExchange);
    descriptor: (Lorg/xnio/conduits/StreamSourceConduit;JLio/undertow/conduits/ConduitListener;Lio/undertow/server/HttpServerExchange;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // org.xnio.conduits.StreamSourceConduit next
        start local 2 // long contentLength
        start local 4 // io.undertow.conduits.ConduitListener finishListener
        start local 5 // io.undertow.server.HttpServerExchange exchange
         0: .line 86
            aload 0 /* this */
            aload 1 /* next */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
         1: .line 87
            aload 0 /* this */
            aload 4 /* finishListener */
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
         2: .line 88
            lload 2 /* contentLength */
            lconst_0
            lcmp
            ifge 4
         3: .line 89
            new java.lang.IllegalArgumentException
            dup
            ldc "Content length must be greater than or equal to zero"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 90
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit org.xnio.conduits.StreamSourceConduit long io.undertow.conduits.ConduitListener io.undertow.server.HttpServerExchange
      StackMap stack:
            lload 2 /* contentLength */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            lcmp
            ifle 6
         5: .line 91
            new java.lang.IllegalArgumentException
            dup
            ldc "Content length is too long"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 2 /* contentLength */
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
         7: .line 94
            aload 0 /* this */
            aload 5 /* exchange */
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
         8: .line 95
            return
        end local 5 // io.undertow.server.HttpServerExchange exchange
        end local 4 // io.undertow.conduits.ConduitListener finishListener
        end local 2 // long contentLength
        end local 1 // org.xnio.conduits.StreamSourceConduit next
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0    9     1            next  Lorg/xnio/conduits/StreamSourceConduit;
            0    9     2   contentLength  J
            0    9     4  finishListener  Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/FixedLengthStreamSourceConduit;>;
            0    9     5        exchange  Lio/undertow/server/HttpServerExchange;
    Signature: (Lorg/xnio/conduits/StreamSourceConduit;JLio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/FixedLengthStreamSourceConduit;>;Lio/undertow/server/HttpServerExchange;)V
    MethodParameters:
                Name  Flags
      next            final
      contentLength   final
      finishListener  final
      exchange        final

  public void <init>(org.xnio.conduits.StreamSourceConduit, long, io.undertow.conduits.ConduitListener<? super io.undertow.conduits.FixedLengthStreamSourceConduit>);
    descriptor: (Lorg/xnio/conduits/StreamSourceConduit;JLio/undertow/conduits/ConduitListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // org.xnio.conduits.StreamSourceConduit next
        start local 2 // long contentLength
        start local 4 // io.undertow.conduits.ConduitListener finishListener
         0: .line 111
            aload 0 /* this */
            aload 1 /* next */
            lload 2 /* contentLength */
            aload 4 /* finishListener */
            aconst_null
            invokespecial io.undertow.conduits.FixedLengthStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;JLio/undertow/conduits/ConduitListener;Lio/undertow/server/HttpServerExchange;)V
         1: .line 112
            return
        end local 4 // io.undertow.conduits.ConduitListener finishListener
        end local 2 // long contentLength
        end local 1 // org.xnio.conduits.StreamSourceConduit next
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0    2     1            next  Lorg/xnio/conduits/StreamSourceConduit;
            0    2     2   contentLength  J
            0    2     4  finishListener  Lio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/FixedLengthStreamSourceConduit;>;
    Signature: (Lorg/xnio/conduits/StreamSourceConduit;JLio/undertow/conduits/ConduitListener<-Lio/undertow/conduits/FixedLengthStreamSourceConduit;>;)V
    MethodParameters:
                Name  Flags
      next            final
      contentLength   final
      finishListener  final

  public long transferTo(long, long, java.nio.channels.FileChannel);
    descriptor: (JJLjava/nio/channels/FileChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=14, args_size=4
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // long position
        start local 3 // long count
        start local 5 // java.nio.channels.FileChannel target
         0: .line 115
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 6 /* val */
        start local 6 // long val
         1: .line 116
            aload 0 /* this */
            lload 6 /* val */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize:(J)V
         2: .line 117
            lload 6 /* val */
            ldc -4611686018427387904
            invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
            ifne 3
            lload 6 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 6
         3: .line 118
      StackMap locals: long
      StackMap stack:
            lload 6 /* val */
            ldc 4611686018427387904
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 5
         4: .line 119
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.invokeFinishListener:()V
         5: .line 121
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
         6: .line 123
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 8 /* res */
        start local 8 // long res
         7: .line 125
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            lload 1 /* position */
            lload 3 /* count */
            lload 6 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            invokestatic java.lang.Math.min:(JJ)J
            aload 5 /* target */
            invokeinterface org.xnio.conduits.StreamSourceConduit.transferTo:(JJLjava/nio/channels/FileChannel;)J
            dup2
            lstore 8 /* res */
            lstore 12
         8: .line 130
            aload 0 /* this */
            lload 8 /* res */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
         9: .line 125
            lload 12
            lreturn
        10: .line 126
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit long long java.nio.channels.FileChannel long long
      StackMap stack: java.lang.Throwable
            astore 10 /* e */
        start local 10 // java.lang.Throwable e
        11: .line 127
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        12: .line 128
            aload 10 /* e */
            athrow
        end local 10 // java.lang.Throwable e
        13: .line 129
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        14: .line 130
            aload 0 /* this */
            lload 8 /* res */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        15: .line 131
            aload 11
            athrow
        end local 8 // long res
        end local 6 // long val
        end local 5 // java.nio.channels.FileChannel target
        end local 3 // long count
        end local 1 // long position
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0   16     1  position  J
            0   16     3     count  J
            0   16     5    target  Ljava/nio/channels/FileChannel;
            1   16     6       val  J
            7   16     8       res  J
           11   13    10         e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7     8      10  Class java.io.IOException
           7     8      10  Class java.lang.RuntimeException
           7     8      10  Class java.lang.Error
           7     8      13  any
          10    13      13  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  final
      count     final
      target    final

  public long transferTo(long, java.nio.ByteBuffer, org.xnio.channels.StreamSinkChannel);
    descriptor: (JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // long count
        start local 3 // java.nio.ByteBuffer throughBuffer
        start local 4 // org.xnio.channels.StreamSinkChannel target
         0: .line 135
            lload 1 /* count */
            lconst_0
            lcmp
            ifne 2
         1: .line 136
            lconst_0
            lreturn
         2: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 5 /* val */
        start local 5 // long val
         3: .line 139
            aload 0 /* this */
            lload 5 /* val */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize:(J)V
         4: .line 140
            lload 5 /* val */
            ldc -4611686018427387904
            invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
            ifne 5
            lload 5 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 8
         5: .line 141
      StackMap locals: long
      StackMap stack:
            lload 5 /* val */
            ldc 4611686018427387904
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 7
         6: .line 142
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.invokeFinishListener:()V
         7: .line 144
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
         8: .line 146
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 7 /* res */
        start local 7 // long res
         9: .line 148
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            lload 1 /* count */
            lload 5 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            invokestatic java.lang.Math.min:(JJ)J
            aload 3 /* throughBuffer */
            aload 4 /* target */
            invokeinterface org.xnio.conduits.StreamSourceConduit.transferTo:(JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
            dup2
            lstore 7 /* res */
            lstore 11
        10: .line 153
            aload 0 /* this */
            lload 7 /* res */
            aload 3 /* throughBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            ladd
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        11: .line 148
            lload 11
            lreturn
        12: .line 149
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit long java.nio.ByteBuffer org.xnio.channels.StreamSinkChannel long long
      StackMap stack: java.lang.Throwable
            astore 9 /* e */
        start local 9 // java.lang.Throwable e
        13: .line 150
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        14: .line 151
            aload 9 /* e */
            athrow
        end local 9 // java.lang.Throwable e
        15: .line 152
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
        16: .line 153
            aload 0 /* this */
            lload 7 /* res */
            aload 3 /* throughBuffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            ladd
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        17: .line 154
            aload 10
            athrow
        end local 7 // long res
        end local 5 // long val
        end local 4 // org.xnio.channels.StreamSinkChannel target
        end local 3 // java.nio.ByteBuffer throughBuffer
        end local 1 // long count
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0   18     1          count  J
            0   18     3  throughBuffer  Ljava/nio/ByteBuffer;
            0   18     4         target  Lorg/xnio/channels/StreamSinkChannel;
            3   18     5            val  J
            9   18     7            res  J
           13   15     9              e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    10      12  Class java.io.IOException
           9    10      12  Class java.lang.RuntimeException
           9    10      12  Class java.lang.Error
           9    10      15  any
          12    15      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      count          final
      throughBuffer  final
      target         final

  private void checkMaxSize(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // long state
         0: .line 158
            lload 1 /* state */
            ldc 2305843009213693952
            invokestatic org.xnio.Bits.anyAreClear:(JJ)Z
            ifeq 10
         1: .line 159
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
            astore 3 /* exchange */
        start local 3 // io.undertow.server.HttpServerExchange exchange
         2: .line 160
            aload 3 /* exchange */
            ifnull 9
         3: .line 161
            aload 3 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getMaxEntitySize:()J
            lconst_0
            lcmp
            ifle 9
            aload 3 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getMaxEntitySize:()J
            lload 1 /* state */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            lcmp
            ifge 9
         4: .line 164
            aload 3 /* exchange */
            invokestatic io.undertow.server.Connectors.terminateRequest:(Lio/undertow/server/HttpServerExchange;)V
         5: .line 165
            aload 3 /* exchange */
            iconst_0
            invokevirtual io.undertow.server.HttpServerExchange.setPersistent:(Z)Lio/undertow/server/HttpServerExchange;
            pop
         6: .line 166
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
            aload 0 /* this */
            invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
         7: .line 167
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            ldc -4611686018427387904
            lor
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
         8: .line 168
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            aload 3 /* exchange */
            invokevirtual io.undertow.server.HttpServerExchange.getMaxEntitySize:()J
            invokeinterface io.undertow.UndertowMessages.requestEntityWasTooLarge:(J)Lio/undertow/server/RequestTooBigException;
            athrow
         9: .line 171
      StackMap locals: io.undertow.server.HttpServerExchange
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            ldc 2305843009213693952
            lor
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
        end local 3 // io.undertow.server.HttpServerExchange exchange
        10: .line 173
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long state
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0   11     1     state  J
            2   10     3  exchange  Lio/undertow/server/HttpServerExchange;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      state  

  public long read(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=19, args_size=4
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
         0: .line 176
            iload 3 /* length */
            ifne 2
         1: .line 177
            lconst_0
            lreturn
         2: .line 178
      StackMap locals:
      StackMap stack:
            iload 3 /* length */
            iconst_1
            if_icmpne 4
         3: .line 179
            aload 0 /* this */
            aload 1 /* dsts */
            iload 2 /* offset */
            aaload
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            i2l
            lreturn
         4: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 4 /* val */
        start local 4 // long val
         5: .line 182
            aload 0 /* this */
            lload 4 /* val */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize:(J)V
         6: .line 183
            lload 4 /* val */
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.allAreSet:(JJ)Z
            ifne 7
            lload 4 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 10
         7: .line 184
      StackMap locals: long
      StackMap stack:
            lload 4 /* val */
            ldc 4611686018427387904
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 9
         8: .line 185
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.invokeFinishListener:()V
         9: .line 187
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        10: .line 189
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 6 /* res */
        start local 6 // long res
        11: .line 191
            lload 4 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            lconst_0
            lcmp
            ifne 14
        12: .line 219
            aload 0 /* this */
            lload 6 /* res */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        13: .line 192
            ldc -1
            lreturn
        14: .line 196
      StackMap locals: long
      StackMap stack:
            lconst_0
            lstore 9 /* t */
        start local 9 // long t
        15: .line 197
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        16: goto 30
        17: .line 198
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit java.nio.ByteBuffer[] int int long long top long int
      StackMap stack:
            aload 1 /* dsts */
            iload 11 /* i */
            iload 2 /* offset */
            iadd
            aaload
            astore 12 /* buffer */
        start local 12 // java.nio.ByteBuffer buffer
        18: .line 201
            lload 9 /* t */
            aload 12 /* buffer */
            invokevirtual java.nio.ByteBuffer.limit:()I
            dup
            istore 8 /* lim */
        start local 8 // int lim
        19: aload 12 /* buffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            isub
            i2l
            ladd
            lstore 9 /* t */
        20: .line 202
            lload 9 /* t */
            lload 4 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            lcmp
            ifle 29
        21: .line 204
            aload 12 /* buffer */
            iload 8 /* lim */
            lload 9 /* t */
            lload 4 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            lsub
            l2i
            isub
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        22: .line 206
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 11 /* i */
            iconst_1
            iadd
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:([Ljava/nio/ByteBuffer;II)J
            dup2
            lstore 6 /* res */
            lstore 14
        23: .line 209
            aload 12 /* buffer */
            iload 8 /* lim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        24: .line 219
            aload 0 /* this */
            lload 6 /* res */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        25: .line 206
            lload 14
            lreturn
        26: .line 207
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit java.nio.ByteBuffer[] int int long long int long int java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 13
        27: .line 209
            aload 12 /* buffer */
            iload 8 /* lim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        28: .line 210
            aload 13
            athrow
        end local 12 // java.nio.ByteBuffer buffer
        29: .line 197
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
        end local 8 // int lim
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit java.nio.ByteBuffer[] int int long long top long int
      StackMap stack:
        30: iload 11 /* i */
            iload 3 /* length */
            if_icmplt 17
        end local 11 // int i
        31: .line 214
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:([Ljava/nio/ByteBuffer;II)J
            dup2
            lstore 6 /* res */
            lstore 17
        32: .line 219
            aload 0 /* this */
            lload 6 /* res */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        33: .line 214
            lload 17
            lreturn
        end local 9 // long t
        34: .line 215
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit java.nio.ByteBuffer[] int int long long
      StackMap stack: java.lang.Throwable
            astore 8 /* e */
        start local 8 // java.lang.Throwable e
        35: .line 216
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        36: .line 217
            aload 8 /* e */
            athrow
        end local 8 // java.lang.Throwable e
        37: .line 218
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16
        38: .line 219
            aload 0 /* this */
            lload 6 /* res */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        39: .line 220
            aload 16
            athrow
        end local 6 // long res
        end local 4 // long val
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   40     0    this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0   40     1    dsts  [Ljava/nio/ByteBuffer;
            0   40     2  offset  I
            0   40     3  length  I
            5   40     4     val  J
           11   40     6     res  J
           19   30     8     lim  I
           15   34     9       t  J
           16   31    11       i  I
           18   29    12  buffer  Ljava/nio/ByteBuffer;
           35   37     8       e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          22    23      26  any
          11    12      34  Class java.io.IOException
          14    24      34  Class java.io.IOException
          26    32      34  Class java.io.IOException
          11    12      34  Class java.lang.RuntimeException
          14    24      34  Class java.lang.RuntimeException
          26    32      34  Class java.lang.RuntimeException
          11    12      34  Class java.lang.Error
          14    24      34  Class java.lang.Error
          26    32      34  Class java.lang.Error
          11    12      37  any
          14    24      37  any
          26    32      37  any
          34    37      37  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      dsts    final
      offset  final
      length  final

  public long read(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // java.nio.ByteBuffer[] dsts
         0: .line 224
            aload 0 /* this */
            aload 1 /* dsts */
            iconst_0
            aload 1 /* dsts */
            arraylength
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.read:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0    1     1  dsts  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dsts  final

  public int read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 228
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 2 /* val */
        start local 2 // long val
         1: .line 229
            aload 0 /* this */
            lload 2 /* val */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize:(J)V
         2: .line 230
            lload 2 /* val */
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.allAreSet:(JJ)Z
            ifne 3
            lload 2 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 6
         3: .line 231
      StackMap locals: long
      StackMap stack:
            lload 2 /* val */
            ldc 4611686018427387904
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 5
         4: .line 232
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.invokeFinishListener:()V
         5: .line 234
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
         6: .line 236
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* res */
        start local 4 // int res
         7: .line 237
            lload 2 /* val */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            lstore 5 /* remaining */
        start local 5 // long remaining
         8: .line 239
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 7 /* lim */
        start local 7 // int lim
         9: .line 240
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 8 /* pos */
        start local 8 // int pos
        10: .line 241
            iload 7 /* lim */
            iload 8 /* pos */
            isub
            i2l
            lload 5 /* remaining */
            lcmp
            ifle 19
        11: .line 242
            aload 1 /* dst */
            lload 5 /* remaining */
            iload 8 /* pos */
            i2l
            ladd
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        12: .line 244
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            aload 1 /* dst */
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            dup
            istore 4 /* res */
            istore 10
        13: .line 246
            aload 1 /* dst */
            iload 7 /* lim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        14: .line 255
            aload 0 /* this */
            iload 4 /* res */
            i2l
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        15: .line 244
            iload 10
            ireturn
        16: .line 245
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit java.nio.ByteBuffer long int long int int
      StackMap stack: java.lang.Throwable
            astore 9
        17: .line 246
            aload 1 /* dst */
            iload 7 /* lim */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        18: .line 247
            aload 9
            athrow
        19: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            aload 1 /* dst */
            invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            dup
            istore 4 /* res */
            istore 12
        20: .line 255
            aload 0 /* this */
            iload 4 /* res */
            i2l
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        21: .line 249
            iload 12
            ireturn
        end local 8 // int pos
        end local 7 // int lim
        22: .line 251
      StackMap locals: io.undertow.conduits.FixedLengthStreamSourceConduit java.nio.ByteBuffer long int long
      StackMap stack: java.lang.Throwable
            astore 7 /* e */
        start local 7 // java.lang.Throwable e
        23: .line 252
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        24: .line 253
            aload 7 /* e */
            athrow
        end local 7 // java.lang.Throwable e
        25: .line 254
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        26: .line 255
            aload 0 /* this */
            iload 4 /* res */
            i2l
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitRead:(J)V
        27: .line 256
            aload 11
            athrow
        end local 5 // long remaining
        end local 4 // int res
        end local 2 // long val
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0   28     1        dst  Ljava/nio/ByteBuffer;
            1   28     2        val  J
            7   28     4        res  I
            8   28     5  remaining  J
            9   22     7        lim  I
           10   22     8        pos  I
           23   25     7          e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          12    13      16  any
           8    14      22  Class java.io.IOException
          16    20      22  Class java.io.IOException
           8    14      22  Class java.lang.RuntimeException
          16    20      22  Class java.lang.RuntimeException
           8    14      22  Class java.lang.Error
          16    20      22  Class java.lang.Error
           8    14      25  any
          16    20      25  any
          22    25      25  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dst   final

  public boolean isReadResumed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 260
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifeq 1
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            invokeinterface org.xnio.conduits.StreamSourceConduit.isReadResumed:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;

  public void wakeupReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 264
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 1 /* val */
        start local 1 // long val
         1: .line 265
            lload 1 /* val */
            ldc -4611686018427387904
            invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
            ifeq 3
         2: .line 266
            return
         3: .line 268
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            invokeinterface org.xnio.conduits.StreamSourceConduit.wakeupReads:()V
         4: .line 269
            return
        end local 1 // long val
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            1    5     1   val  J

  public void terminateReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 273
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.enterShutdownReads:()J
            lstore 1 /* val */
        start local 1 // long val
         1: .line 274
            lload 1 /* val */
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.allAreSet:(JJ)Z
            ifeq 3
         2: .line 275
            return
         3: .line 277
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 1 /* val */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.exitShutdownReads:(J)V
         4: .line 278
            return
        end local 1 // long val
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            1    5     1   val  J
    Exceptions:
      throws java.io.IOException

  public void awaitReadable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 281
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 1 /* val */
        start local 1 // long val
         1: .line 282
            lload 1 /* val */
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.allAreSet:(JJ)Z
            ifne 2
            lload 1 /* val */
            lconst_0
            lcmp
            ifne 3
         2: .line 283
      StackMap locals: long
      StackMap stack:
            return
         3: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            invokeinterface org.xnio.conduits.StreamSourceConduit.awaitReadable:()V
         4: .line 286
            return
        end local 1 // long val
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            1    5     1   val  J
    Exceptions:
      throws java.io.IOException

  public void awaitReadable(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 289
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 4 /* val */
        start local 4 // long val
         1: .line 290
            lload 4 /* val */
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.allAreSet:(JJ)Z
            ifne 2
            lload 4 /* val */
            lconst_0
            lcmp
            ifne 3
         2: .line 291
      StackMap locals: long
      StackMap stack:
            return
         3: .line 294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSourceConduit
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokeinterface org.xnio.conduits.StreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         4: .line 295
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 6 /* e */
        start local 6 // java.lang.Throwable e
         6: .line 296
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.exchange:Lio/undertow/server/HttpServerExchange;
            invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
         7: .line 297
            aload 6 /* e */
            athrow
        end local 6 // java.lang.Throwable e
         8: .line 299
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long val
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0    9     1      time  J
            0    9     3  timeUnit  Ljava/util/concurrent/TimeUnit;
            1    9     4       val  J
            6    8     6         e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
           3     4       5  Class java.lang.RuntimeException
           3     4       5  Class java.lang.Error
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      final
      timeUnit  final

  public long getRemaining();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 307
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            land
            lreturn
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;

  private long enterShutdownReads();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 312
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 1 /* oldVal */
        start local 1 // long oldVal
         1: .line 313
            lload 1 /* oldVal */
            ldc -9223372036854775808
            invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
            ifeq 3
         2: .line 314
            lload 1 /* oldVal */
            lreturn
         3: .line 316
      StackMap locals: long
      StackMap stack:
            lload 1 /* oldVal */
            ldc -9223372036854775808
            lor
            lstore 3 /* newVal */
        start local 3 // long newVal
         4: .line 317
            aload 0 /* this */
            lload 3 /* newVal */
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
         5: .line 318
            lload 1 /* oldVal */
            lreturn
        end local 3 // long newVal
        end local 1 // long oldVal
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            1    6     1  oldVal  J
            4    6     3  newVal  J

  private void exitShutdownReads(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // long oldVal
         0: .line 322
            lload 1 /* oldVal */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            invokestatic org.xnio.Bits.allAreClear:(JJ)Z
            ifne 2
         1: .line 323
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.invokeFinishListener:()V
         2: .line 325
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long oldVal
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0    3     1  oldVal  J
    MethodParameters:
        Name  Flags
      oldVal  

  private void exitRead(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
        start local 1 // long consumed
         0: .line 333
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            lstore 3 /* oldVal */
        start local 3 // long oldVal
         1: .line 334
            lload 1 /* consumed */
            ldc -1
            lcmp
            ifne 7
         2: .line 335
            lload 3 /* oldVal */
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
            ifeq 6
         3: .line 336
            aload 0 /* this */
            invokevirtual io.undertow.conduits.FixedLengthStreamSourceConduit.invokeFinishListener:()V
         4: .line 337
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            getstatic io.undertow.conduits.FixedLengthStreamSourceConduit.MASK_COUNT:J
            ldc -1
            lxor
            land
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
         5: .line 338
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.couldNotReadContentLengthData:()Ljava/io/IOException;
            athrow
         6: .line 340
      StackMap locals: long
      StackMap stack:
            return
         7: .line 342
      StackMap locals:
      StackMap stack:
            lload 3 /* oldVal */
            lload 1 /* consumed */
            lsub
            lstore 5 /* newVal */
        start local 5 // long newVal
         8: .line 343
            aload 0 /* this */
            lload 5 /* newVal */
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
         9: .line 344
            return
        end local 5 // long newVal
        end local 3 // long oldVal
        end local 1 // long consumed
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
            0   10     1  consumed  J
            1   10     3    oldVal  J
            8   10     5    newVal  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      consumed  

  private void invokeFinishListener();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
         0: .line 347
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
            ldc 4611686018427387904
            lor
            putfield io.undertow.conduits.FixedLengthStreamSourceConduit.state:J
         1: .line 348
            aload 0 /* this */
            getfield io.undertow.conduits.FixedLengthStreamSourceConduit.finishListener:Lio/undertow/conduits/ConduitListener;
            aload 0 /* this */
            invokeinterface io.undertow.conduits.ConduitListener.handleEvent:(Lorg/xnio/conduits/Conduit;)V
         2: .line 349
            return
        end local 0 // io.undertow.conduits.FixedLengthStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/conduits/FixedLengthStreamSourceConduit;
}
Signature: Lorg/xnio/conduits/AbstractStreamSourceConduit<Lorg/xnio/conduits/StreamSourceConduit;>;
SourceFile: "FixedLengthStreamSourceConduit.java"