public abstract class io.undertow.server.protocol.framed.AbstractFramedChannel<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.ConnectedChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.undertow.server.protocol.framed.AbstractFramedChannel
  super_class: java.lang.Object
{
  private final int maxQueuedBuffers;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.StreamConnection channel;
    descriptor: Lorg/xnio/StreamConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.undertow.conduits.IdleTimeoutConduit idleTimeoutConduit;
    descriptor: Lio/undertow/conduits/IdleTimeoutConduit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final io.undertow.connector.ByteBufferPool bufferPool;
    descriptor: Lio/undertow/connector/ByteBufferPool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.undertow.server.protocol.framed.FramePriority<C, R, S> framePriority;
    descriptor: Lio/undertow/server/protocol/framed/FramePriority;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;

  private final java.util.List<S> pendingFrames;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<TS;>;

  private final java.util.Deque<S> heldFrames;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<TS;>;

  private final java.util.Deque<S> newFrames;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<TS;>;

  private volatile long frameDataRemaining;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile R receiver;
    descriptor: Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: TR;

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

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

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

  private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedChannel> readsBrokenUpdater;
    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/AbstractFramedChannel;>;

  private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedChannel> writesBrokenUpdater;
    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/AbstractFramedChannel;>;

  private volatile io.undertow.util.ReferenceCountedPooled readData;
    descriptor: Lio/undertow/util/ReferenceCountedPooled;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.List<org.xnio.ChannelListener<C>> closeTasks;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/xnio/ChannelListener<TC;>;>;

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

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

  private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.protocol.framed.AbstractFramedChannel> outstandingBuffersUpdater;
    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/AbstractFramedChannel;>;

  private final java.util.concurrent.LinkedBlockingDeque<java.lang.Runnable> taskRunQueue;
    descriptor: Ljava/util/concurrent/LinkedBlockingDeque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/LinkedBlockingDeque<Ljava/lang/Runnable;>;

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

  private final org.xnio.OptionMap settings;
    descriptor: Lorg/xnio/OptionMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private final io.undertow.util.ReferenceCountedPooled$FreeNotifier freeNotifier;
    descriptor: Lio/undertow/util/ReferenceCountedPooled$FreeNotifier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final org.xnio.ChannelListener<io.undertow.server.protocol.framed.AbstractFramedChannel> DRAIN_LISTENER;
    descriptor: Lorg/xnio/ChannelListener;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/xnio/ChannelListener<Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 73
            ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.$assertionsDisabled:Z
         3: .line 121
            ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            ldc "readsBroken"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.readsBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         4: .line 122
            ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            ldc "writesBroken"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.writesBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         5: .line 130
            ldc Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            ldc "outstandingBuffers"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         6: .line 173
            new io.undertow.server.protocol.framed.AbstractFramedChannel$3
            dup
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$3.<init>:()V
            putstatic io.undertow.server.protocol.framed.AbstractFramedChannel.DRAIN_LISTENER:Lorg/xnio/ChannelListener;
         7: .line 187
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.xnio.StreamConnection, io.undertow.connector.ByteBufferPool, io.undertow.server.protocol.framed.FramePriority<C, R, S>, io.undertow.connector.PooledByteBuffer, org.xnio.OptionMap);
    descriptor: (Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/protocol/framed/FramePriority;Lio/undertow/connector/PooledByteBuffer;Lorg/xnio/OptionMap;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // org.xnio.StreamConnection connectedStreamChannel
        start local 2 // io.undertow.connector.ByteBufferPool bufferPool
        start local 3 // io.undertow.server.protocol.framed.FramePriority framePriority
        start local 4 // io.undertow.connector.PooledByteBuffer readData
        start local 5 // org.xnio.OptionMap settings
         0: .line 198
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 98
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
         2: .line 102
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
         3: .line 108
            aload 0 /* this */
            new java.util.concurrent.LinkedBlockingDeque
            dup
            invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
         4: .line 113
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
         5: .line 116
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readsBroken:I
         6: .line 119
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.writesBroken:I
         7: .line 124
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
         8: .line 125
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeTasks:Ljava/util/List;
         9: .line 126
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
        10: .line 132
            aload 0 /* this */
            new java.util.concurrent.LinkedBlockingDeque
            dup
            invokespecial java.util.concurrent.LinkedBlockingDeque.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueue:Ljava/util/concurrent/LinkedBlockingDeque;
        11: .line 133
            aload 0 /* this */
            new io.undertow.server.protocol.framed.AbstractFramedChannel$1
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$1.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueueRunnable:Ljava/lang/Runnable;
        12: .line 146
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
        13: .line 147
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
        14: .line 149
            aload 0 /* this */
            new io.undertow.server.protocol.framed.AbstractFramedChannel$2
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$2.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.freeNotifier:Lio/undertow/util/ReferenceCountedPooled$FreeNotifier;
        15: .line 199
            aload 0 /* this */
            aload 3 /* framePriority */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
        16: .line 200
            aload 0 /* this */
            aload 5 /* settings */
            getstatic io.undertow.UndertowOptions.MAX_QUEUED_READ_BUFFERS:Lorg/xnio/Option;
            bipush 10
            invokevirtual org.xnio.OptionMap.get:(Lorg/xnio/Option;I)I
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
        17: .line 201
            aload 0 /* this */
            aload 5 /* settings */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.settings:Lorg/xnio/OptionMap;
        18: .line 202
            aload 4 /* readData */
            ifnull 23
        19: .line 203
            aload 4 /* readData */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 22
        20: .line 204
            aload 0 /* this */
            new io.undertow.util.ReferenceCountedPooled
            dup
            aload 4 /* readData */
            iconst_1
            invokespecial io.undertow.util.ReferenceCountedPooled.<init>:(Lio/undertow/connector/PooledByteBuffer;I)V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        21: .line 205
            goto 23
        22: .line 206
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel org.xnio.StreamConnection io.undertow.connector.ByteBufferPool io.undertow.server.protocol.framed.FramePriority io.undertow.connector.PooledByteBuffer org.xnio.OptionMap
      StackMap stack:
            aload 4 /* readData */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        23: .line 209
      StackMap locals:
      StackMap stack:
            aload 2 /* bufferPool */
            ifnonnull 25
        24: .line 210
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "bufferPool"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        25: .line 212
      StackMap locals:
      StackMap stack:
            aload 1 /* connectedStreamChannel */
            ifnonnull 27
        26: .line 213
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            ldc "connectedStreamChannel"
            invokeinterface io.undertow.UndertowMessages.argumentCannotBeNull:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
        27: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* connectedStreamChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.createIdleTimeoutChannel:(Lorg/xnio/StreamConnection;)Lio/undertow/conduits/IdleTimeoutConduit;
            astore 6 /* idle */
        start local 6 // io.undertow.conduits.IdleTimeoutConduit idle
        28: .line 216
            aload 1 /* connectedStreamChannel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 6 /* idle */
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.setConduit:(Lorg/xnio/conduits/StreamSourceConduit;)V
        29: .line 217
            aload 1 /* connectedStreamChannel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 6 /* idle */
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setConduit:(Lorg/xnio/conduits/StreamSinkConduit;)V
        30: .line 218
            aload 0 /* this */
            aload 6 /* idle */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.idleTimeoutConduit:Lio/undertow/conduits/IdleTimeoutConduit;
        31: .line 219
            aload 0 /* this */
            aload 1 /* connectedStreamChannel */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
        32: .line 220
            aload 0 /* this */
            aload 2 /* bufferPool */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.bufferPool:Lio/undertow/connector/ByteBufferPool;
        33: .line 222
            aload 0 /* this */
            new org.xnio.ChannelListener$SimpleSetter
            dup
            invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
        34: .line 223
            aload 0 /* this */
            new org.xnio.ChannelListener$SimpleSetter
            dup
            invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiveSetter:Lorg/xnio/ChannelListener$SimpleSetter;
        35: .line 224
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            aconst_null
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        36: .line 225
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
        37: .line 227
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        38: .line 228
            aload 1 /* connectedStreamChannel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        39: .line 229
            new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            astore 7 /* closeListener */
        start local 7 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener closeListener
        40: .line 230
            aload 1 /* connectedStreamChannel */
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 7 /* closeListener */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        41: .line 231
            aload 1 /* connectedStreamChannel */
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 7 /* closeListener */
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
        42: .line 232
            return
        end local 7 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener closeListener
        end local 6 // io.undertow.conduits.IdleTimeoutConduit idle
        end local 5 // org.xnio.OptionMap settings
        end local 4 // io.undertow.connector.PooledByteBuffer readData
        end local 3 // io.undertow.server.protocol.framed.FramePriority framePriority
        end local 2 // io.undertow.connector.ByteBufferPool bufferPool
        end local 1 // org.xnio.StreamConnection connectedStreamChannel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   43     0                    this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0   43     1  connectedStreamChannel  Lorg/xnio/StreamConnection;
            0   43     2              bufferPool  Lio/undertow/connector/ByteBufferPool;
            0   43     3           framePriority  Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;
            0   43     4                readData  Lio/undertow/connector/PooledByteBuffer;
            0   43     5                settings  Lorg/xnio/OptionMap;
           28   43     6                    idle  Lio/undertow/conduits/IdleTimeoutConduit;
           40   43     7           closeListener  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>.FrameCloseListener;
    Signature: (Lorg/xnio/StreamConnection;Lio/undertow/connector/ByteBufferPool;Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;Lio/undertow/connector/PooledByteBuffer;Lorg/xnio/OptionMap;)V
    MethodParameters:
                        Name  Flags
      connectedStreamChannel  final
      bufferPool              
      framePriority           
      readData                final
      settings                

  protected io.undertow.conduits.IdleTimeoutConduit createIdleTimeoutChannel(org.xnio.StreamConnection);
    descriptor: (Lorg/xnio/StreamConnection;)Lio/undertow/conduits/IdleTimeoutConduit;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // org.xnio.StreamConnection connectedStreamChannel
         0: .line 235
            new io.undertow.conduits.IdleTimeoutConduit
            dup
            aload 1 /* connectedStreamChannel */
            invokespecial io.undertow.conduits.IdleTimeoutConduit.<init>:(Lorg/xnio/StreamConnection;)V
            areturn
        end local 1 // org.xnio.StreamConnection connectedStreamChannel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    1     0                    this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    1     1  connectedStreamChannel  Lorg/xnio/StreamConnection;
    MethodParameters:
                        Name  Flags
      connectedStreamChannel  

  void runInIoThread(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // java.lang.Runnable task
         0: .line 239
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueue:Ljava/util/concurrent/LinkedBlockingDeque;
            aload 1 /* task */
            invokevirtual java.util.concurrent.LinkedBlockingDeque.add:(Ljava/lang/Object;)Z
            pop
         1: .line 241
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueueRunnable:Ljava/lang/Runnable;
            invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
         2: .line 242
            goto 5
      StackMap locals:
      StackMap stack: java.util.concurrent.RejectedExecutionException
         3: pop
         4: .line 244
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueueRunnable:Ljava/lang/Runnable;
            invokestatic io.undertow.server.protocol.framed.ShutdownFallbackExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 246
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Runnable task
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    6     1  task  Ljava/lang/Runnable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.util.concurrent.RejectedExecutionException
    MethodParameters:
      Name  Flags
      task  

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

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

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

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

  public boolean supportsOption(org.xnio.Option<?>);
    descriptor: (Lorg/xnio/Option;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // org.xnio.Option option
         0: .line 279
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            aload 1 /* option */
            invokevirtual org.xnio.StreamConnection.supportsOption:(Lorg/xnio/Option;)Z
            ireturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<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=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // org.xnio.Option option
         0: .line 284
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            aload 1 /* option */
            invokevirtual org.xnio.StreamConnection.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            areturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    1     1  option  Lorg/xnio/Option<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
    MethodParameters:
        Name  Flags
      option  

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

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

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

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

  public java.net.InetSocketAddress getSourceAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 313
            aload 0 /* this */
            ldc Ljava/net/InetSocketAddress;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getPeerAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  public java.net.InetSocketAddress getDestinationAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 322
            aload 0 /* this */
            ldc Ljava/net/InetSocketAddress;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getLocalAddress:(Ljava/lang/Class;)Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  public synchronized R receive();
    descriptor: ()Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=12, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 334
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
            ifeq 7
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            ifnonnull 7
         1: .line 338
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 4
         2: .line 339
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
         3: .line 340
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
         4: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
         5: .line 343
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.shutdownReads:()V
         6: .line 344
            aconst_null
            areturn
         7: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            astore 1 /* pooled */
        start local 1 // io.undertow.util.ReferenceCountedPooled pooled
         8: .line 348
            aload 1 /* pooled */
            ifnonnull 14
         9: .line 349
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.allocateReferenceCountedBuffer:()Lio/undertow/util/ReferenceCountedPooled;
            astore 1 /* pooled */
        10: .line 350
            aload 1 /* pooled */
            ifnonnull 12
        11: .line 351
            aconst_null
            areturn
        12: .line 353
      StackMap locals: io.undertow.util.ReferenceCountedPooled
      StackMap stack:
            iconst_0
            istore 2 /* hasData */
        start local 2 // boolean hasData
        13: .line 354
            goto 23
        end local 2 // boolean hasData
      StackMap locals:
      StackMap stack:
        14: aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.isFreed:()Z
            ifeq 22
        15: .line 356
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.tryUnfree:()Z
            ifne 19
        16: .line 357
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.allocateReferenceCountedBuffer:()Lio/undertow/util/ReferenceCountedPooled;
            astore 1 /* pooled */
        17: .line 358
            aload 1 /* pooled */
            ifnonnull 20
        18: .line 359
            aconst_null
            areturn
        19: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        20: .line 364
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* hasData */
        start local 2 // boolean hasData
        21: .line 365
            goto 23
        end local 2 // boolean hasData
        22: .line 366
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            istore 2 /* hasData */
        start local 2 // boolean hasData
        23: .line 368
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 3 /* forceFree */
        start local 3 // boolean forceFree
        24: .line 369
            iconst_0
            istore 4 /* read */
        start local 4 // int read
        25: .line 371
            iload 2 /* hasData */
            ifne 50
        26: .line 372
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        27: .line 373
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 4 /* read */
        28: .line 374
            iload 4 /* read */
            ifne 36
        29: .line 376
            iconst_1
            istore 3 /* forceFree */
        30: .line 482
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 35
        31: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 32
            iload 3 /* forceFree */
            ifeq 35
        32: .line 484
      StackMap locals: int int
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 33
            iload 3 /* forceFree */
            ifeq 34
        33: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        34: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
        35: .line 377
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        36: .line 378
      StackMap locals:
      StackMap stack:
            iload 4 /* read */
            iconst_m1
            if_icmpne 46
        37: .line 379
            iconst_1
            istore 3 /* forceFree */
        38: .line 380
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
        39: .line 381
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.lastDataRead:()V
        40: .line 482
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 45
        41: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 42
            iload 3 /* forceFree */
            ifeq 45
        42: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 43
            iload 3 /* forceFree */
            ifeq 44
        43: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        44: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
        45: .line 382
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        46: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isLastFrameReceived:()Z
            ifeq 49
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            lconst_0
            lcmp
            ifne 49
        47: .line 385
            iconst_1
            istore 3 /* forceFree */
        48: .line 386
            aload 0 /* this */
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markReadsBroken:(Ljava/lang/Throwable;)V
        49: .line 388
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        50: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            lconst_0
            lcmp
            ifle 85
        51: .line 391
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lcmp
            iflt 69
        52: .line 392
            aload 0 /* this */
            dup
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lsub
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
        53: .line 393
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            ifnull 59
        54: .line 396
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 5 /* buf */
        start local 5 // java.nio.ByteBuffer buf
        55: .line 397
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        56: .line 398
            aload 1 /* pooled */
            aload 5 /* buf */
            invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
            astore 6 /* frameData */
        start local 6 // io.undertow.connector.PooledByteBuffer frameData
        57: .line 399
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            aconst_null
            aload 6 /* frameData */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.dataReady:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)V
        end local 6 // io.undertow.connector.PooledByteBuffer frameData
        end local 5 // java.nio.ByteBuffer buf
        58: .line 400
            goto 61
        59: .line 402
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
        60: .line 403
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        61: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            lconst_0
            lcmp
            ifne 63
        62: .line 406
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
        63: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 68
        64: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 65
            iload 3 /* forceFree */
            ifeq 68
        65: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 66
            iload 3 /* forceFree */
            ifeq 67
        66: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        67: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
        68: .line 408
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        69: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 5 /* buf */
        start local 5 // java.nio.ByteBuffer buf
        70: .line 411
            aload 5 /* buf */
            aload 5 /* buf */
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            ladd
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        71: .line 412
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
            ladd
            l2i
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        72: .line 413
            aload 0 /* this */
            lconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
        73: .line 414
            aload 1 /* pooled */
            aload 5 /* buf */
            invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
            astore 6 /* frameData */
        start local 6 // io.undertow.connector.PooledByteBuffer frameData
        74: .line 415
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            ifnull 77
        75: .line 416
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            aconst_null
            aload 6 /* frameData */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.dataReady:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)V
        76: .line 417
            goto 78
        77: .line 419
      StackMap locals: java.nio.ByteBuffer io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 6 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
        78: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
        end local 6 // io.undertow.connector.PooledByteBuffer frameData
        end local 5 // java.nio.ByteBuffer buf
        79: .line 482
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 84
        80: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 81
            iload 3 /* forceFree */
            ifeq 84
        81: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 82
            iload 3 /* forceFree */
            ifeq 83
        82: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        83: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
        84: .line 430
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        85: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.parseFrame:(Ljava/nio/ByteBuffer;)Lio/undertow/server/protocol/framed/FrameHeaderData;
            astore 5 /* data */
        start local 5 // io.undertow.server.protocol.framed.FrameHeaderData data
        86: .line 433
            aload 5 /* data */
            ifnull 127
        87: .line 435
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lcmp
            iflt 92
        88: .line 436
            aload 0 /* this */
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lsub
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.frameDataRemaining:J
        89: .line 437
            aload 1 /* pooled */
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
            astore 6 /* frameData */
        start local 6 // io.undertow.connector.PooledByteBuffer frameData
        90: .line 438
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        91: .line 439
            goto 96
        end local 6 // io.undertow.connector.PooledByteBuffer frameData
        92: .line 440
      StackMap locals: io.undertow.server.protocol.framed.FrameHeaderData
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            astore 7 /* buf */
        start local 7 // java.nio.ByteBuffer buf
        93: .line 441
            aload 7 /* buf */
            aload 7 /* buf */
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
            ladd
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        94: .line 442
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            i2l
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
            ladd
            l2i
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        95: .line 443
            aload 1 /* pooled */
            aload 7 /* buf */
            invokevirtual io.undertow.util.ReferenceCountedPooled.createView:(Ljava/nio/ByteBuffer;)Lio/undertow/connector/PooledByteBuffer;
            astore 6 /* frameData */
        end local 7 // java.nio.ByteBuffer buf
        start local 6 // io.undertow.connector.PooledByteBuffer frameData
        96: .line 445
      StackMap locals: io.undertow.connector.PooledByteBuffer
      StackMap stack:
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getExistingChannel:()Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            astore 7 /* existing */
        start local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel existing
        97: .line 446
            aload 7 /* existing */
            ifnull 109
        98: .line 447
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
            aload 6 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lcmp
            ifle 100
        99: .line 448
            aload 0 /* this */
            aload 7 /* existing */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
       100: .line 450
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 7 /* existing */
            aload 5 /* data */
            aload 6 /* frameData */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.dataReady:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)V
       101: .line 451
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isLastFrameReceived:()Z
            ifeq 103
       102: .line 452
            aload 0 /* this */
            aload 7 /* existing */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleLastFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
       103: .line 482
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 108
       104: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 105
            iload 3 /* forceFree */
            ifeq 108
       105: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 106
            iload 3 /* forceFree */
            ifeq 107
       106: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
       107: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
       108: .line 454
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
       109: .line 456
      StackMap locals:
      StackMap stack:
            aload 5 /* data */
            invokeinterface io.undertow.server.protocol.framed.FrameHeaderData.getFrameLength:()J
            aload 6 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
            lcmp
            ifle 110
            iconst_1
            goto 111
      StackMap locals:
      StackMap stack:
       110: iconst_0
      StackMap locals:
      StackMap stack: int
       111: istore 8 /* moreData */
        start local 8 // boolean moreData
       112: .line 457
            aload 0 /* this */
            aload 5 /* data */
            aload 6 /* frameData */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.createChannel:(Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            astore 9 /* newChannel */
        start local 9 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel newChannel
       113: .line 458
            aload 9 /* newChannel */
            ifnull 119
       114: .line 459
            iload 8 /* moreData */
            ifeq 116
       115: .line 460
            aload 0 /* this */
            aload 9 /* newChannel */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
       116: .line 463
      StackMap locals: int io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isLastFrameReceived:()Z
            ifeq 120
       117: .line 464
            aload 0 /* this */
            aload 9 /* newChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleLastFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
       118: .line 466
            goto 120
       119: .line 467
      StackMap locals:
      StackMap stack:
            aload 6 /* frameData */
            invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
       120: .line 469
      StackMap locals:
      StackMap stack:
            aload 9 /* newChannel */
            astore 11
       121: .line 482
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 126
       122: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 123
            iload 3 /* forceFree */
            ifeq 126
       123: .line 484
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int io.undertow.server.protocol.framed.FrameHeaderData io.undertow.connector.PooledByteBuffer io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel int io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 124
            iload 3 /* forceFree */
            ifeq 125
       124: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
       125: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
       126: .line 469
      StackMap locals:
      StackMap stack:
            aload 11
            areturn
        end local 9 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel newChannel
        end local 8 // boolean moreData
        end local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel existing
        end local 6 // io.undertow.connector.PooledByteBuffer frameData
       127: .line 482
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int io.undertow.server.protocol.framed.FrameHeaderData
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 132
       128: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 129
            iload 3 /* forceFree */
            ifeq 132
       129: .line 484
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 130
            iload 3 /* forceFree */
            ifeq 131
       130: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
       131: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
       132: .line 472
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // io.undertow.server.protocol.framed.FrameHeaderData data
       133: .line 473
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
       134: .line 476
            aload 0 /* this */
            aload 5 /* e */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markReadsBroken:(Ljava/lang/Throwable;)V
       135: .line 477
            iconst_1
            istore 3 /* forceFree */
       136: .line 478
            aload 5 /* e */
            athrow
        end local 5 // java.lang.Throwable e
       137: .line 479
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 10
       138: .line 482
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 143
       139: .line 483
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 140
            iload 3 /* forceFree */
            ifeq 143
       140: .line 484
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.util.ReferenceCountedPooled int int int top top top top top java.lang.Throwable
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iconst_2
            imul
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpgt 141
            iload 3 /* forceFree */
            ifeq 142
       141: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
       142: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* pooled */
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
       143: .line 494
      StackMap locals:
      StackMap stack:
            aload 10
            athrow
        end local 4 // int read
        end local 3 // boolean forceFree
        end local 2 // boolean hasData
        end local 1 // io.undertow.util.ReferenceCountedPooled pooled
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0  144     0        this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            8  144     1      pooled  Lio/undertow/util/ReferenceCountedPooled;
           13   14     2     hasData  Z
           21   22     2     hasData  Z
           23  144     2     hasData  Z
           24  144     3   forceFree  Z
           25  144     4        read  I
           55   58     5         buf  Ljava/nio/ByteBuffer;
           57   58     6   frameData  Lio/undertow/connector/PooledByteBuffer;
           70   79     5         buf  Ljava/nio/ByteBuffer;
           74   79     6   frameData  Lio/undertow/connector/PooledByteBuffer;
           86  133     5        data  Lio/undertow/server/protocol/framed/FrameHeaderData;
           90   92     6   frameData  Lio/undertow/connector/PooledByteBuffer;
           96  127     6   frameData  Lio/undertow/connector/PooledByteBuffer;
           93   96     7         buf  Ljava/nio/ByteBuffer;
           97  127     7    existing  Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<***>;
          112  127     8    moreData  Z
          113  127     9  newChannel  TR;
          134  137     5           e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          25    30     133  Class java.io.IOException
          36    40     133  Class java.io.IOException
          46    63     133  Class java.io.IOException
          69    79     133  Class java.io.IOException
          85   103     133  Class java.io.IOException
         109   121     133  Class java.io.IOException
          25    30     133  Class java.lang.RuntimeException
          36    40     133  Class java.lang.RuntimeException
          46    63     133  Class java.lang.RuntimeException
          69    79     133  Class java.lang.RuntimeException
          85   103     133  Class java.lang.RuntimeException
         109   121     133  Class java.lang.RuntimeException
          25    30     133  Class java.lang.Error
          36    40     133  Class java.lang.Error
          46    63     133  Class java.lang.Error
          69    79     133  Class java.lang.Error
          85   103     133  Class java.lang.Error
         109   121     133  Class java.lang.Error
          25    30     137  any
          36    40     137  any
          46    63     137  any
          69    79     137  any
          85   103     137  any
         109   121     137  any
         133   137     137  any
    Exceptions:
      throws java.io.IOException
    Signature: ()TR;

  private void handleLastFrame(io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel);
    descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel newChannel
         0: .line 503
            new java.util.HashSet
            dup
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getReceivers:()Ljava/util/Collection;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 2 /* receivers */
        start local 2 // java.util.Set receivers
         1: .line 504
            aload 2 /* receivers */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
            astore 3 /* r */
        start local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel r
         3: .line 505
            aload 3 /* r */
            aload 1 /* newChannel */
            if_acmpeq 5
         4: .line 506
            aload 3 /* r */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.markStreamBroken:()V
        end local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel r
         5: .line 504
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 509
            return
        end local 2 // java.util.Set receivers
        end local 1 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel newChannel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    7     1  newChannel  Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            1    7     2   receivers  Ljava/util/Set<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;>;
            3    5     3           r  Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
    MethodParameters:
            Name  Flags
      newChannel  

  private io.undertow.util.ReferenceCountedPooled allocateReferenceCountedBuffer();
    descriptor: ()Lio/undertow/util/ReferenceCountedPooled;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 512
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
            ifle 16
         1: .line 515
      StackMap locals:
      StackMap stack:
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            istore 1 /* expect */
        start local 1 // int expect
         2: .line 516
            iload 1 /* expect */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
            if_icmpne 15
         3: .line 517
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         4: .line 519
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            istore 1 /* expect */
         5: .line 520
            iload 1 /* expect */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
            if_icmpne 11
         6: .line 521
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            invokeinterface io.undertow.UndertowLogger.isTraceEnabled:()Z
            ifeq 8
         7: .line 522
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Suspending reads on %s due to too many outstanding buffers"
            aload 0 /* this */
            invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 524
      StackMap locals: int io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
         9: .line 525
            aload 2
            monitorexit
        10: aconst_null
            areturn
        11: .line 517
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 2
            monitorexit
        14: athrow
        15: .line 529
      StackMap locals:
      StackMap stack:
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.outstandingBuffersUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* expect */
            iload 1 /* expect */
            iconst_1
            iadd
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 1
        end local 1 // int expect
        16: .line 531
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.bufferPool:Lio/undertow/connector/ByteBufferPool;
            invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
            astore 1 /* buf */
        start local 1 // io.undertow.connector.PooledByteBuffer buf
        17: .line 532
            aload 0 /* this */
        18: new io.undertow.util.ReferenceCountedPooled
            dup
            aload 1 /* buf */
            iconst_1
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.maxQueuedBuffers:I
            ifle 19
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.freeNotifier:Lio/undertow/util/ReferenceCountedPooled$FreeNotifier;
            goto 20
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.connector.PooledByteBuffer
      StackMap stack: io.undertow.server.protocol.framed.AbstractFramedChannel new 18 new 18 io.undertow.connector.PooledByteBuffer int
        19: aconst_null
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel io.undertow.connector.PooledByteBuffer
      StackMap stack: io.undertow.server.protocol.framed.AbstractFramedChannel new 18 new 18 io.undertow.connector.PooledByteBuffer int io.undertow.util.ReferenceCountedPooled$FreeNotifier
        20: invokespecial io.undertow.util.ReferenceCountedPooled.<init>:(Lio/undertow/connector/PooledByteBuffer;ILio/undertow/util/ReferenceCountedPooled$FreeNotifier;)V
            dup_x1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            areturn
        end local 1 // io.undertow.connector.PooledByteBuffer buf
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            2   16     1  expect  I
           17   21     1     buf  Lio/undertow/connector/PooledByteBuffer;
      Exception table:
        from    to  target  type
           4    10      13  any
          11    12      13  any
          13    14      13  any

  protected void lastDataRead();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 540
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  protected abstract R createChannel(io.undertow.server.protocol.framed.FrameHeaderData, io.undertow.connector.PooledByteBuffer);
    descriptor: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    Signature: (Lio/undertow/server/protocol/framed/FrameHeaderData;Lio/undertow/connector/PooledByteBuffer;)TR;
    MethodParameters:
                 Name  Flags
      frameHeaderData  
      frameData        

  protected abstract io.undertow.server.protocol.framed.FrameHeaderData parseFrame(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lio/undertow/server/protocol/framed/FrameHeaderData;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  protected synchronized void recalculateHeldFrames();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 561
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 3
         1: .line 562
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
            aconst_null
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokeinterface io.undertow.server.protocol.framed.FramePriority.frameAdded:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;Ljava/util/List;Ljava/util/Deque;)V
         2: .line 563
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders:()V
         3: .line 565
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  protected synchronized void flushSenders();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=15, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 575
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
            ifeq 2
         1: .line 576
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.recursiveCallToFlushingSenders:()Ljava/lang/RuntimeException;
            athrow
         2: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
         3: .line 580
            iconst_0
            istore 1 /* toSend */
        start local 1 // int toSend
         4: .line 581
            goto 12
         5: .line 582
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 2 /* frame */
        start local 2 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel frame
         6: .line 583
            aload 2 /* frame */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.preWrite:()V
         7: .line 584
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
            aload 2 /* frame */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface io.undertow.server.protocol.framed.FramePriority.insertFrame:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;Ljava/util/List;)Z
            ifeq 11
         8: .line 585
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 12
         9: .line 586
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
            aload 2 /* frame */
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokeinterface io.undertow.server.protocol.framed.FramePriority.frameAdded:(Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;Ljava/util/List;Ljava/util/Deque;)V
        10: .line 588
            goto 12
        11: .line 589
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            aload 2 /* frame */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel frame
        12: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 5
        13: .line 593
            iconst_0
            istore 2 /* finalFrame */
        start local 2 // boolean finalFrame
        14: .line 594
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 3 /* it */
        start local 3 // java.util.ListIterator it
        15: .line 595
            goto 21
        16: .line 596
      StackMap locals: int java.util.ListIterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 4 /* sender */
        start local 4 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel sender
        17: .line 597
            aload 4 /* sender */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isReadyForFlush:()Z
            ifeq 22
        18: .line 598
            iinc 1 /* toSend */ 1
        19: .line 602
            aload 4 /* sender */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isLastFrame:()Z
            ifeq 21
        20: .line 603
            iconst_1
            istore 2 /* finalFrame */
        end local 4 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel sender
        21: .line 595
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 16
        22: .line 606
      StackMap locals:
      StackMap stack:
            iload 1 /* toSend */
            ifne 33
        23: .line 609
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
            ifeq 29
        24: .line 610
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
        25: .line 612
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 4 /* e */
        start local 4 // java.lang.Throwable e
        27: .line 613
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        28: .line 614
            aload 0 /* this */
            aload 4 /* e */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markWritesBroken:(Ljava/lang/Throwable;)V
        end local 4 // java.lang.Throwable e
        29: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
        30: .line 676
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 32
        31: .line 677
            aload 0 /* this */
            new io.undertow.server.protocol.framed.AbstractFramedChannel$4
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$4.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
        32: .line 616
      StackMap locals:
      StackMap stack:
            return
        33: .line 618
      StackMap locals:
      StackMap stack:
            iload 1 /* toSend */
            iconst_3
            imul
            anewarray java.nio.ByteBuffer
            astore 4 /* data */
        start local 4 // java.nio.ByteBuffer[] data
        34: .line 619
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        35: .line 620
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 3 /* it */
        36: .line 622
            goto 52
        37: .line 623
      StackMap locals: java.nio.ByteBuffer[] int
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 6 /* next */
        start local 6 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel next
        38: .line 625
            aload 6 /* next */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
            astore 7 /* frameHeader */
        start local 7 // io.undertow.server.protocol.framed.SendFrameHeader frameHeader
        39: .line 626
            aload 7 /* frameHeader */
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            astore 8 /* frameHeaderByteBuffer */
        start local 8 // io.undertow.connector.PooledByteBuffer frameHeaderByteBuffer
        40: .line 627
            aload 7 /* frameHeader */
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getTrailer:()Ljava/nio/ByteBuffer;
            astore 9 /* frameTrailerBuffer */
        start local 9 // java.nio.ByteBuffer frameTrailerBuffer
        41: .line 628
            aload 4 /* data */
            iload 5 /* j */
            iconst_3
            imul
            aload 8 /* frameHeaderByteBuffer */
            ifnull 43
        42: .line 629
            aload 8 /* frameHeaderByteBuffer */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            goto 44
        43: .line 630
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack: java.nio.ByteBuffer[] int
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
        44: .line 628
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack: java.nio.ByteBuffer[] int java.nio.ByteBuffer
            aastore
        45: .line 631
            aload 4 /* data */
            iload 5 /* j */
            iconst_3
            imul
            iconst_1
            iadd
            aload 6 /* next */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
            ifnonnull 46
            getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
            goto 47
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack: java.nio.ByteBuffer[] int
        46: aload 6 /* next */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack: java.nio.ByteBuffer[] int java.nio.ByteBuffer
        47: aastore
        48: .line 632
            aload 4 /* data */
            iload 5 /* j */
            iconst_3
            imul
            iconst_2
            iadd
            aload 9 /* frameTrailerBuffer */
            ifnull 49
            aload 9 /* frameTrailerBuffer */
            goto 50
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack: java.nio.ByteBuffer[] int
        49: getstatic org.xnio.Buffers.EMPTY_BYTE_BUFFER:Ljava/nio/ByteBuffer;
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.server.protocol.framed.SendFrameHeader io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack: java.nio.ByteBuffer[] int java.nio.ByteBuffer
        50: aastore
        51: .line 633
            iinc 5 /* j */ 1
        end local 9 // java.nio.ByteBuffer frameTrailerBuffer
        end local 8 // io.undertow.connector.PooledByteBuffer frameHeaderByteBuffer
        end local 7 // io.undertow.server.protocol.framed.SendFrameHeader frameHeader
        end local 6 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel next
        52: .line 622
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int
      StackMap stack:
            iload 5 /* j */
            iload 1 /* toSend */
            if_icmplt 37
        53: .line 635
            aload 4 /* data */
            invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
            lstore 6 /* toWrite */
        start local 6 // long toWrite
        54: .line 638
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aload 4 /* data */
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.write:([Ljava/nio/ByteBuffer;)J
            lstore 8 /* res */
        start local 8 // long res
        55: .line 639
            lload 6 /* toWrite */
            lload 8 /* res */
            lsub
            lstore 6 /* toWrite */
        56: .line 640
            lload 8 /* res */
            lconst_0
            lcmp
            ifle 58
            lload 6 /* toWrite */
            lconst_0
        57: .line 637
            lcmp
            ifgt 54
        58: .line 641
      StackMap locals: long
      StackMap stack:
            iload 1 /* toSend */
            istore 10 /* max */
        start local 10 // int max
        59: .line 643
            goto 70
        60: .line 644
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 11 /* sinkChannel */
        start local 11 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel sinkChannel
        61: .line 645
            aload 11 /* sinkChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getByteBuffer:()Lio/undertow/connector/PooledByteBuffer;
            astore 12 /* frameHeaderByteBuffer */
        start local 12 // io.undertow.connector.PooledByteBuffer frameHeaderByteBuffer
        62: .line 646
            aload 11 /* sinkChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getFrameHeader:()Lio/undertow/server/protocol/framed/SendFrameHeader;
            invokevirtual io.undertow.server.protocol.framed.SendFrameHeader.getTrailer:()Ljava/nio/ByteBuffer;
            astore 13 /* frameTrailerBuffer */
        start local 13 // java.nio.ByteBuffer frameTrailerBuffer
        63: .line 647
            aload 12 /* frameHeaderByteBuffer */
            ifnull 64
            aload 12 /* frameHeaderByteBuffer */
            invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 71
        64: .line 648
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel io.undertow.connector.PooledByteBuffer java.nio.ByteBuffer
      StackMap stack:
            aload 11 /* sinkChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
            ifnull 65
            aload 11 /* sinkChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 71
        65: .line 649
      StackMap locals:
      StackMap stack:
            aload 13 /* frameTrailerBuffer */
            ifnull 67
            aload 13 /* frameTrailerBuffer */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 67
        66: .line 650
            goto 71
        67: .line 652
      StackMap locals:
      StackMap stack:
            aload 11 /* sinkChannel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.flushComplete:()V
        68: .line 653
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            aload 11 /* sinkChannel */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        69: .line 654
            iinc 10 /* max */ -1
        end local 13 // java.nio.ByteBuffer frameTrailerBuffer
        end local 12 // io.undertow.connector.PooledByteBuffer frameHeaderByteBuffer
        end local 11 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel sinkChannel
        70: .line 643
      StackMap locals:
      StackMap stack:
            iload 10 /* max */
            ifgt 60
        71: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 72
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
            ifne 74
        72: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
        73: .line 658
            goto 75
        74: .line 659
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
        75: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 90
            iload 2 /* finalFrame */
            ifeq 90
        76: .line 663
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites:()V
        77: .line 664
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.flush:()Z
            ifne 90
        78: .line 665
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            aconst_null
            aconst_null
            invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
        79: .line 666
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
        end local 10 // int max
        end local 8 // long res
        end local 6 // long toWrite
        80: .line 670
            goto 90
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel int int java.util.ListIterator java.nio.ByteBuffer[] int
      StackMap stack: java.lang.Throwable
        81: astore 6 /* e */
        start local 6 // java.lang.Throwable e
        82: .line 671
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        83: .line 672
            aload 0 /* this */
            aload 6 /* e */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.markWritesBroken:(Ljava/lang/Throwable;)V
        end local 6 // java.lang.Throwable e
        end local 5 // int j
        end local 4 // java.nio.ByteBuffer[] data
        end local 3 // java.util.ListIterator it
        end local 2 // boolean finalFrame
        end local 1 // int toSend
        84: .line 674
            goto 90
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack: java.lang.Throwable
        85: astore 14
        86: .line 675
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
        87: .line 676
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 89
        88: .line 677
            aload 0 /* this */
            new io.undertow.server.protocol.framed.AbstractFramedChannel$4
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$4.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
        89: .line 684
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel top top top top top top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 14
            athrow
        90: .line 675
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
        91: .line 676
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 93
        92: .line 677
            aload 0 /* this */
            new io.undertow.server.protocol.framed.AbstractFramedChannel$4
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$4.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
        93: .line 685
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   94     0                   this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            4   84     1                 toSend  I
            6   12     2                  frame  TS;
           14   84     2             finalFrame  Z
           15   84     3                     it  Ljava/util/ListIterator<TS;>;
           17   21     4                 sender  TS;
           27   29     4                      e  Ljava/lang/Throwable;
           34   84     4                   data  [Ljava/nio/ByteBuffer;
           35   84     5                      j  I
           38   52     6                   next  TS;
           39   52     7            frameHeader  Lio/undertow/server/protocol/framed/SendFrameHeader;
           40   52     8  frameHeaderByteBuffer  Lio/undertow/connector/PooledByteBuffer;
           41   52     9     frameTrailerBuffer  Ljava/nio/ByteBuffer;
           54   80     6                toWrite  J
           55   80     8                    res  J
           59   80    10                    max  I
           61   70    11            sinkChannel  TS;
           62   70    12  frameHeaderByteBuffer  Lio/undertow/connector/PooledByteBuffer;
           63   70    13     frameTrailerBuffer  Ljava/nio/ByteBuffer;
           82   84     6                      e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          23    25      26  Class java.lang.Throwable
          36    80      81  Class java.io.IOException
          36    80      81  Class java.lang.RuntimeException
          36    80      81  Class java.lang.Error
           3    29      85  any
          33    85      85  any

  void awaitWritable();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 688
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.awaitWritable:()V
         1: .line 689
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  void awaitWritable(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit unit
         0: .line 692
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            lload 1 /* time */
            aload 3 /* unit */
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         1: .line 693
            return
        end local 3 // java.util.concurrent.TimeUnit unit
        end local 1 // long time
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    2     1  time  J
            0    2     3  unit  Ljava/util/concurrent/TimeUnit;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      time  
      unit  

  protected void queueFrame();
    descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSinkChannel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
         0: .line 704
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            aload 1 /* channel */
            invokeinterface java.util.Deque.contains:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 705
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isWritesBroken:()Z
            ifne 2
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.isOpen:()Z
            ifeq 2
            aload 1 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isBroken:()Z
            ifne 2
            aload 1 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isOpen:()Z
            ifne 4
         2: .line 706
      StackMap locals:
      StackMap stack:
            aload 1 /* channel */
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
         3: .line 707
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         4: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            aload 1 /* channel */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
         5: .line 711
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
            ifeq 6
            aload 1 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.isBufferFull:()Z
            ifeq 7
         6: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.flush:()V
         7: .line 714
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    8     1  channel  TS;
    Exceptions:
      throws java.io.IOException
    Signature: (TS;)V
    MethodParameters:
         Name  Flags
      channel  final

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 717
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.flushingSenders:Z
            ifne 5
         1: .line 718
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            if_acmpne 4
         2: .line 719
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders:()V
         3: .line 720
            goto 5
         4: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new io.undertow.server.protocol.framed.AbstractFramedChannel$5
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$5.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
         5: .line 729
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

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

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

  protected abstract void handleBrokenSourceChannel(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     

  protected abstract void handleBrokenSinkChannel(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     

  public org.xnio.ChannelListener$Setter<C> getReceiveSetter();
    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.AbstractFramedChannel this
         0: .line 758
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiveSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Signature: ()Lorg/xnio/ChannelListener$Setter<TC;>;

  public synchronized void suspendReceives();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 765
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
         1: .line 766
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            ifnonnull 6
         2: .line 767
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
            if_acmpne 5
         3: .line 768
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
         4: .line 769
            goto 6
         5: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$6
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$6.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
         6: .line 778
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  public synchronized void resumeReceives();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 784
            aload 0 /* this */
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
            if_acmpne 3
         1: .line 785
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.doResume:()V
         2: .line 786
            goto 4
         3: .line 787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$7
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$7.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
         4: .line 794
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  private void doResume();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 797
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 3
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            invokevirtual io.undertow.util.ReferenceCountedPooled.isFreed:()Z
            ifne 3
         1: .line 798
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.wakeupReads:()V
         2: .line 799
            goto 4
         3: .line 800
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
         4: .line 802
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  public boolean isReceivesResumed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 805
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receivesSuspended:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 813
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            invokeinterface io.undertow.UndertowLogger.isTraceEnabled:()Z
            ifeq 2
         1: .line 814
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc "Channel %s is being closed"
            aload 0 /* this */
            invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 816
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
         3: .line 817
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 6
         4: .line 818
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            invokevirtual io.undertow.util.ReferenceCountedPooled.close:()V
         5: .line 819
            aload 0 /* this */
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
         6: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
         7: .line 822
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Exceptions:
      throws java.io.IOException

  public org.xnio.ChannelListener$Setter<? extends io.undertow.server.protocol.framed.AbstractFramedChannel> 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.AbstractFramedChannel this
         0: .line 826
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+Lio/undertow/server/protocol/framed/AbstractFramedChannel;>;

  protected void markReadsBroken(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // java.lang.Throwable cause
         0: .line 838
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.readsBrokenUpdater: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 12
         1: .line 839
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            invokeinterface io.undertow.UndertowLogger.isDebugEnabled:()Z
            ifeq 3
         2: .line 840
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc "Marking reads broken on channel %s"
            aload 0 /* this */
            invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 842
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            ifnull 5
         4: .line 843
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.markStreamBroken:()V
         5: .line 845
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getReceivers:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
            astore 2 /* r */
        start local 2 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel r
         7: .line 846
            aload 2 /* r */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.markStreamBroken:()V
        end local 2 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel r
         8: .line 845
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 849
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleBrokenSourceChannel:(Ljava/lang/Throwable;)V
        10: .line 850
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        11: .line 851
            aload 0 /* this */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
        12: .line 853
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0   13     1  cause  Ljava/lang/Throwable;
            7    8     2      r  Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
    MethodParameters:
       Name  Flags
      cause  

  protected abstract void closeSubChannels();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected void markWritesBroken(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // java.lang.Throwable cause
         0: .line 874
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.writesBrokenUpdater: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 25
         1: .line 875
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            invokeinterface io.undertow.UndertowLogger.isDebugEnabled:()Z
            ifeq 3
         2: .line 876
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            ldc "Marking writes broken on channel %s"
            aload 0 /* this */
            invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 878
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.handleBrokenSinkChannel:(Ljava/lang/Throwable;)V
         4: .line 879
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
         5: .line 880
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         6: .line 881
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable io.undertow.server.protocol.framed.AbstractFramedChannel top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 3 /* channel */
        start local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
         8: .line 882
            aload 3 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
        end local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
         9: .line 881
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 884
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        11: .line 885
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals:
      StackMap stack:
        12: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 3 /* channel */
        start local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        13: .line 886
            aload 3 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
        end local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        14: .line 885
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 888
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.clear:()V
        16: .line 889
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
            astore 4
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 3 /* channel */
        start local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        18: .line 890
            aload 3 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
        end local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        19: .line 889
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 892
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokeinterface java.util.Deque.clear:()V
        21: .line 880
            aload 2
            monitorexit
        22: goto 25
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel java.lang.Throwable io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack: java.lang.Throwable
        23: aload 2
            monitorexit
        24: athrow
        25: .line 895
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0   26     1    cause  Ljava/lang/Throwable;
            8    9     3  channel  TS;
           13   14     3  channel  TS;
           18   19     3  channel  TS;
      Exception table:
        from    to  target  type
           6    22      23  any
          23    24      23  any
    MethodParameters:
       Name  Flags
      cause  

  protected boolean isWritesBroken();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 898
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.writesBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  protected boolean isReadsBroken();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 902
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.readsBrokenUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.get:(Ljava/lang/Object;)I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  void resumeWrites();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 907
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
         1: .line 908
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  void suspendWrites();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 911
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
         1: .line 912
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  void wakeupWrites();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 915
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.wakeupWrites:()V
         1: .line 916
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  org.xnio.channels.StreamSourceChannel getSourceChannel();
    descriptor: ()Lorg/xnio/channels/StreamSourceChannel;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 919
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  void notifyFrameReadComplete(io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<C, R, S>);
    descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;)V
    flags: (0x0000) 
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel channel
         0: .line 924
            return
        end local 1 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel channel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    1     1  channel  Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
    Signature: (Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;)V
    MethodParameters:
         Name  Flags
      channel  

  protected abstract java.util.Collection<io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel<C, R, S>> getReceivers();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: ()Ljava/util/Collection<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;>;

  public void setIdleTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // long timeout
         0: .line 1080
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.idleTimeoutConduit:Lio/undertow/conduits/IdleTimeoutConduit;
            lload 1 /* timeout */
            invokevirtual io.undertow.conduits.IdleTimeoutConduit.setIdleTimeout:(J)V
         1: .line 1081
            return
        end local 1 // long timeout
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    2     1  timeout  J
    MethodParameters:
         Name  Flags
      timeout  

  public long getIdleTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 1084
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.idleTimeoutConduit:Lio/undertow/conduits/IdleTimeoutConduit;
            invokevirtual io.undertow.conduits.IdleTimeoutConduit.getIdleTimeout:()J
            lreturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  protected io.undertow.server.protocol.framed.FramePriority<C, R, S> getFramePriority();
    descriptor: ()Lio/undertow/server/protocol/framed/FramePriority;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 1088
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.framePriority:Lio/undertow/server/protocol/framed/FramePriority;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Signature: ()Lio/undertow/server/protocol/framed/FramePriority<TC;TR;TS;>;

  public void addCloseTask(org.xnio.ChannelListener<C>);
    descriptor: (Lorg/xnio/ChannelListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // org.xnio.ChannelListener task
         0: .line 1092
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeTasks:Ljava/util/List;
            aload 1 /* task */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 1093
            return
        end local 1 // org.xnio.ChannelListener task
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    2     1  task  Lorg/xnio/ChannelListener<TC;>;
    Signature: (Lorg/xnio/ChannelListener<TC;>;)V
    MethodParameters:
      Name  Flags
      task  final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 1097
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " peer "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getPeerAddress:()Ljava/net/SocketAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " local "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            invokevirtual org.xnio.StreamConnection.getLocalAddress:()Ljava/net/SocketAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "[ "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            ifnonnull 1
            ldc "No Receiver"
            goto 2
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         1: aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack: java.lang.StringBuilder java.lang.String
         2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " -- "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " -- "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  protected org.xnio.StreamConnection getUnderlyingConnection();
    descriptor: ()Lorg/xnio/StreamConnection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 1101
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.channel:Lorg/xnio/StreamConnection;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;

  protected org.xnio.ChannelExceptionHandler<org.xnio.channels.SuspendableWriteChannel> writeExceptionHandler();
    descriptor: ()Lorg/xnio/ChannelExceptionHandler;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 1109
            new io.undertow.server.protocol.framed.AbstractFramedChannel$8
            dup
            aload 0 /* this */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$8.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
    Signature: ()Lorg/xnio/ChannelExceptionHandler<Lorg/xnio/channels/SuspendableWriteChannel;>;

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

  public void setRequireExplicitFlush(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
        start local 1 // boolean requireExplicitFlush
         0: .line 1122
            aload 0 /* this */
            iload 1 /* requireExplicitFlush */
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.requireExplicitFlush:Z
         1: .line 1123
            return
        end local 1 // boolean requireExplicitFlush
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<TC;TR;TS;>;
            0    2     1  requireExplicitFlush  Z
    MethodParameters:
                      Name  Flags
      requireExplicitFlush  

  protected org.xnio.OptionMap getSettings();
    descriptor: ()Lorg/xnio/OptionMap;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
         0: .line 1126
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.settings:Lorg/xnio/OptionMap;
            areturn
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel<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/ConnectedChannel;
SourceFile: "AbstractFramedChannel.java"
NestMembers:
  io.undertow.server.protocol.framed.AbstractFramedChannel$1  io.undertow.server.protocol.framed.AbstractFramedChannel$2  io.undertow.server.protocol.framed.AbstractFramedChannel$2$1  io.undertow.server.protocol.framed.AbstractFramedChannel$3  io.undertow.server.protocol.framed.AbstractFramedChannel$4  io.undertow.server.protocol.framed.AbstractFramedChannel$5  io.undertow.server.protocol.framed.AbstractFramedChannel$6  io.undertow.server.protocol.framed.AbstractFramedChannel$7  io.undertow.server.protocol.framed.AbstractFramedChannel$8  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$1  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener$1  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener
InnerClasses:
  io.undertow.server.protocol.framed.AbstractFramedChannel$1
  io.undertow.server.protocol.framed.AbstractFramedChannel$2
  io.undertow.server.protocol.framed.AbstractFramedChannel$3
  io.undertow.server.protocol.framed.AbstractFramedChannel$4
  io.undertow.server.protocol.framed.AbstractFramedChannel$5
  io.undertow.server.protocol.framed.AbstractFramedChannel$6
  io.undertow.server.protocol.framed.AbstractFramedChannel$7
  io.undertow.server.protocol.framed.AbstractFramedChannel$8
  private FrameCloseListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener of io.undertow.server.protocol.framed.AbstractFramedChannel
  private final FrameReadListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener of io.undertow.server.protocol.framed.AbstractFramedChannel
  private FrameWriteListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameWriteListener of io.undertow.server.protocol.framed.AbstractFramedChannel
  public abstract FreeNotifier = io.undertow.util.ReferenceCountedPooled$FreeNotifier of io.undertow.util.ReferenceCountedPooled
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
  public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener