public abstract class io.undertow.server.AbstractServerConnection extends io.undertow.server.ServerConnection
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.undertow.server.AbstractServerConnection
  super_class: io.undertow.server.ServerConnection
{
  protected final org.xnio.StreamConnection channel;
    descriptor: Lorg/xnio/StreamConnection;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.undertow.server.AbstractServerConnection$CloseSetter closeSetter;
    descriptor: Lio/undertow/server/AbstractServerConnection$CloseSetter;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.undertow.connector.ByteBufferPool bufferPool;
    descriptor: Lio/undertow/connector/ByteBufferPool;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final io.undertow.server.HttpHandler rootHandler;
    descriptor: Lio/undertow/server/HttpHandler;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.xnio.OptionMap undertowOptions;
    descriptor: Lorg/xnio/OptionMap;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.xnio.conduits.StreamSourceConduit originalSourceConduit;
    descriptor: Lorg/xnio/conduits/StreamSourceConduit;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.xnio.conduits.StreamSinkConduit originalSinkConduit;
    descriptor: Lorg/xnio/conduits/StreamSinkConduit;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.util.List<io.undertow.server.ServerConnection$CloseListener> closeListeners;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/List<Lio/undertow/server/ServerConnection$CloseListener;>;

  protected io.undertow.server.HttpServerExchange current;
    descriptor: Lio/undertow/server/HttpServerExchange;
    flags: (0x0004) ACC_PROTECTED

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

  private io.undertow.server.XnioBufferPoolAdaptor poolAdaptor;
    descriptor: Lio/undertow/server/XnioBufferPoolAdaptor;
    flags: (0x0002) ACC_PRIVATE

  protected io.undertow.connector.PooledByteBuffer extraBytes;
    descriptor: Lio/undertow/connector/PooledByteBuffer;
    flags: (0x0004) ACC_PROTECTED

  public void <init>(org.xnio.StreamConnection, io.undertow.connector.ByteBufferPool, io.undertow.server.HttpHandler, org.xnio.OptionMap, int);
    descriptor: (Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/HttpHandler;Lorg/xnio/OptionMap;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // org.xnio.StreamConnection channel
        start local 2 // io.undertow.connector.ByteBufferPool bufferPool
        start local 3 // io.undertow.server.HttpHandler rootHandler
        start local 4 // org.xnio.OptionMap undertowOptions
        start local 5 // int bufferSize
         0: .line 65
            aload 0 /* this */
            invokespecial io.undertow.server.ServerConnection.<init>:()V
         1: .line 52
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield io.undertow.server.AbstractServerConnection.closeListeners:Ljava/util/List;
         2: .line 66
            aload 0 /* this */
            aload 1 /* channel */
            putfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
         3: .line 67
            aload 0 /* this */
            aload 2 /* bufferPool */
            putfield io.undertow.server.AbstractServerConnection.bufferPool:Lio/undertow/connector/ByteBufferPool;
         4: .line 68
            aload 0 /* this */
            aload 3 /* rootHandler */
            putfield io.undertow.server.AbstractServerConnection.rootHandler:Lio/undertow/server/HttpHandler;
         5: .line 69
            aload 0 /* this */
            aload 4 /* undertowOptions */
            putfield io.undertow.server.AbstractServerConnection.undertowOptions:Lorg/xnio/OptionMap;
         6: .line 70
            aload 0 /* this */
            iload 5 /* bufferSize */
            putfield io.undertow.server.AbstractServerConnection.bufferSize:I
         7: .line 71
            aload 0 /* this */
            new io.undertow.server.AbstractServerConnection$CloseSetter
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.AbstractServerConnection$CloseSetter.<init>:(Lio/undertow/server/AbstractServerConnection;)V
            putfield io.undertow.server.AbstractServerConnection.closeSetter:Lio/undertow/server/AbstractServerConnection$CloseSetter;
         8: .line 72
            aload 1 /* channel */
            ifnull 13
         9: .line 73
            aload 0 /* this */
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
            putfield io.undertow.server.AbstractServerConnection.originalSinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
        10: .line 74
            aload 0 /* this */
            aload 1 /* channel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
            putfield io.undertow.server.AbstractServerConnection.originalSourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
        11: .line 75
            aload 1 /* channel */
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.closeSetter:Lio/undertow/server/AbstractServerConnection$CloseSetter;
            invokevirtual org.xnio.StreamConnection.setCloseListener:(Lorg/xnio/ChannelListener;)V
        12: .line 76
            goto 15
        13: .line 77
      StackMap locals: io.undertow.server.AbstractServerConnection org.xnio.StreamConnection io.undertow.connector.ByteBufferPool io.undertow.server.HttpHandler org.xnio.OptionMap int
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.AbstractServerConnection.originalSinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
        14: .line 78
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.AbstractServerConnection.originalSourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
        15: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int bufferSize
        end local 4 // org.xnio.OptionMap undertowOptions
        end local 3 // io.undertow.server.HttpHandler rootHandler
        end local 2 // io.undertow.connector.ByteBufferPool bufferPool
        end local 1 // org.xnio.StreamConnection channel
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lio/undertow/server/AbstractServerConnection;
            0   16     1          channel  Lorg/xnio/StreamConnection;
            0   16     2       bufferPool  Lio/undertow/connector/ByteBufferPool;
            0   16     3      rootHandler  Lio/undertow/server/HttpHandler;
            0   16     4  undertowOptions  Lorg/xnio/OptionMap;
            0   16     5       bufferSize  I
    MethodParameters:
                 Name  Flags
      channel          
      bufferPool       final
      rootHandler      final
      undertowOptions  final
      bufferSize       final

  public org.xnio.Pool<java.nio.ByteBuffer> getBufferPool();
    descriptor: ()Lorg/xnio/Pool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 84
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.poolAdaptor:Lio/undertow/server/XnioBufferPoolAdaptor;
            ifnonnull 2
         1: .line 85
            aload 0 /* this */
            new io.undertow.server.XnioBufferPoolAdaptor
            dup
            aload 0 /* this */
            invokevirtual io.undertow.server.AbstractServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokespecial io.undertow.server.XnioBufferPoolAdaptor.<init>:(Lio/undertow/connector/ByteBufferPool;)V
            putfield io.undertow.server.AbstractServerConnection.poolAdaptor:Lio/undertow/server/XnioBufferPoolAdaptor;
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.poolAdaptor:Lio/undertow/server/XnioBufferPoolAdaptor;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/server/AbstractServerConnection;
    Signature: ()Lorg/xnio/Pool<Ljava/nio/ByteBuffer;>;

  public io.undertow.server.HttpHandler getRootHandler();
    descriptor: ()Lio/undertow/server/HttpHandler;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 96
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.rootHandler:Lio/undertow/server/HttpHandler;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public io.undertow.connector.ByteBufferPool getByteBufferPool();
    descriptor: ()Lio/undertow/connector/ByteBufferPool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 106
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.bufferPool:Lio/undertow/connector/ByteBufferPool;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public org.xnio.StreamConnection getChannel();
    descriptor: ()Lorg/xnio/StreamConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 115
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public org.xnio.ChannelListener$Setter<io.undertow.server.ServerConnection> getCloseSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 120
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.closeSetter:Lio/undertow/server/AbstractServerConnection$CloseSetter;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;
    Signature: ()Lorg/xnio/ChannelListener$Setter<Lio/undertow/server/ServerConnection;>;

  public org.xnio.XnioWorker getWorker();
    descriptor: ()Lorg/xnio/XnioWorker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 125
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getWorker:()Lorg/xnio/XnioWorker;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public org.xnio.XnioIoThread getIoThread();
    descriptor: ()Lorg/xnio/XnioIoThread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 130
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            ifnonnull 2
         1: .line 131
            aconst_null
            areturn
         2: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/server/AbstractServerConnection;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 139
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.isOpen:()Z
            ireturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public boolean supportsOption(org.xnio.Option<?>);
    descriptor: (Lorg/xnio/Option;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // org.xnio.Option option
         0: .line 144
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            aload 1 /* option */
            invokevirtual org.xnio.StreamConnection.supportsOption:(Lorg/xnio/Option;)Z
            ireturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  option  Lorg/xnio/Option<*>;
    Signature: (Lorg/xnio/Option<*>;)Z
    MethodParameters:
        Name  Flags
      option  final

  public <T> T getOption(org.xnio.Option<T>);
    descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // org.xnio.Option option
         0: .line 149
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            aload 1 /* option */
            invokevirtual org.xnio.StreamConnection.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            areturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  option  Lorg/xnio/Option<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
    MethodParameters:
        Name  Flags
      option  final

  public <T> T setOption(org.xnio.Option<T>, );
    descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // org.xnio.Option option
        start local 2 // java.lang.Object value
         0: .line 154
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            aload 1 /* option */
            aload 2 /* value */
            invokevirtual org.xnio.StreamConnection.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  option  Lorg/xnio/Option<TT;>;
            0    1     2   value  TT;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
    MethodParameters:
        Name  Flags
      option  final
      value   final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 159
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.close:()V
         1: .line 160
            return
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/AbstractServerConnection;
    Exceptions:
      throws java.io.IOException

  public java.net.SocketAddress getPeerAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 164
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public <A extends java.net.SocketAddress> A getPeerAddress(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // java.lang.Class type
         0: .line 169
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            aload 1 /* type */
            invokevirtual org.xnio.StreamConnection.getPeerAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  type  Ljava/lang/Class<TA;>;
    Signature: <A:Ljava/net/SocketAddress;>(Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
      Name  Flags
      type  final

  public java.net.SocketAddress getLocalAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 174
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getLocalAddress:()Ljava/net/SocketAddress;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public <A extends java.net.SocketAddress> A getLocalAddress(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // java.lang.Class type
         0: .line 179
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            aload 1 /* type */
            invokevirtual org.xnio.StreamConnection.getLocalAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
            areturn
        end local 1 // java.lang.Class type
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  type  Ljava/lang/Class<TA;>;
    Signature: <A:Ljava/net/SocketAddress;>(Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
      Name  Flags
      type  final

  public org.xnio.OptionMap getUndertowOptions();
    descriptor: ()Lorg/xnio/OptionMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 184
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.undertowOptions:Lorg/xnio/OptionMap;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public int getBufferSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 192
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.bufferSize:I
            ireturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public io.undertow.connector.PooledByteBuffer getExtraBytes();
    descriptor: ()Lio/undertow/connector/PooledByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 196
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.extraBytes:Lio/undertow/connector/PooledByteBuffer;
            ifnull 4
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.extraBytes:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 4
         1: .line 197
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.extraBytes:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
         2: .line 198
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.AbstractServerConnection.extraBytes:Lio/undertow/connector/PooledByteBuffer;
         3: .line 199
            aconst_null
            areturn
         4: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.extraBytes:Lio/undertow/connector/PooledByteBuffer;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/server/AbstractServerConnection;

  public void setExtraBytes(io.undertow.connector.PooledByteBuffer);
    descriptor: (Lio/undertow/connector/PooledByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // io.undertow.connector.PooledByteBuffer extraBytes
         0: .line 205
            aload 0 /* this */
            aload 1 /* extraBytes */
            putfield io.undertow.server.AbstractServerConnection.extraBytes:Lio/undertow/connector/PooledByteBuffer;
         1: .line 206
            return
        end local 1 // io.undertow.connector.PooledByteBuffer extraBytes
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/undertow/server/AbstractServerConnection;
            0    2     1  extraBytes  Lio/undertow/connector/PooledByteBuffer;
    MethodParameters:
            Name  Flags
      extraBytes  final

  public org.xnio.conduits.StreamSourceConduit getOriginalSourceConduit();
    descriptor: ()Lorg/xnio/conduits/StreamSourceConduit;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 212
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.originalSourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public org.xnio.conduits.StreamSinkConduit getOriginalSinkConduit();
    descriptor: ()Lorg/xnio/conduits/StreamSinkConduit;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 219
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.originalSinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  public io.undertow.server.AbstractServerConnection$ConduitState resetChannel();
    descriptor: ()Lio/undertow/server/AbstractServerConnection$ConduitState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 230
            new io.undertow.server.AbstractServerConnection$ConduitState
            dup
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
            invokespecial io.undertow.server.AbstractServerConnection$ConduitState.<init>:(Lorg/xnio/conduits/StreamSinkConduit;Lorg/xnio/conduits/StreamSourceConduit;)V
            astore 1 /* ret */
        start local 1 // io.undertow.server.AbstractServerConnection$ConduitState ret
         1: .line 231
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.originalSinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
         2: .line 232
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.originalSourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
         3: .line 233
            aload 1 /* ret */
            areturn
        end local 1 // io.undertow.server.AbstractServerConnection$ConduitState ret
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/server/AbstractServerConnection;
            1    4     1   ret  Lio/undertow/server/AbstractServerConnection$ConduitState;

  public void clearChannel();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 241
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.originalSinkConduit:Lorg/xnio/conduits/StreamSinkConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
         1: .line 242
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.originalSourceConduit:Lorg/xnio/conduits/StreamSourceConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
         2: .line 243
            return
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/server/AbstractServerConnection;

  public void restoreChannel(io.undertow.server.AbstractServerConnection$ConduitState);
    descriptor: (Lio/undertow/server/AbstractServerConnection$ConduitState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // io.undertow.server.AbstractServerConnection$ConduitState state
         0: .line 251
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 1 /* state */
            getfield io.undertow.server.AbstractServerConnection$ConduitState.sink:Lorg/xnio/conduits/StreamSinkConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
         1: .line 252
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 1 /* state */
            getfield io.undertow.server.AbstractServerConnection$ConduitState.source:Lorg/xnio/conduits/StreamSourceConduit;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
         2: .line 253
            return
        end local 1 // io.undertow.server.AbstractServerConnection$ConduitState state
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/undertow/server/AbstractServerConnection;
            0    3     1  state  Lio/undertow/server/AbstractServerConnection$ConduitState;
    MethodParameters:
       Name  Flags
      state  final

  protected static org.xnio.conduits.StreamSinkConduit sink(io.undertow.server.AbstractServerConnection$ConduitState);
    descriptor: (Lio/undertow/server/AbstractServerConnection$ConduitState;)Lorg/xnio/conduits/StreamSinkConduit;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection$ConduitState state
         0: .line 266
            aload 0 /* state */
            getfield io.undertow.server.AbstractServerConnection$ConduitState.sink:Lorg/xnio/conduits/StreamSinkConduit;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection$ConduitState state
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  state  Lio/undertow/server/AbstractServerConnection$ConduitState;
    MethodParameters:
       Name  Flags
      state  

  protected static org.xnio.conduits.StreamSourceConduit source(io.undertow.server.AbstractServerConnection$ConduitState);
    descriptor: (Lio/undertow/server/AbstractServerConnection$ConduitState;)Lorg/xnio/conduits/StreamSourceConduit;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection$ConduitState state
         0: .line 270
            aload 0 /* state */
            getfield io.undertow.server.AbstractServerConnection$ConduitState.source:Lorg/xnio/conduits/StreamSourceConduit;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection$ConduitState state
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  state  Lio/undertow/server/AbstractServerConnection$ConduitState;
    MethodParameters:
       Name  Flags
      state  

  public void addCloseListener(io.undertow.server.ServerConnection$CloseListener);
    descriptor: (Lio/undertow/server/ServerConnection$CloseListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // io.undertow.server.ServerConnection$CloseListener listener
         0: .line 275
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.closeListeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 276
            return
        end local 1 // io.undertow.server.ServerConnection$CloseListener listener
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lio/undertow/server/AbstractServerConnection;
            0    2     1  listener  Lio/undertow/server/ServerConnection$CloseListener;
    MethodParameters:
          Name  Flags
      listener  

  protected org.xnio.conduits.ConduitStreamSinkChannel getSinkChannel();
    descriptor: ()Lorg/xnio/conduits/ConduitStreamSinkChannel;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 280
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  protected org.xnio.conduits.ConduitStreamSourceChannel getSourceChannel();
    descriptor: ()Lorg/xnio/conduits/ConduitStreamSourceChannel;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.AbstractServerConnection this
         0: .line 285
            aload 0 /* this */
            getfield io.undertow.server.AbstractServerConnection.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            areturn
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/AbstractServerConnection;

  protected void setUpgradeListener(io.undertow.server.HttpUpgradeListener);
    descriptor: (Lio/undertow/server/HttpUpgradeListener;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // io.undertow.server.HttpUpgradeListener upgradeListener
         0: .line 289
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.upgradeNotSupported:()Ljava/lang/IllegalStateException;
            athrow
        end local 1 // io.undertow.server.HttpUpgradeListener upgradeListener
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  upgradeListener  Lio/undertow/server/HttpUpgradeListener;
    MethodParameters:
                 Name  Flags
      upgradeListener  

  protected void maxEntitySizeUpdated(io.undertow.server.HttpServerExchange);
    descriptor: (Lio/undertow/server/HttpServerExchange;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.undertow.server.AbstractServerConnection this
        start local 1 // io.undertow.server.HttpServerExchange exchange
         0: .line 294
            return
        end local 1 // io.undertow.server.HttpServerExchange exchange
        end local 0 // io.undertow.server.AbstractServerConnection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/undertow/server/AbstractServerConnection;
            0    1     1  exchange  Lio/undertow/server/HttpServerExchange;
    MethodParameters:
          Name  Flags
      exchange  
}
SourceFile: "AbstractServerConnection.java"
NestMembers:
  io.undertow.server.AbstractServerConnection$CloseSetter  io.undertow.server.AbstractServerConnection$ConduitState
InnerClasses:
  private CloseSetter = io.undertow.server.AbstractServerConnection$CloseSetter of io.undertow.server.AbstractServerConnection
  public ConduitState = io.undertow.server.AbstractServerConnection$ConduitState of io.undertow.server.AbstractServerConnection
  public abstract CloseListener = io.undertow.server.ServerConnection$CloseListener of io.undertow.server.ServerConnection
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener