public class io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel extends io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel
  super_class: io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel
{
  private org.xnio.ChannelListener<io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel> finishListener;
    descriptor: Lorg/xnio/ChannelListener;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/xnio/ChannelListener<Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;>;

  private final io.undertow.util.HeaderMap headers;
    descriptor: Lio/undertow/util/HeaderMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int statusCode;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String reasonPhrase;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(io.undertow.protocols.ajp.AjpClientChannel, io.undertow.util.HeaderMap, int, java.lang.String, io.undertow.connector.PooledByteBuffer, int);
    descriptor: (Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/util/HeaderMap;ILjava/lang/String;Lio/undertow/connector/PooledByteBuffer;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=7
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
        start local 1 // io.undertow.protocols.ajp.AjpClientChannel framedChannel
        start local 2 // io.undertow.util.HeaderMap headers
        start local 3 // int statusCode
        start local 4 // java.lang.String reasonPhrase
        start local 5 // io.undertow.connector.PooledByteBuffer frameData
        start local 6 // int remaining
         0: .line 40
            aload 0 /* this */
            aload 1 /* framedChannel */
            aload 5 /* frameData */
            iload 6 /* remaining */
            i2l
            invokespecial io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel.<init>:(Lio/undertow/protocols/ajp/AjpClientChannel;Lio/undertow/connector/PooledByteBuffer;J)V
         1: .line 41
            aload 0 /* this */
            aload 2 /* headers */
            putfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.headers:Lio/undertow/util/HeaderMap;
         2: .line 42
            aload 0 /* this */
            iload 3 /* statusCode */
            putfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.statusCode:I
         3: .line 43
            aload 0 /* this */
            aload 4 /* reasonPhrase */
            putfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.reasonPhrase:Ljava/lang/String;
         4: .line 44
            return
        end local 6 // int remaining
        end local 5 // io.undertow.connector.PooledByteBuffer frameData
        end local 4 // java.lang.String reasonPhrase
        end local 3 // int statusCode
        end local 2 // io.undertow.util.HeaderMap headers
        end local 1 // io.undertow.protocols.ajp.AjpClientChannel framedChannel
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
            0    5     1  framedChannel  Lio/undertow/protocols/ajp/AjpClientChannel;
            0    5     2        headers  Lio/undertow/util/HeaderMap;
            0    5     3     statusCode  I
            0    5     4   reasonPhrase  Ljava/lang/String;
            0    5     5      frameData  Lio/undertow/connector/PooledByteBuffer;
            0    5     6      remaining  I
    MethodParameters:
               Name  Flags
      framedChannel  
      headers        
      statusCode     
      reasonPhrase   
      frameData      
      remaining      

  public io.undertow.util.HeaderMap getHeaders();
    descriptor: ()Lio/undertow/util/HeaderMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 47
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.headers:Lio/undertow/util/HeaderMap;
            areturn
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;

  public int getStatusCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 51
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.statusCode:I
            ireturn
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;

  public java.lang.String getReasonPhrase();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 55
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.reasonPhrase:Ljava/lang/String;
            areturn
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;

  public void setFinishListener(org.xnio.ChannelListener<io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel>);
    descriptor: (Lorg/xnio/ChannelListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
        start local 1 // org.xnio.ChannelListener finishListener
         0: .line 59
            aload 0 /* this */
            aload 1 /* finishListener */
            putfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.finishListener:Lorg/xnio/ChannelListener;
         1: .line 60
            return
        end local 1 // org.xnio.ChannelListener finishListener
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
            0    2     1  finishListener  Lorg/xnio/ChannelListener<Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;>;
    Signature: (Lorg/xnio/ChannelListener<Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;>;)V
    MethodParameters:
                Name  Flags
      finishListener  

  protected void handleHeaderData(io.undertow.server.protocol.framed.FrameHeaderData);
    descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
        start local 1 // io.undertow.server.protocol.framed.FrameHeaderData headerData
         0: .line 64
            aload 1 /* headerData */
            instanceof io.undertow.protocols.ajp.AjpClientChannel$EndResponse
            ifeq 2
         1: .line 65
            aload 0 /* this */
            invokevirtual io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.lastFrame:()V
         2: .line 67
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.undertow.server.protocol.framed.FrameHeaderData headerData
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
            0    3     1  headerData  Lio/undertow/server/protocol/framed/FrameHeaderData;
    MethodParameters:
            Name  Flags
      headerData  

  protected long updateFrameDataRemaining(io.undertow.connector.PooledByteBuffer, long);
    descriptor: (Lio/undertow/connector/PooledByteBuffer;J)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
        start local 1 // io.undertow.connector.PooledByteBuffer frameData
        start local 2 // long frameDataRemaining
         0: .line 70
            lload 2 /* frameDataRemaining */
            lconst_0
            lcmp
            ifle 3
            aload 1 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lload 2 /* frameDataRemaining */
            lcmp
            ifne 3
         1: .line 72
            aload 1 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            aload 1 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_1
            isub
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         2: .line 73
            lload 2 /* frameDataRemaining */
            lconst_1
            lsub
            lreturn
         3: .line 75
      StackMap locals:
      StackMap stack:
            lload 2 /* frameDataRemaining */
            lreturn
        end local 2 // long frameDataRemaining
        end local 1 // io.undertow.connector.PooledByteBuffer frameData
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0                this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
            0    4     1           frameData  Lio/undertow/connector/PooledByteBuffer;
            0    4     2  frameDataRemaining  J
    MethodParameters:
                    Name  Flags
      frameData           
      frameDataRemaining  

  protected void complete();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 80
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.finishListener:Lorg/xnio/ChannelListener;
            ifnull 3
         1: .line 81
            aload 0 /* this */
            invokevirtual io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.getFramedChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            checkcast io.undertow.protocols.ajp.AjpClientChannel
            invokevirtual io.undertow.protocols.ajp.AjpClientChannel.sourceDone:()V
         2: .line 82
            aload 0 /* this */
            getfield io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.finishListener:Lorg/xnio/ChannelListener;
            aload 0 /* this */
            invokeinterface org.xnio.ChannelListener.handleEvent:(Ljava/nio/channels/Channel;)V
         3: .line 84
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
    Exceptions:
      throws java.io.IOException

  public void wakeupReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 88
            aload 0 /* this */
            invokespecial io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel.wakeupReads:()V
         1: .line 89
            aload 0 /* this */
            invokevirtual io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.getFramedChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            checkcast io.undertow.protocols.ajp.AjpClientChannel
            invokevirtual io.undertow.protocols.ajp.AjpClientChannel.resumeReceives:()V
         2: .line 90
            return
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;

  public void resumeReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 94
            aload 0 /* this */
            invokespecial io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel.resumeReads:()V
         1: .line 95
            aload 0 /* this */
            invokevirtual io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.getFramedChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            checkcast io.undertow.protocols.ajp.AjpClientChannel
            invokevirtual io.undertow.protocols.ajp.AjpClientChannel.resumeReceives:()V
         2: .line 96
            return
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;

  public void suspendReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
         0: .line 100
            aload 0 /* this */
            invokevirtual io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel.getFramedChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            checkcast io.undertow.protocols.ajp.AjpClientChannel
            invokevirtual io.undertow.protocols.ajp.AjpClientChannel.suspendReceives:()V
         1: .line 101
            aload 0 /* this */
            invokespecial io.undertow.protocols.ajp.AbstractAjpClientStreamSourceChannel.suspendReads:()V
         2: .line 102
            return
        end local 0 // io.undertow.protocols.ajp.AjpClientResponseStreamSourceChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/protocols/ajp/AjpClientResponseStreamSourceChannel;
}
SourceFile: "AjpClientResponseStreamSourceChannel.java"
InnerClasses:
  EndResponse = io.undertow.protocols.ajp.AjpClientChannel$EndResponse of io.undertow.protocols.ajp.AjpClientChannel