public abstract class io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel<C extends io.undertow.server.protocol.framed.AbstractFramedChannel<C, R, S>, R extends io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<C, R, S>, S extends io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel<C, R, S>> implements org.xnio.channels.StreamSinkChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
  super_class: java.lang.Object
{
  private static final io.undertow.connector.PooledByteBuffer EMPTY_BYTE_BUFFER;
    descriptor: Lio/undertow/connector/PooledByteBuffer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final C channel;
    descriptor: Lio/undertow/server/protocol/framed/AbstractFramedChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: TC;

  private final org.xnio.ChannelListener$SimpleSetter<S> writeSetter;
    descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/ChannelListener$SimpleSetter<TS;>;

  private final org.xnio.ChannelListener$SimpleSetter<S> closeSetter;
    descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/ChannelListener$SimpleSetter<TS;>;

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

  private volatile int state;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean readyForFlush;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean fullyFlushed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean finalFrameQueued;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean broken;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int waiterCount;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile io.undertow.server.protocol.framed.SendFrameHeader header;
    descriptor: Lio/undertow/server/protocol/framed/SendFrameHeader;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile io.undertow.connector.PooledByteBuffer writeBuffer;
    descriptor: Lio/undertow/connector/PooledByteBuffer;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile io.undertow.connector.PooledByteBuffer body;
    descriptor: Lio/undertow/connector/PooledByteBuffer;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final int STATE_CLOSED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STATE_WRITES_SHUTDOWN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int STATE_FIRST_DATA_WRITTEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int STATE_PRE_WRITE_CALLED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private volatile boolean bufferFull;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean writesResumed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int inListenerLoop;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean writeSucceeded;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel> inListenerLoopUpdater;
    descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 60
            new io.undertow.util.ImmediatePooledByteBuffer
            dup
            iconst_0
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            invokespecial io.undertow.util.ImmediatePooledByteBuffer.<init>:(Ljava/nio/ByteBuffer;)V
            putstatic io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.EMPTY_BYTE_BUFFER:Lio/undertow/connector/PooledByteBuffer;
         1: .line 114
            ldc Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;
            ldc "inListenerLoop"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            putstatic io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.inListenerLoopUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // io.undertow.server.protocol.framed.AbstractFramedChannel channel
         0: .line 116
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new org.xnio.ChannelListener$SimpleSetter
            dup
            invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
         2: .line 64
            aload 0 /* this */
            new org.xnio.ChannelListener$SimpleSetter
            dup
            invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
         3: .line 66
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
         4: .line 71
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         5: .line 96
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
         6: .line 117
            aload 0 /* this */
            aload 1 /* channel */
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
         7: .line 118
            return
        end local 1 // io.undertow.server.protocol.framed.AbstractFramedChannel channel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    8     1  channel  TC;
    Signature: (TC;)V
    MethodParameters:
         Name  Flags
      channel  

  public long transferFrom(java.nio.channels.FileChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.channels.FileChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 121
            aload 1 /* src */
            lload 2 /* position */
            lload 4 /* count */
            aload 0 /* this */
            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.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            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       final
      position  final
      count     final

  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=5, locals=5, args_size=4
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // long count
        start local 4 // java.nio.ByteBuffer throughBuffer
         0: .line 125
            aload 1 /* source */
            lload 2 /* count */
            aload 4 /* throughBuffer */
            aload 0 /* this */
            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.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            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         final
      count          final
      throughBuffer  final

  public void suspendWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 130
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writesResumed:Z
         1: .line 131
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  final io.undertow.server.protocol.framed.SendFrameHeader getFrameHeader();
    descriptor: ()Lio/undertow/server/protocol/framed/SendFrameHeader;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 146
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            ifnonnull 4
         1: .line 147
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.createFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
         2: .line 148
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            ifnonnull 4
         3: .line 149
            aload 0 /* this */
            new io.undertow.server.protocol.framed.SendFrameHeader
            dup
            iconst_0
            aconst_null
            invokespecial io.undertow.server.protocol.framed.SendFrameHeader.<init>:(ILio/undertow/connector/PooledByteBuffer;)V
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
         4: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  protected io.undertow.server.protocol.framed.SendFrameHeader createFrameHeader();
    descriptor: ()Lio/undertow/server/protocol/framed/SendFrameHeader;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 156
            aconst_null
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  final void preWrite();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 160
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 161
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            bipush 8
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifeq 4
         2: .line 162
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            bipush 8
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         3: .line 163
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.preWriteTransform:(Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
         4: .line 160
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 166
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  protected io.undertow.connector.PooledByteBuffer preWriteTransform(io.undertow.connector.PooledByteBuffer);
    descriptor: (Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // io.undertow.connector.PooledByteBuffer body
         0: .line 169
            aload 1 /* body */
            areturn
        end local 1 // io.undertow.connector.PooledByteBuffer body
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  body  Lio/undertow/connector/PooledByteBuffer;
    MethodParameters:
      Name  Flags
      body  

  public boolean isWriteResumed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 174
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writesResumed:Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public void wakeupWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 179
            aload 0 /* this */
            iconst_1
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.resumeWritesInternal:(Z)V
         1: .line 180
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public void resumeWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 184
            aload 0 /* this */
            iconst_0
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.resumeWritesInternal:(Z)V
         1: .line 185
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  protected void resumeWritesInternal(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // boolean wakeup
         0: .line 188
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writesResumed:Z
            istore 2 /* alreadyResumed */
        start local 2 // boolean alreadyResumed
         1: .line 189
            iload 1 /* wakeup */
            ifne 3
            iload 2 /* alreadyResumed */
            ifeq 3
         2: .line 190
            return
         3: .line 192
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writesResumed:Z
         4: .line 193
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 6
            iload 1 /* wakeup */
            ifne 6
         5: .line 195
            return
         6: .line 198
      StackMap locals:
      StackMap stack:
            getstatic io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.inListenerLoopUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 8
         7: .line 199
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            new io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel$1
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel$1.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
         8: .line 239
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean alreadyResumed
        end local 1 // boolean wakeup
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    9     1          wakeup  Z
            1    9     2  alreadyResumed  Z
    MethodParameters:
        Name  Flags
      wakeup  

  public void shutdownWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 244
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.queueFinalFrame:()V
         1: .line 245
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 246
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 3
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifeq 5
         3: .line 247
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         4: return
         5: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_2
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         6: .line 245
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 251
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           2     4       8  any
           5     7       8  any
           8     9       8  any
    Exceptions:
      throws java.io.IOException

  private void queueFinalFrame();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 254
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 255
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifne 12
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.fullyFlushed:Z
            ifne 12
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ifeq 12
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifne 12
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
            ifne 12
         2: .line 256
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnonnull 5
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnull 5
         3: .line 257
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.sendWriteBuffer:()V
         4: .line 258
            goto 7
      StackMap locals: java.lang.Object
      StackMap stack:
         5: aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnonnull 7
         6: .line 259
            aload 0 /* this */
            getstatic io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.EMPTY_BYTE_BUFFER:Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
         7: .line 261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
         8: .line 262
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_4
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         9: .line 263
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_2
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
        10: .line 264
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
        11: .line 265
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 1
            monitorexit
        13: return
        14: .line 254
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 1
            monitorexit
        17: athrow
        18: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.queueFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;)V
        19: .line 268
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           1    13      16  any
          14    15      16  any
          16    17      16  any
    Exceptions:
      throws java.io.IOException

  protected boolean isFinalFrameQueued();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 271
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public void awaitWritable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 276
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            if_acmpne 2
         1: .line 277
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.awaitCalledFromIoThread:()Ljava/io/IOException;
            athrow
         2: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 280
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 4
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifeq 6
         4: .line 281
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: return
         6: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 18
         7: .line 285
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            iconst_1
            iadd
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
         8: .line 288
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 17
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 17
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifne 17
         9: .line 289
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        10: .line 291
            goto 17
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        11: pop
        12: .line 292
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        13: .line 293
            new java.io.InterruptedIOException
            dup
            invokespecial java.io.InterruptedIOException.<init>:()V
            athrow
        14: .line 294
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        15: .line 295
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            iconst_1
            isub
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
        16: .line 296
            aload 2
            athrow
        17: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            iconst_1
            isub
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
        18: .line 279
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 1
            monitorexit
        21: athrow
        22: .line 299
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   23     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           7    10      11  Class java.lang.InterruptedException
           7    14      14  any
           3     5      20  any
           6    19      20  any
          20    21      20  any
    Exceptions:
      throws java.io.IOException

  public void awaitWritable(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // long l
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 303
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            if_acmpne 2
         1: .line 304
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.awaitCalledFromIoThread:()Ljava/io/IOException;
            athrow
         2: .line 306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         3: .line 307
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 4
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifeq 6
         4: .line 308
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4
            monitorexit
         5: return
         6: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 18
         7: .line 312
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            iconst_1
            iadd
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
         8: .line 313
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 17
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 17
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifne 17
         9: .line 314
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            aload 3 /* timeUnit */
            lload 1 /* l */
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokevirtual java.lang.Object.wait:(J)V
        10: .line 316
            goto 17
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        11: pop
        12: .line 317
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        13: .line 318
            new java.io.InterruptedIOException
            dup
            invokespecial java.io.InterruptedIOException.<init>:()V
            athrow
        14: .line 319
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        15: .line 320
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            iconst_1
            isub
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
        16: .line 321
            aload 5
            athrow
        17: .line 320
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            iconst_1
            isub
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
        18: .line 306
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 4
            monitorexit
        21: athrow
        22: .line 324
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long l
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0      this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0   23     1         l  J
            0   23     3  timeUnit  Ljava/util/concurrent/TimeUnit;
      Exception table:
        from    to  target  type
           7    10      11  Class java.lang.InterruptedException
           7    14      14  any
           3     5      20  any
           6    19      20  any
          20    21      20  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      l         
      timeUnit  

  public org.xnio.XnioExecutor getWriteThread();
    descriptor: ()Lorg/xnio/XnioExecutor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 328
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public org.xnio.ChannelListener$Setter<? extends S> getWriteSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 333
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+TS;>;

  public org.xnio.ChannelListener$Setter<? extends S> getCloseSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 338
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+TS;>;

  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.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 343
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getWorker:()Lorg/xnio/XnioWorker;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  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.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 348
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 353
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 2
         1: .line 354
            iconst_1
            ireturn
         2: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifeq 4
         3: .line 357
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         4: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 6
         5: .line 361
            iconst_0
            ireturn
         6: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         7: .line 364
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.fullyFlushed:Z
            ifeq 11
         8: .line 365
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         9: .line 366
            aload 1
            monitorexit
        10: iconst_1
            ireturn
        11: .line 363
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 18
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
            ifne 18
        16: .line 370
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.queueFinalFrame:()V
        17: .line 371
            iconst_0
            ireturn
        18: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 20
        19: .line 374
            iconst_0
            ireturn
        20: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isFlushRequiredOnEmptyBuffer:()Z
            ifne 21
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnull 25
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 25
        21: .line 377
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.handleBufferFull:()V
        22: .line 378
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 23
            iconst_0
            goto 24
      StackMap locals:
      StackMap stack:
        23: iconst_1
      StackMap locals:
      StackMap stack: int
        24: ireturn
        25: .line 380
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   26     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           7    10      13  any
          11    12      13  any
          13    14      13  any
    Exceptions:
      throws java.io.IOException

  protected boolean isFlushRequiredOnEmptyBuffer();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 384
            iconst_0
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 389
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.safeToSend:()Z
            ifne 2
         1: .line 390
            lconst_0
            lreturn
         2: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnonnull 4
         3: .line 393
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
         4: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            astore 4 /* buffer */
        start local 4 // java.nio.ByteBuffer buffer
         5: .line 396
            aload 4 /* buffer */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.Buffers.copy:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)I
            istore 5 /* copied */
        start local 5 // int copied
         6: .line 397
            aload 4 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 8
         7: .line 398
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.handleBufferFull:()V
         8: .line 400
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSucceeded:Z
            ifne 9
            iload 5 /* copied */
            ifgt 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
         9: iconst_1
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel java.nio.ByteBuffer[] int int java.nio.ByteBuffer int
      StackMap stack: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel int
        10: putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSucceeded:Z
        11: .line 401
            iload 5 /* copied */
            i2l
            lreturn
        end local 5 // int copied
        end local 4 // java.nio.ByteBuffer buffer
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0   12     1    srcs  [Ljava/nio/ByteBuffer;
            0   12     2  offset  I
            0   12     3  length  I
            5   12     4  buffer  Ljava/nio/ByteBuffer;
            6   12     5  copied  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    
      offset  
      length  

  public long write(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.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
         0: .line 406
            aload 0 /* this */
            aload 1 /* srcs */
            iconst_0
            aload 1 /* srcs */
            arraylength
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.write:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  srcs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 411
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.safeToSend:()Z
            ifne 2
         1: .line 412
            iconst_0
            ireturn
         2: .line 414
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnonnull 4
         3: .line 415
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getBufferPool:()Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
         4: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            astore 2 /* buffer */
        start local 2 // java.nio.ByteBuffer buffer
         5: .line 418
            aload 2 /* buffer */
            aload 1 /* src */
            invokestatic org.xnio.Buffers.copy:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
            istore 3 /* copied */
        start local 3 // int copied
         6: .line 419
            aload 2 /* buffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 8
         7: .line 420
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.handleBufferFull:()V
         8: .line 422
      StackMap locals: java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSucceeded:Z
            ifne 9
            iload 3 /* copied */
            ifgt 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
         9: iconst_1
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel java.nio.ByteBuffer java.nio.ByteBuffer int
      StackMap stack: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel int
        10: putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSucceeded:Z
        11: .line 423
            iload 3 /* copied */
            ireturn
        end local 3 // int copied
        end local 2 // java.nio.ByteBuffer buffer
        end local 1 // java.nio.ByteBuffer src
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0   12     1     src  Ljava/nio/ByteBuffer;
            5   12     2  buffer  Ljava/nio/ByteBuffer;
            6   12     3  copied  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public boolean send(io.undertow.connector.PooledByteBuffer);
    descriptor: (Lio/undertow/connector/PooledByteBuffer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // io.undertow.connector.PooledByteBuffer pooled
         0: .line 435
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isWritesShutdown:()Z
            ifeq 2
         1: .line 436
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pooled */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.sendInternal:(Lio/undertow/connector/PooledByteBuffer;)Z
            istore 2 /* result */
        start local 2 // boolean result
         3: .line 439
            iload 2 /* result */
            ifeq 5
         4: .line 440
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.flush:()Z
            pop
         5: .line 442
      StackMap locals: int
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 2 // boolean result
        end local 1 // io.undertow.connector.PooledByteBuffer pooled
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    6     1  pooled  Lio/undertow/connector/PooledByteBuffer;
            3    6     2  result  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      pooled  

  protected boolean sendInternal(io.undertow.connector.PooledByteBuffer);
    descriptor: (Lio/undertow/connector/PooledByteBuffer;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // io.undertow.connector.PooledByteBuffer pooled
         0: .line 446
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.safeToSend:()Z
            ifeq 4
         1: .line 447
            aload 0 /* this */
            aload 1 /* pooled */
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
         2: .line 448
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSucceeded:Z
         3: .line 449
            iconst_1
            ireturn
         4: .line 451
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // io.undertow.connector.PooledByteBuffer pooled
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    5     1  pooled  Lio/undertow/connector/PooledByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      pooled  

  protected boolean safeToSend();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 455
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            istore 1 /* state */
        start local 1 // int state
         1: .line 456
            iload 1 /* state */
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifne 2
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ifeq 3
         2: .line 457
      StackMap locals: int
      StackMap stack:
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         3: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 5
         4: .line 460
            iconst_0
            ireturn
         5: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 7
         6: .line 463
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.bodyIsSetAndNotReadyForFlush:()Ljava/lang/IllegalStateException;
            athrow
         7: .line 465
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int state
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            1    8     1  state  I
    Exceptions:
      throws java.io.IOException

  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.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 470
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic org.xnio.channels.Channels.writeFinalBasic:(Lorg/xnio/channels/StreamSinkChannel;[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.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            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 long writeFinal(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.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
         0: .line 475
            aload 0 /* this */
            aload 1 /* srcs */
            iconst_0
            aload 1 /* srcs */
            arraylength
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeFinal:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  srcs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  

  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.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 480
            aload 0 /* this */
            aload 1 /* src */
            invokestatic org.xnio.channels.Channels.writeFinalBasic:(Lorg/xnio/channels/StreamSinkChannel;Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  private void handleBufferFull();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 484
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 485
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.bufferFull:Z
         2: .line 486
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ifeq 4
            aload 1
            monitorexit
         3: return
         4: .line 487
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.sendWriteBuffer:()V
         5: .line 488
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
         6: .line 489
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_4
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         7: .line 484
            aload 1
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.queueFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;)V
        12: .line 492
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           1     3       9  any
           4     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException

  private void sendWriteBuffer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 495
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnonnull 2
         1: .line 496
            aload 0 /* this */
            getstatic io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.EMPTY_BYTE_BUFFER:Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
         2: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
         3: .line 499
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.sendInternal:(Lio/undertow/connector/PooledByteBuffer;)Z
            ifne 5
         4: .line 500
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.failedToSendAfterBeingSafe:()Ljava/lang/IllegalStateException;
            athrow
         5: .line 502
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
         6: .line 503
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  protected abstract boolean isLastFrame();
    descriptor: ()Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public boolean isReadyForFlush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 515
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public boolean isWritesShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 522
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_2
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 527
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.allAreClear:(II)Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 532
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.fullyFlushed:Z
            ifne 1
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 2
         1: .line 533
      StackMap locals:
      StackMap stack:
            return
         2: .line 536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 538
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.fullyFlushed:Z
            ifne 4
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 6
         4: .line 539
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: .line 562
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
            return
         6: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            ior
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
         7: .line 542
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnull 10
         8: .line 543
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
         9: .line 544
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
        10: .line 546
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 13
        11: .line 547
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        12: .line 548
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        13: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            ifnull 16
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            ifnull 16
        14: .line 551
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        15: .line 552
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
        16: .line 536
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 1
            monitorexit
        19: athrow
        20: .line 555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channelForciblyClosed:()V
        21: .line 557
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isWriteResumed:()Z
            ifeq 23
        22: .line 558
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getWriteListener:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/util/concurrent/Executor;Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)V
        23: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWrites:()V
        24: .line 561
            goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 2
        26: .line 562
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
        27: .line 563
            aload 2
            athrow
        28: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
        29: .line 564
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   30     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           3     5      18  any
           6    17      18  any
          18    19      18  any
           2     5      25  any
           6    25      25  any
    Exceptions:
      throws java.io.IOException

  protected void channelForciblyClosed();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 577
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isFirstDataWritten:()Z
            ifeq 2
         1: .line 578
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getChannel:()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aconst_null
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markWritesBroken:(Ljava/lang/Throwable;)V
         2: .line 580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
         3: .line 581
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  public boolean supportsOption(org.xnio.Option<?>);
    descriptor: (Lorg/xnio/Option;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // org.xnio.Option option
         0: .line 585
            iconst_0
            ireturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  option  Lorg/xnio/Option<*>;
    Signature: (Lorg/xnio/Option<*>;)Z
    MethodParameters:
        Name  Flags
      option  

  public <T> T getOption(org.xnio.Option<T>);
    descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // org.xnio.Option tOption
         0: .line 590
            aconst_null
            areturn
        end local 1 // org.xnio.Option tOption
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  tOption  Lorg/xnio/Option<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
    MethodParameters:
         Name  Flags
      tOption  

  public <T> T setOption(org.xnio.Option<T>, );
    descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // org.xnio.Option tOption
        start local 2 // java.lang.Object t
         0: .line 595
            aconst_null
            areturn
        end local 2 // java.lang.Object t
        end local 1 // org.xnio.Option tOption
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  tOption  Lorg/xnio/Option<TT;>;
            0    1     2        t  TT;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
    MethodParameters:
         Name  Flags
      tOption  
      t        

  public java.nio.ByteBuffer getBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 599
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_1
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ifeq 2
         1: .line 600
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnonnull 4
         3: .line 604
            aload 0 /* this */
            getstatic io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.EMPTY_BYTE_BUFFER:Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
         4: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  final void flushComplete();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 613
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 615
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.bufferFull:Z
         2: .line 616
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getRemainingInBuffer:()I
            istore 2 /* remaining */
        start local 2 // int remaining
         3: .line 617
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
            istore 3 /* finalFrame */
        start local 3 // boolean finalFrame
         4: .line 618
            iload 3 /* finalFrame */
            ifeq 5
            iload 2 /* remaining */
            ifne 5
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.isAnotherFrameRequired:()Z
            ifne 5
            iconst_1
            goto 6
      StackMap locals: java.lang.Object int int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 4 /* channelClosed */
        start local 4 // boolean channelClosed
         7: .line 619
            iload 2 /* remaining */
            ifle 12
         8: .line 620
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iload 2 /* remaining */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         9: .line 621
            iload 3 /* finalFrame */
            ifeq 23
        10: .line 625
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
        11: .line 627
            goto 23
      StackMap locals: int
      StackMap stack:
        12: aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.isAnotherFrameRequired:()Z
            ifeq 19
        13: .line 628
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.finalFrameQueued:Z
        14: .line 629
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 23
        15: .line 630
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        16: .line 631
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        17: .line 632
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            bipush -9
            iand
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
        18: .line 634
            goto 23
      StackMap locals:
      StackMap stack:
        19: aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 23
        20: .line 635
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        21: .line 636
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        22: .line 637
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            bipush -9
            iand
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
        23: .line 639
      StackMap locals:
      StackMap stack:
            iload 4 /* channelClosed */
            ifeq 30
        24: .line 640
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.fullyFlushed:Z
        25: .line 641
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 35
        26: .line 642
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        27: .line 643
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        28: .line 644
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            bipush -9
            iand
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
        29: .line 646
            goto 35
      StackMap locals:
      StackMap stack:
        30: aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 35
        31: .line 653
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        32: .line 654
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
        33: .line 655
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        34: .line 656
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            bipush -9
            iand
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
        35: .line 659
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            ifnull 37
        36: .line 660
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        37: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
        38: .line 664
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.readyForFlush:Z
        39: .line 665
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isWriteResumed:()Z
            ifeq 42
            iload 4 /* channelClosed */
            ifne 42
        40: .line 666
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWrites:()V
        41: .line 667
            goto 44
      StackMap locals:
      StackMap stack:
        42: aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isWriteResumed:()Z
            ifeq 44
        43: .line 670
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getWriteListener:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/util/concurrent/Executor;Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)V
        44: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            astore 5 /* closeListener */
        start local 5 // org.xnio.ChannelListener closeListener
        45: .line 674
            iload 4 /* channelClosed */
            ifeq 47
            aload 5 /* closeListener */
            ifnull 47
        46: .line 675
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            aload 0 /* this */
            aload 5 /* closeListener */
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/util/concurrent/Executor;Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)V
        47: .line 677
      StackMap locals: org.xnio.ChannelListener
      StackMap stack:
            aload 0 /* this */
            iload 4 /* channelClosed */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.handleFlushComplete:(Z)V
        end local 5 // org.xnio.ChannelListener closeListener
        end local 4 // boolean channelClosed
        end local 3 // boolean finalFrame
        end local 2 // int remaining
        48: .line 678
            goto 52
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel java.lang.Object
      StackMap stack: java.lang.Throwable
        49: astore 6
        50: .line 679
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
        51: .line 680
            aload 6
            athrow
        52: .line 679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
        53: .line 613
            aload 1
            monitorexit
        54: goto 57
      StackMap locals:
      StackMap stack: java.lang.Throwable
        55: aload 1
            monitorexit
        56: athrow
        57: .line 682
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   58     0           this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            3   48     2      remaining  I
            4   48     3     finalFrame  Z
            7   48     4  channelClosed  Z
           45   48     5  closeListener  Lorg/xnio/ChannelListener<-TS;>;
      Exception table:
        from    to  target  type
           1    49      49  any
           1    54      55  any
          55    56      55  any
    Exceptions:
      throws java.io.IOException

  protected void handleFlushComplete(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
        start local 1 // boolean finalFrame
         0: .line 686
            return
        end local 1 // boolean finalFrame
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            0    1     1  finalFrame  Z
    MethodParameters:
            Name  Flags
      finalFrame  

  protected boolean isFirstDataWritten();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 689
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.state:I
            iconst_4
            invokestatic org.xnio.Bits.anyAreSet:(II)Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public void markBroken();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 693
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
         1: .line 695
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWrites:()V
         2: .line 696
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.wakeupWaiters:()V
         3: .line 697
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isWriteResumed:()Z
            ifeq 7
         4: .line 698
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            astore 1 /* writeListener */
        start local 1 // org.xnio.ChannelListener writeListener
         5: .line 699
            aload 1 /* writeListener */
            ifnull 7
         6: .line 700
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            aload 0 /* this */
            aload 1 /* writeListener */
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/util/concurrent/Executor;Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)V
        end local 1 // org.xnio.ChannelListener writeListener
         7: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            astore 1 /* closeListener */
        start local 1 // org.xnio.ChannelListener closeListener
         8: .line 704
            aload 1 /* closeListener */
            ifnull 23
         9: .line 705
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            aload 0 /* this */
            aload 1 /* closeListener */
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/util/concurrent/Executor;Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)V
        end local 1 // org.xnio.ChannelListener closeListener
        10: .line 707
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 2
        12: .line 708
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            ifnull 16
        13: .line 709
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            ifnull 16
        14: .line 710
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        15: .line 711
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
        16: .line 714
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 19
        17: .line 715
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        18: .line 716
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        19: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnull 22
        20: .line 719
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        21: .line 720
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
        22: .line 722
      StackMap locals:
      StackMap stack:
            aload 2
            athrow
        23: .line 708
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            ifnull 27
        24: .line 709
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            ifnull 27
        25: .line 710
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        26: .line 711
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.header:Lio/undertow/server/protocol/framed/SendFrameHeader;
        27: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            ifnull 30
        28: .line 715
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        29: .line 716
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.body:Lio/undertow/connector/PooledByteBuffer;
        30: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            ifnull 33
        31: .line 719
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        32: .line 720
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeBuffer:Lio/undertow/connector/PooledByteBuffer;
        33: .line 723
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   34     0           this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
            5    7     1  writeListener  Lorg/xnio/ChannelListener<-TS;>;
            8   10     1  closeListener  Lorg/xnio/ChannelListener<-TS;>;
      Exception table:
        from    to  target  type
           1    11      11  any

  org.xnio.ChannelListener<? super S> getWriteListener();
    descriptor: ()Lorg/xnio/ChannelListener;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 726
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Signature: ()Lorg/xnio/ChannelListener<-TS;>;

  private void wakeupWaiters();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 730
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            ifle 8
         1: .line 731
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 734
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.waiterCount:I
            ifle 4
         3: .line 735
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         4: .line 731
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 739
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public C getChannel();
    descriptor: ()Lio/undertow/server/protocol/framed/AbstractFramedChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 742
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.channel:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
    Signature: ()TC;

  public boolean isBroken();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 746
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.broken:Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;

  public boolean isBufferFull();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
         0: .line 750
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.bufferFull:Z
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;
}
Signature: <C:Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;R:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;S:Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel<TC;TR;TS;>;>Ljava/lang/Object;Lorg/xnio/channels/StreamSinkChannel;
SourceFile: "AbstractFramedStreamSinkChannel.java"
NestMembers:
  io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel$1
InnerClasses:
  io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel$1
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
  public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener