public abstract class io.undertow.channels.DetachableStreamSinkChannel implements org.xnio.channels.StreamSinkChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.undertow.channels.DetachableStreamSinkChannel
  super_class: java.lang.Object
{
  protected final org.xnio.channels.StreamSinkChannel delegate;
    descriptor: Lorg/xnio/channels/StreamSinkChannel;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected org.xnio.ChannelListener$SimpleSetter<io.undertow.channels.DetachableStreamSinkChannel> writeSetter;
    descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
    flags: (0x0004) ACC_PROTECTED
    Signature: Lorg/xnio/ChannelListener$SimpleSetter<Lio/undertow/channels/DetachableStreamSinkChannel;>;

  protected org.xnio.ChannelListener$SimpleSetter<io.undertow.channels.DetachableStreamSinkChannel> closeSetter;
    descriptor: Lorg/xnio/ChannelListener$SimpleSetter;
    flags: (0x0004) ACC_PROTECTED
    Signature: Lorg/xnio/ChannelListener$SimpleSetter<Lio/undertow/channels/DetachableStreamSinkChannel;>;

  public void <init>(org.xnio.channels.StreamSinkChannel);
    descriptor: (Lorg/xnio/channels/StreamSinkChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // org.xnio.channels.StreamSinkChannel delegate
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            aload 0 /* this */
            aload 1 /* delegate */
            putfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
         2: .line 53
            return
        end local 1 // org.xnio.channels.StreamSinkChannel delegate
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1  delegate  Lorg/xnio/channels/StreamSinkChannel;
    MethodParameters:
          Name  Flags
      delegate  final

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

  public void suspendWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 59
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 60
            return
         2: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.suspendWrites:()V
         3: .line 63
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public boolean isWriteResumed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 68
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 69
            iconst_0
            ireturn
         2: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.isWriteResumed:()Z
            ireturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public void shutdownWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 76
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 77
            return
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
         3: .line 80
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
    Exceptions:
      throws java.io.IOException

  public void awaitWritable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 84
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 85
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.awaitWritable:()V
         3: .line 88
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
    Exceptions:
      throws java.io.IOException

  public void awaitWritable(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 92
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 93
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokeinterface org.xnio.channels.StreamSinkChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         3: .line 96
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    4     1      time  J
            0    4     3  timeUnit  Ljava/util/concurrent/TimeUnit;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      final
      timeUnit  final

  public org.xnio.XnioExecutor getWriteThread();
    descriptor: ()Lorg/xnio/XnioExecutor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 100
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getWriteThread:()Lorg/xnio/XnioExecutor;
            areturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 105
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifne 1
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.isOpen:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 110
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 1
            return
         1: .line 111
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.close:()V
         2: .line 112
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
    Exceptions:
      throws java.io.IOException

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 116
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 117
            iconst_1
            ireturn
         2: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.flush:()Z
            ireturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
    Exceptions:
      throws java.io.IOException

  public long transferFrom(java.nio.channels.FileChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.channels.FileChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 124
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 125
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* src */
            lload 2 /* position */
            lload 4 /* count */
            invokeinterface org.xnio.channels.StreamSinkChannel.transferFrom:(Ljava/nio/channels/FileChannel;JJ)J
            lreturn
        end local 4 // long count
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel src
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1       src  Ljava/nio/channels/FileChannel;
            0    3     2  position  J
            0    3     4     count  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       final
      position  final
      count     final

  public long transferFrom(org.xnio.channels.StreamSourceChannel, long, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // long count
        start local 4 // java.nio.ByteBuffer throughBuffer
         0: .line 132
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 133
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* source */
            lload 2 /* count */
            aload 4 /* throughBuffer */
            invokeinterface org.xnio.channels.StreamSinkChannel.transferFrom:(Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
            lreturn
        end local 4 // java.nio.ByteBuffer throughBuffer
        end local 2 // long count
        end local 1 // org.xnio.channels.StreamSourceChannel source
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1         source  Lorg/xnio/channels/StreamSourceChannel;
            0    3     2          count  J
            0    3     4  throughBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      source         final
      count          final
      throughBuffer  final

  public org.xnio.ChannelListener$Setter<? extends org.xnio.channels.StreamSinkChannel> getWriteSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 140
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            ifnonnull 7
         1: .line 141
            aload 0 /* this */
            new org.xnio.ChannelListener$SimpleSetter
            dup
            invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
            putfield io.undertow.channels.DetachableStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
         2: .line 142
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifne 7
         3: .line 143
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            instanceof org.xnio.conduits.ConduitStreamSinkChannel
            ifeq 6
         4: .line 144
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            checkcast org.xnio.conduits.ConduitStreamSinkChannel
            new io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener
            dup
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            aload 0 /* this */
            invokespecial io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener.<init>:(Lorg/xnio/ChannelListener$SimpleSetter;Lorg/xnio/channels/StreamSinkChannel;)V
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
         5: .line 145
            goto 7
         6: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
            new io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener
            dup
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            aload 0 /* this */
            invokespecial io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener.<init>:(Lorg/xnio/ChannelListener$SimpleSetter;Lorg/xnio/channels/StreamSinkChannel;)V
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         7: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.writeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            areturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/channels/StreamSinkChannel;>;

  public org.xnio.ChannelListener$Setter<? extends org.xnio.channels.StreamSinkChannel> getCloseSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 155
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            ifnonnull 4
         1: .line 156
            aload 0 /* this */
            new org.xnio.ChannelListener$SimpleSetter
            dup
            invokespecial org.xnio.ChannelListener$SimpleSetter.<init>:()V
            putfield io.undertow.channels.DetachableStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
         2: .line 157
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifne 4
         3: .line 158
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            invokestatic org.xnio.ChannelListeners.delegatingChannelListener:(Ljava/nio/channels/Channel;Lorg/xnio/ChannelListener$SimpleSetter;)Lorg/xnio/ChannelListener;
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         4: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.closeSetter:Lorg/xnio/ChannelListener$SimpleSetter;
            areturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/channels/StreamSinkChannel;>;

  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.channels.DetachableStreamSinkChannel this
         0: .line 166
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getWorker:()Lorg/xnio/XnioWorker;
            areturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  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.channels.DetachableStreamSinkChannel this
         0: .line 171
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            areturn
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 176
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 177
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1    srcs  [Ljava/nio/ByteBuffer;
            0    3     2  offset  I
            0    3     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    final
      offset  final
      length  final

  public long write(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
         0: .line 184
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 185
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1  srcs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  final

  public int writeFinal(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 192
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 193
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* src */
            invokeinterface org.xnio.channels.StreamSinkChannel.writeFinal:(Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public long writeFinal(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 200
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 201
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.channels.StreamSinkChannel.writeFinal:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1    srcs  [Ljava/nio/ByteBuffer;
            0    3     2  offset  I
            0    3     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    
      offset  
      length  

  public long writeFinal(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
         0: .line 208
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 209
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            invokeinterface org.xnio.channels.StreamSinkChannel.writeFinal:([Ljava/nio/ByteBuffer;)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1  srcs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  

  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.channels.DetachableStreamSinkChannel this
        start local 1 // org.xnio.Option option
         0: .line 216
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* option */
            invokeinterface org.xnio.channels.StreamSinkChannel.supportsOption:(Lorg/xnio/Option;)Z
            ireturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    1     1  option  Lorg/xnio/Option<*>;
    Signature: (Lorg/xnio/Option<*>;)Z
    MethodParameters:
        Name  Flags
      option  final

  public <T> T getOption(org.xnio.Option<T>);
    descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // org.xnio.Option option
         0: .line 221
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 222
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* option */
            invokeinterface org.xnio.channels.StreamSinkChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            areturn
        end local 1 // org.xnio.Option option
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1  option  Lorg/xnio/Option<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
    MethodParameters:
        Name  Flags
      option  final

  public <T> T setOption(org.xnio.Option<T>, );
    descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // org.xnio.Option option
        start local 2 // java.lang.Object value
         0: .line 229
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 230
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* option */
            aload 2 /* value */
            invokeinterface org.xnio.channels.StreamSinkChannel.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.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1  option  Lorg/xnio/Option<TT;>;
            0    3     2   value  TT;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
    MethodParameters:
        Name  Flags
      option  final
      value   final

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 237
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 238
            getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
            invokeinterface io.undertow.UndertowMessages.channelIsClosed:()Ljava/nio/channels/ClosedChannelException;
            athrow
         2: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* src */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:(Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
            0    3     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   final

  public void resumeWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 245
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 246
            return
         2: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
         3: .line 249
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public void wakeupWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 253
            aload 0 /* this */
            invokevirtual io.undertow.channels.DetachableStreamSinkChannel.isFinished:()Z
            ifeq 2
         1: .line 254
            return
         2: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.wakeupWrites:()V
         3: .line 257
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;

  public void responseDone();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.undertow.channels.DetachableStreamSinkChannel this
         0: .line 260
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            instanceof org.xnio.conduits.ConduitStreamSinkChannel
            ifeq 4
         1: .line 261
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            checkcast org.xnio.conduits.ConduitStreamSinkChannel
            aconst_null
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setCloseListener:(Lorg/xnio/ChannelListener;)V
         2: .line 262
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            checkcast org.xnio.conduits.ConduitStreamSinkChannel
            aconst_null
            invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.setWriteListener:(Lorg/xnio/ChannelListener;)V
         3: .line 263
            goto 6
         4: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
            aconst_null
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         5: .line 265
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
            aconst_null
            invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
         6: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.isWriteResumed:()Z
            ifeq 8
         7: .line 268
            aload 0 /* this */
            getfield io.undertow.channels.DetachableStreamSinkChannel.delegate:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.suspendWrites:()V
         8: .line 270
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.undertow.channels.DetachableStreamSinkChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/undertow/channels/DetachableStreamSinkChannel;
}
SourceFile: "DetachableStreamSinkChannel.java"
NestMembers:
  io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener
InnerClasses:
  private SetterDelegatingListener = io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener of io.undertow.channels.DetachableStreamSinkChannel
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
  public SimpleSetter = org.xnio.ChannelListener$SimpleSetter of org.xnio.ChannelListener