public class io.undertow.conduits.RangeStreamSinkConduit extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.conduits.RangeStreamSinkConduit
  super_class: org.xnio.conduits.AbstractStreamSinkConduit
{
  private final long start;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long end;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long originalResponseLength;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  public void <init>(org.xnio.conduits.StreamSinkConduit, long, long, long);
    descriptor: (Lorg/xnio/conduits/StreamSinkConduit;JJJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // org.xnio.conduits.StreamSinkConduit next
        start local 2 // long start
        start local 4 // long end
        start local 6 // long originalResponseLength
         0: .line 43
            aload 0 /* this */
            aload 1 /* next */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
         1: .line 44
            aload 0 /* this */
            lload 2 /* start */
            putfield io.undertow.conduits.RangeStreamSinkConduit.start:J
         2: .line 45
            aload 0 /* this */
            lload 4 /* end */
            putfield io.undertow.conduits.RangeStreamSinkConduit.end:J
         3: .line 46
            aload 0 /* this */
            lload 6 /* originalResponseLength */
            putfield io.undertow.conduits.RangeStreamSinkConduit.originalResponseLength:J
         4: .line 47
            return
        end local 6 // long originalResponseLength
        end local 4 // long end
        end local 2 // long start
        end local 1 // org.xnio.conduits.StreamSinkConduit next
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    5     0                    this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0    5     1                    next  Lorg/xnio/conduits/StreamSinkConduit;
            0    5     2                   start  J
            0    5     4                     end  J
            0    5     6  originalResponseLength  J
    MethodParameters:
                        Name  Flags
      next                    
      start                   
      end                     
      originalResponseLength  

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer src
         0: .line 51
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.start:J
            lcmp
            iflt 1
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.end:J
            lcmp
            ifgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* currentInclude */
        start local 2 // boolean currentInclude
         3: .line 52
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.start:J
            lcmp
            ifge 4
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.start:J
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            lsub
            goto 6
      StackMap locals: int
      StackMap stack:
         4: aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.end:J
            lcmp
            ifgt 5
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.end:J
            aload 0 /* this */
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            lsub
            lconst_1
            ladd
            goto 6
      StackMap locals:
      StackMap stack:
         5: ldc 9223372036854775807
      StackMap locals:
      StackMap stack: long
         6: lstore 3 /* bytesRemaining */
        start local 3 // long bytesRemaining
         7: .line 53
            iload 2 /* currentInclude */
            ifeq 33
         8: .line 54
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 5 /* old */
        start local 5 // int old
         9: .line 55
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            lload 3 /* bytesRemaining */
            ladd
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            i2l
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        10: .line 57
            iconst_0
            istore 7 /* toConsume */
        start local 7 // int toConsume
        11: .line 59
            aload 0 /* this */
            aload 1 /* src */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            istore 6 /* written */
        start local 6 // int written
        12: .line 60
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            iload 6 /* written */
            i2l
            ladd
            putfield io.undertow.conduits.RangeStreamSinkConduit.written:J
        13: .line 61
            goto 24
        end local 6 // int written
      StackMap locals: io.undertow.conduits.RangeStreamSinkConduit java.nio.ByteBuffer int long int top int
      StackMap stack: java.lang.Throwable
        14: astore 8
        15: .line 62
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 22
        16: .line 64
            aload 1 /* src */
            iload 5 /* old */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        17: .line 65
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 23
        18: .line 66
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 7 /* toConsume */
        19: .line 68
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            iload 7 /* toConsume */
            i2l
            ladd
            putfield io.undertow.conduits.RangeStreamSinkConduit.written:J
        20: .line 69
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        21: .line 71
            goto 23
        22: .line 72
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 1 /* src */
            iload 5 /* old */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        23: .line 74
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        start local 6 // int written
        24: .line 62
      StackMap locals: io.undertow.conduits.RangeStreamSinkConduit java.nio.ByteBuffer int long int int int
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 31
        25: .line 64
            aload 1 /* src */
            iload 5 /* old */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        26: .line 65
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 32
        27: .line 66
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 7 /* toConsume */
        28: .line 68
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            iload 7 /* toConsume */
            i2l
            ladd
            putfield io.undertow.conduits.RangeStreamSinkConduit.written:J
        29: .line 69
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        30: .line 71
            goto 32
        31: .line 72
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            iload 5 /* old */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        32: .line 75
      StackMap locals:
      StackMap stack:
            iload 6 /* written */
            iload 7 /* toConsume */
            iadd
            ireturn
        end local 7 // int toConsume
        end local 6 // int written
        end local 5 // int old
        33: .line 77
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lload 3 /* bytesRemaining */
            lcmp
            ifgt 38
        34: .line 78
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 5 /* rem */
        start local 5 // int rem
        35: .line 79
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            iload 5 /* rem */
            i2l
            ladd
            putfield io.undertow.conduits.RangeStreamSinkConduit.written:J
        36: .line 80
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        37: .line 81
            iload 5 /* rem */
            ireturn
        end local 5 // int rem
        38: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.undertow.conduits.RangeStreamSinkConduit.written:J
            lload 3 /* bytesRemaining */
            ladd
            putfield io.undertow.conduits.RangeStreamSinkConduit.written:J
        39: .line 84
            aload 1 /* src */
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            lload 3 /* bytesRemaining */
            ladd
            l2i
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        40: .line 85
            lload 3 /* bytesRemaining */
            l2i
            aload 0 /* this */
            aload 1 /* src */
            invokevirtual io.undertow.conduits.RangeStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            iadd
            ireturn
        end local 3 // long bytesRemaining
        end local 2 // boolean currentInclude
        end local 1 // java.nio.ByteBuffer src
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   41     0            this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0   41     1             src  Ljava/nio/ByteBuffer;
            3   41     2  currentInclude  Z
            7   41     3  bytesRemaining  J
            9   33     5             old  I
           12   14     6         written  I
           24   33     6         written  I
           11   33     7       toConsume  I
           35   38     5             rem  I
      Exception table:
        from    to  target  type
          11    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offs
        start local 3 // int len
         0: .line 92
            lconst_0
            lstore 4 /* ret */
        start local 4 // long ret
         1: .line 94
            iload 2 /* offs */
            istore 6 /* i */
        start local 6 // int i
         2: goto 9
         3: .line 95
      StackMap locals: long int
      StackMap stack:
            aload 1 /* srcs */
            iload 6 /* i */
            aaload
            astore 7 /* buf */
        start local 7 // java.nio.ByteBuffer buf
         4: .line 96
            aload 7 /* buf */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            ifle 8
         5: .line 97
            lload 4 /* ret */
            aload 0 /* this */
            aload 7 /* buf */
            invokevirtual io.undertow.conduits.RangeStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            i2l
            ladd
            lstore 4 /* ret */
         6: .line 98
            aload 7 /* buf */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 8
         7: .line 99
            lload 4 /* ret */
            lreturn
        end local 7 // java.nio.ByteBuffer buf
         8: .line 94
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 6 /* i */
            iload 2 /* offs */
            iload 3 /* len */
            iadd
            if_icmplt 3
        end local 6 // int i
        10: .line 103
            lload 4 /* ret */
            lreturn
        end local 4 // long ret
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0   11     1  srcs  [Ljava/nio/ByteBuffer;
            0   11     2  offs  I
            0   11     3   len  I
            1   11     4   ret  J
            2   10     6     i  I
            4    8     7   buf  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  
      offs  
      len   

  public long transferFrom(org.xnio.channels.StreamSourceChannel, long, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // long count
        start local 4 // java.nio.ByteBuffer throughBuffer
         0: .line 109
            aload 1 /* source */
            lload 2 /* count */
            aload 4 /* throughBuffer */
            new org.xnio.conduits.ConduitWritableByteChannel
            dup
            aload 0 /* this */
            invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
            invokestatic org.xnio.IoUtils.transfer:(Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
            lreturn
        end local 4 // java.nio.ByteBuffer throughBuffer
        end local 2 // long count
        end local 1 // org.xnio.channels.StreamSourceChannel source
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0    1     1         source  Lorg/xnio/channels/StreamSourceChannel;
            0    1     2          count  J
            0    1     4  throughBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      source         
      count          
      throughBuffer  

  public long transferFrom(java.nio.channels.FileChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // java.nio.channels.FileChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 114
            aload 1 /* src */
            lload 2 /* position */
            lload 4 /* count */
            new org.xnio.conduits.ConduitWritableByteChannel
            dup
            aload 0 /* this */
            invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
            invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
            lreturn
        end local 4 // long count
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel src
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0    1     1       src  Ljava/nio/channels/FileChannel;
            0    1     2  position  J
            0    1     4     count  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       
      position  
      count     

  public long writeFinal(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 119
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.conduits.Conduits.writeFinalBasic:(Lorg/xnio/conduits/StreamSinkConduit;[Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0    1     1    srcs  [Ljava/nio/ByteBuffer;
            0    1     2  offset  I
            0    1     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    
      offset  
      length  

  public int writeFinal(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.conduits.RangeStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer src
         0: .line 124
            aload 0 /* this */
            aload 1 /* src */
            invokestatic org.xnio.conduits.Conduits.writeFinalBasic:(Lorg/xnio/conduits/StreamSinkConduit;Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // io.undertow.conduits.RangeStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/conduits/RangeStreamSinkConduit;
            0    1     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   
}
Signature: Lorg/xnio/conduits/AbstractStreamSinkConduit<Lorg/xnio/conduits/StreamSinkConduit;>;
SourceFile: "RangeStreamSinkConduit.java"