class io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener implements org.xnio.ChannelListener<org.xnio.channels.CloseableChannel>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener
  super_class: java.lang.Object
{
  private boolean sinkClosed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean sourceClosed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  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$FrameCloseListener this
         0: .line 975
            aload 0 /* this */
            aload 1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.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$FrameCloseListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameCloseListener;
    MethodParameters:
        Name  Flags
      this$0  final

  public void handleEvent(org.xnio.channels.CloseableChannel);
    descriptor: (Lorg/xnio/channels/CloseableChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener this
        start local 1 // org.xnio.channels.CloseableChannel c
         0: .line 983
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 1 /* c */
            invokeinterface org.xnio.channels.CloseableChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            if_acmpeq 3
            aload 1 /* c */
            invokeinterface org.xnio.channels.CloseableChannel.getWorker:()Lorg/xnio/XnioWorker;
            invokevirtual org.xnio.XnioWorker.isShutdown:()Z
            ifne 3
         1: .line 984
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$1
            dup
            aload 0 /* this */
            aload 1 /* c */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$1.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameCloseListener;Lorg/xnio/channels/CloseableChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
         2: .line 990
            return
         3: .line 994
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            instanceof org.xnio.channels.StreamSinkChannel
            ifeq 6
         4: .line 995
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.sinkClosed:Z
         5: .line 996
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 1 /* c */
            instanceof org.xnio.channels.StreamSourceChannel
            ifeq 8
         7: .line 997
            aload 0 /* this */
            iconst_1
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.sourceClosed:Z
         8: .line 999
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.sourceClosed:Z
            ifeq 9
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.sinkClosed:Z
            ifne 10
         9: .line 1000
      StackMap locals:
      StackMap stack:
            return
        10: .line 1001
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 13
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.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 13
        11: .line 1003
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            new io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2
            dup
            aload 0 /* this */
            aload 1 /* c */
            invokespecial io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2.<init>:(Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameCloseListener;Lorg/xnio/channels/CloseableChannel;)V
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.runInIoThread:(Ljava/lang/Runnable;)V
        12: .line 1024
            return
        13: .line 1026
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.receiver:Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel;
            astore 2 /* receiver */
        start local 2 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel receiver
        14: .line 1028
            aload 2 /* receiver */
            ifnull 16
            aload 2 /* receiver */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.isOpen:()Z
            ifeq 16
            aload 2 /* receiver */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.isReadResumed:()Z
            ifeq 16
        15: .line 1029
            aload 2 /* receiver */
            aload 2 /* receiver */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            checkcast org.xnio.ChannelListener$SimpleSetter
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        16: .line 1035
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 7
            monitorenter
        17: .line 1036
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.pendingFrames:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* pendingFrames */
        start local 3 // java.util.List pendingFrames
        18: .line 1037
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.newFrames:Ljava/util/Deque;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 4 /* newFrames */
        start local 4 // java.util.List newFrames
        19: .line 1038
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.heldFrames:Ljava/util/Deque;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* heldFrames */
        start local 5 // java.util.List heldFrames
        20: .line 1039
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.getReceivers:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 6 /* receivers */
        start local 6 // java.util.List receivers
        21: .line 1035
            aload 7
            monitorexit
        22: goto 25
        end local 6 // java.util.List receivers
        end local 5 // java.util.List heldFrames
        end local 4 // java.util.List newFrames
        end local 3 // java.util.List pendingFrames
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack: java.lang.Throwable
        23: aload 7
            monitorexit
        24: athrow
        start local 3 // java.util.List pendingFrames
        start local 4 // java.util.List newFrames
        start local 5 // java.util.List heldFrames
        start local 6 // java.util.List receivers
        25: .line 1041
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel java.util.List java.util.List java.util.List java.util.List
      StackMap stack:
            aload 3 /* pendingFrames */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 28
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        26: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 7 /* channel */
        start local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        27: .line 1043
            aload 7 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
        end local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        28: .line 1041
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        29: .line 1046
            aload 4 /* newFrames */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 32
      StackMap locals:
      StackMap stack:
        30: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 7 /* channel */
        start local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        31: .line 1048
            aload 7 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
        end local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        32: .line 1046
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 1050
            aload 5 /* heldFrames */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 36
      StackMap locals:
      StackMap stack:
        34: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel
            astore 7 /* channel */
        start local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        35: .line 1052
            aload 7 /* channel */
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.markBroken:()V
        end local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel channel
        36: .line 1050
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        37: .line 1054
            aload 6 /* receivers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 40
      StackMap locals:
      StackMap stack:
        38: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
            astore 7 /* r */
        start local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel r
        39: .line 1055
            aload 7 /* r */
            invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
        end local 7 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel r
        40: .line 1054
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        end local 6 // java.util.List receivers
        end local 5 // java.util.List heldFrames
        end local 4 // java.util.List newFrames
        end local 3 // java.util.List pendingFrames
        41: .line 1058
            goto 71
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack: java.lang.Throwable
        42: astore 9
        43: .line 1060
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeTasks:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 46
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top java.lang.Throwable top java.util.Iterator
      StackMap stack:
        44: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.xnio.ChannelListener
            astore 10 /* task */
        start local 10 // org.xnio.ChannelListener task
        45: .line 1061
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 10 /* task */
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        end local 10 // org.xnio.ChannelListener task
        46: .line 1060
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 44
        47: .line 1063
            goto 60
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
        48: astore 12
        49: .line 1064
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 13
            monitorenter
        50: .line 1065
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
        51: .line 1066
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 54
        52: .line 1067
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.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.close:()V
        53: .line 1068
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        54: .line 1064
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top java.lang.Throwable top top java.lang.Throwable io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack:
            aload 13
            monitorexit
        55: goto 58
      StackMap locals:
      StackMap stack: java.lang.Throwable
        56: aload 13
            monitorexit
        57: athrow
        58: .line 1071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        59: .line 1072
            aload 12
            athrow
        60: .line 1064
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 13
            monitorenter
        61: .line 1065
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
        62: .line 1066
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 65
        63: .line 1067
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.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.close:()V
        64: .line 1068
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        65: .line 1064
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top java.lang.Throwable top top top io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack:
            aload 13
            monitorexit
        66: goto 69
      StackMap locals:
      StackMap stack: java.lang.Throwable
        67: aload 13
            monitorexit
        68: athrow
        69: .line 1071
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        70: .line 1073
            aload 9
            athrow
        71: .line 1060
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeTasks:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 74
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top top top java.util.Iterator
      StackMap stack:
        72: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.xnio.ChannelListener
            astore 10 /* task */
        start local 10 // org.xnio.ChannelListener task
        73: .line 1061
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 10 /* task */
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        end local 10 // org.xnio.ChannelListener task
        74: .line 1060
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 72
        75: .line 1063
            goto 88
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack: java.lang.Throwable
        76: astore 12
        77: .line 1064
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 13
            monitorenter
        78: .line 1065
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
        79: .line 1066
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 82
        80: .line 1067
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.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.close:()V
        81: .line 1068
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        82: .line 1064
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top top top top java.lang.Throwable io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack:
            aload 13
            monitorexit
        83: goto 86
      StackMap locals:
      StackMap stack: java.lang.Throwable
        84: aload 13
            monitorexit
        85: athrow
        86: .line 1071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        87: .line 1072
            aload 12
            athrow
        88: .line 1064
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            dup
            astore 13
            monitorenter
        89: .line 1065
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel.closeSubChannels:()V
        90: .line 1066
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
            ifnull 93
        91: .line 1067
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.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.close:()V
        92: .line 1068
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aconst_null
            putfield io.undertow.server.protocol.framed.AbstractFramedChannel.readData:Lio/undertow/util/ReferenceCountedPooled;
        93: .line 1064
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel top top top top top top top top top top io.undertow.server.protocol.framed.AbstractFramedChannel
      StackMap stack:
            aload 13
            monitorexit
        94: goto 97
      StackMap locals:
      StackMap stack: java.lang.Throwable
        95: aload 13
            monitorexit
        96: athrow
        97: .line 1071
      StackMap locals: io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener org.xnio.channels.CloseableChannel io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            aload 0 /* this */
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokevirtual org.xnio.ChannelListener$SimpleSetter.get:()Lorg/xnio/ChannelListener;
            invokestatic org.xnio.ChannelListeners.invokeChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener;)Z
            pop
        98: .line 1074
            return
        end local 2 // io.undertow.server.protocol.framed.AbstractFramedStreamSourceChannel receiver
        end local 1 // org.xnio.channels.CloseableChannel c
        end local 0 // io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   99     0           this  Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameCloseListener;
            0   99     1              c  Lorg/xnio/channels/CloseableChannel;
           14   99     2       receiver  TR;
           18   23     3  pendingFrames  Ljava/util/List<TS;>;
           25   41     3  pendingFrames  Ljava/util/List<TS;>;
           19   23     4      newFrames  Ljava/util/List<TS;>;
           25   41     4      newFrames  Ljava/util/List<TS;>;
           20   23     5     heldFrames  Ljava/util/List<TS;>;
           25   41     5     heldFrames  Ljava/util/List<TS;>;
           21   23     6      receivers  Ljava/util/List<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;>;
           25   41     6      receivers  Ljava/util/List<Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;>;
           27   28     7        channel  TS;
           31   32     7        channel  TS;
           35   36     7        channel  TS;
           39   40     7              r  Lio/undertow/server/protocol/framed/AbstractFramedStreamSourceChannel<TC;TR;TS;>;
           45   46    10           task  Lorg/xnio/ChannelListener<TC;>;
           73   74    10           task  Lorg/xnio/ChannelListener<TC;>;
      Exception table:
        from    to  target  type
          17    22      23  any
          23    24      23  any
          14    42      42  any
          43    48      48  any
          50    55      56  any
          56    57      56  any
          61    66      67  any
          67    68      67  any
          71    76      76  any
          78    83      84  any
          84    85      84  any
          89    94      95  any
          95    96      95  any
    MethodParameters:
      Name  Flags
      c     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.CloseableChannel
            invokevirtual io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.handleEvent:(Lorg/xnio/channels/CloseableChannel;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static io.undertow.server.protocol.framed.AbstractFramedChannel access$1(io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener);
    descriptor: (Lio/undertow/server/protocol/framed/AbstractFramedChannel$FrameCloseListener;)Lio/undertow/server/protocol/framed/AbstractFramedChannel;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 975
            aload 0
            getfield io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener.this$0:Lio/undertow/server/protocol/framed/AbstractFramedChannel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lorg/xnio/ChannelListener<Lorg/xnio/channels/CloseableChannel;>;
SourceFile: "AbstractFramedChannel.java"
NestHost: io.undertow.server.protocol.framed.AbstractFramedChannel
InnerClasses:
  private FrameCloseListener = io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener of io.undertow.server.protocol.framed.AbstractFramedChannel
  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$1
  io.undertow.server.protocol.framed.AbstractFramedChannel$FrameCloseListener$2
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
  public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener