final class io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener implements org.xnio.ChannelListener<org.xnio.channels.StreamSourceChannel>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener
  super_class: java.lang.Object
{
  final io.undertow.server.protocol.framed.AbstractFramedChannel this$0;
    descriptor: Lio/undertow/server/protocol/framed/AbstractFramedChannel;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(io.undertow.server.protocol.framed.AbstractFramedChannel);
    descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedChannel;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener this
         0: .line 932
            aload 0 /* this */
            aload 1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameReadListener;
    MethodParameters:
        Name  Flags
      this$0  final

  public void handleEvent(org.xnio.channels.StreamSourceChannel);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener this
        start local 1 // org.xnio.channels.StreamSourceChannel channel
         0: .line 938
            goto 2
        start local 2 // java.lang.Runnable runnable
         1: .line 939
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 2 /* runnable */
            invokeinterface java.lang.Runnable.run:()V
        end local 2 // java.lang.Runnable runnable
         2: .line 938
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.taskRunQueue:Ljava/util/concurrent/LinkedBlockingDeque;
            invokevirtual java.util.concurrent.LinkedBlockingDeque.poll:()Ljava/lang/Object;
            checkcast java.lang.Runnable
            dup
            astore 2 /* runnable */
        start local 2 // java.lang.Runnable runnable
         3: ifnonnull 1
         4: .line 942
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            astore 3 /* receiver */
        start local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel receiver
         5: .line 943
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readChannelDone:Z
            ifne 6
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.isReadsSuspended:()Z
            ifeq 9
      StackMap locals: java.lang.Runnable io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
         6: aload 3 /* receiver */
            ifnonnull 9
         7: .line 944
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.suspendReads:()V
         8: .line 945
            return
         9: .line 947
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiveSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            astore 4 /* listener */
        start local 4 // org.xnio.ChannelListener listener
        10: .line 948
            aload 4 /* listener */
            ifnonnull 12
        11: .line 949
            getstatic io.undertow.server.protocol.framed.AbstractFramedChannel.DRAIN_LISTENER:Lorg/xnio/ChannelListener;
            astore 4 /* listener */
        12: .line 951
      StackMap locals: org.xnio.ChannelListener
      StackMap stack:
            getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
            ldc "Invoking receive listener"
            aload 3 /* receiver */
            invokeinterface io.undertow.UndertowLogger.tracef:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 952
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 4 /* listener */
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        end local 4 // org.xnio.ChannelListener listener
        14: .line 955
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 5
            monitorenter
        15: .line 956
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.partialRead:Z
            istore 4 /* partialRead */
        start local 4 // boolean partialRead
        16: .line 955
            aload 5
            monitorexit
        17: goto 20
        end local 4 // boolean partialRead
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener org.xnio.channels.StreamSourceChannel java.lang.Runnable io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack: java.lang.Throwable
        18: aload 5
            monitorexit
        19: athrow
        start local 4 // boolean partialRead
        20: .line 958
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener org.xnio.channels.StreamSourceChannel java.lang.Runnable io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel int
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 25
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            invokevirtual io.undertow.util.ReferenceCountedPooled.isFreed:()Z
            ifne 25
            aload 1 /* channel */
            invokeinterface org.xnio.channels.StreamSourceChannel.isOpen:()Z
            ifeq 25
            iload 4 /* partialRead */
            ifne 25
        21: .line 960
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener$1
            dup
            aload 0 /* this */
            aload 1 /* channel */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener$1.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameReadListener;Lorg/xnio/channels/StreamSourceChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
        22: .line 966
            goto 25
      StackMap locals:
      StackMap stack: java.util.concurrent.RejectedExecutionException
        23: pop
        24: .line 967
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        25: .line 970
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 5
            monitorenter
        26: .line 971
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            iconst_0
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.partialRead:Z
        27: .line 970
            aload 5
            monitorexit
        28: goto 31
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener org.xnio.channels.StreamSourceChannel java.lang.Runnable io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel int io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack: java.lang.Throwable
        29: aload 5
            monitorexit
        30: athrow
        31: .line 973
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean partialRead
        end local 3 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel receiver
        end local 2 // java.lang.Runnable runnable
        end local 1 // org.xnio.channels.StreamSourceChannel channel
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameReadListener;
            0   32     1      channel  Lorg/xnio/channels/StreamSourceChannel;
            1    2     2     runnable  Ljava/lang/Runnable;
            3   32     2     runnable  Ljava/lang/Runnable;
            5   32     3     receiver  TR;
           10   14     4     listener  Lorg/xnio/ChannelListener;
           16   18     4  partialRead  Z
           20   32     4  partialRead  Z
      Exception table:
        from    to  target  type
          15    17      18  any
          18    19      18  any
          21    22      23  Class java.util.concurrent.RejectedExecutionException
          26    28      29  any
          29    30      29  any
    MethodParameters:
         Name  Flags
      channel  final

  public void handleEvent(java.nio.channels.Channel);
    descriptor: (Ljava/nio/channels/Channel;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.xnio.channels.StreamSourceChannel
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent:(Lorg/xnio/channels/StreamSourceChannel;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/xnio/ChannelListener<Lorg/xnio/channels/StreamSourceChannel;>;
SourceFile: "AbstractFramedChannel.java"
NestHost: io.undertow.server.protocol.framed.AbstractFramedChannel
InnerClasses:
  private final FrameReadListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener of io.undertow.server.protocol.framed.AbstractFramedChannel
  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener$1
  public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener