final class org.xnio.ssl.JsseSslStreamSinkConduit extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.xnio.ssl.JsseSslStreamSinkConduit
  super_class: org.xnio.conduits.AbstractStreamSinkConduit
{
  private final org.xnio.ssl.JsseSslConduitEngine sslEngine;
    descriptor: Lorg/xnio/ssl/JsseSslConduitEngine;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  protected void <init>(org.xnio.conduits.StreamSinkConduit, org.xnio.ssl.JsseSslConduitEngine, boolean);
    descriptor: (Lorg/xnio/conduits/StreamSinkConduit;Lorg/xnio/ssl/JsseSslConduitEngine;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // org.xnio.conduits.StreamSinkConduit next
        start local 2 // org.xnio.ssl.JsseSslConduitEngine sslEngine
        start local 3 // boolean tls
         0: .line 45
            aload 0 /* this */
            aload 1 /* next */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
         1: .line 46
            aload 2 /* sslEngine */
            ifnonnull 3
         2: .line 47
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            ldc "sslEngine"
            invokeinterface org.xnio._private.Messages.nullParameter:(Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
            athrow
         3: .line 49
      StackMap locals: org.xnio.ssl.JsseSslStreamSinkConduit org.xnio.conduits.StreamSinkConduit org.xnio.ssl.JsseSslConduitEngine int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sslEngine */
            putfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
         4: .line 50
            aload 0 /* this */
            iload 3 /* tls */
            putfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
         5: .line 51
            return
        end local 3 // boolean tls
        end local 2 // org.xnio.ssl.JsseSslConduitEngine sslEngine
        end local 1 // org.xnio.conduits.StreamSinkConduit next
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    6     1       next  Lorg/xnio/conduits/StreamSinkConduit;
            0    6     2  sslEngine  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    6     3        tls  Z
    MethodParameters:
           Name  Flags
      next       
      sslEngine  
      tls        

  public void enableTls();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
         0: .line 54
            aload 0 /* this */
            iconst_1
            putfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
         1: .line 55
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.isWriteResumed:()Z
            ifeq 3
         2: .line 56
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.wakeupWrites:()V
         3: .line 58
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;

  public long transferFrom(java.nio.channels.FileChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.channels.FileChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 62
            aload 1 /* src */
            lload 2 /* position */
            lload 4 /* count */
            new org.xnio.conduits.ConduitWritableByteChannel
            dup
            aload 0 /* this */
            invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
            invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
            lreturn
        end local 4 // long count
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel src
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    1     1       src  Ljava/nio/channels/FileChannel;
            0    1     2  position  J
            0    1     4     count  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       final
      position  final
      count     final

  public long transferFrom(org.xnio.channels.StreamSourceChannel, long, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // long count
        start local 4 // java.nio.ByteBuffer throughBuffer
         0: .line 67
            aload 1 /* source */
            lload 2 /* count */
            aload 4 /* throughBuffer */
            aload 0 /* this */
            invokestatic org.xnio.conduits.Conduits.transfer:(Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Lorg/xnio/conduits/StreamSinkConduit;)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 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    1     1         source  Lorg/xnio/channels/StreamSourceChannel;
            0    1     2          count  J
            0    1     4  throughBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      source         final
      count          final
      throughBuffer  final

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer src
         0: .line 72
            aload 0 /* this */
            aload 1 /* src */
            iconst_0
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.write:(Ljava/nio/ByteBuffer;Z)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    1     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offs
        start local 3 // int len
         0: .line 77
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offs */
            iload 3 /* len */
            iconst_0
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.write:([Ljava/nio/ByteBuffer;IIZ)J
            lreturn
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    1     1  srcs  [Ljava/nio/ByteBuffer;
            0    1     2  offs  I
            0    1     3   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  
      offs  
      len   

  public int writeFinal(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer src
         0: .line 82
            aload 0 /* this */
            aload 1 /* src */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.write:(Ljava/nio/ByteBuffer;Z)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    1     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=5, locals=4, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 87
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            iconst_1
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.write:([Ljava/nio/ByteBuffer;IIZ)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    1     1    srcs  [Ljava/nio/ByteBuffer;
            0    1     2  offset  I
            0    1     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    
      offset  
      length  

  private int write(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // boolean writeFinal
         0: .line 91
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifne 4
         1: .line 92
            iload 2 /* writeFinal */
            ifeq 3
         2: .line 93
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSinkConduit
            aload 1 /* src */
            invokeinterface org.xnio.conduits.StreamSinkConduit.writeFinal:(Ljava/nio/ByteBuffer;)I
            ireturn
         3: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.next:Lorg/xnio/conduits/Conduit;
            checkcast org.xnio.conduits.StreamSinkConduit
            aload 1 /* src */
            invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            ireturn
         4: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            aload 1 /* src */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrap:(Ljava/nio/ByteBuffer;)I
            istore 3 /* wrappedBytes */
        start local 3 // int wrappedBytes
         5: .line 99
            iload 3 /* wrappedBytes */
            ifle 7
         6: .line 100
            aload 0 /* this */
            iload 2 /* writeFinal */
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.writeWrappedBuffer:(Z)Z
            pop
         7: .line 102
      StackMap locals: int
      StackMap stack:
            iload 3 /* wrappedBytes */
            ireturn
        end local 3 // int wrappedBytes
        end local 2 // boolean writeFinal
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    8     1           src  Ljava/nio/ByteBuffer;
            0    8     2    writeFinal  Z
            5    8     3  wrappedBytes  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      src         
      writeFinal  

  private long write(java.nio.ByteBuffer[], int, int, boolean);
    descriptor: ([Ljava/nio/ByteBuffer;IIZ)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offs
        start local 3 // int len
        start local 4 // boolean writeFinal
         0: .line 106
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifne 4
         1: .line 107
            iload 4 /* writeFinal */
            ifeq 3
         2: .line 108
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offs */
            iload 3 /* len */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.writeFinal:([Ljava/nio/ByteBuffer;II)J
            lreturn
         3: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* srcs */
            iload 2 /* offs */
            iload 3 /* len */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.write:([Ljava/nio/ByteBuffer;II)J
            lreturn
         4: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            aload 1 /* srcs */
            iload 2 /* offs */
            iload 3 /* len */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.wrap:([Ljava/nio/ByteBuffer;II)J
            lstore 5 /* wrappedBytes */
        start local 5 // long wrappedBytes
         5: .line 114
            lload 5 /* wrappedBytes */
            lconst_0
            lcmp
            ifle 7
         6: .line 115
            aload 0 /* this */
            iload 4 /* writeFinal */
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.writeWrappedBuffer:(Z)Z
            pop
         7: .line 117
      StackMap locals: long
      StackMap stack:
            lload 5 /* wrappedBytes */
            lreturn
        end local 5 // long wrappedBytes
        end local 4 // boolean writeFinal
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0    8     1          srcs  [Ljava/nio/ByteBuffer;
            0    8     2          offs  I
            0    8     3           len  I
            0    8     4    writeFinal  Z
            5    8     5  wrappedBytes  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      srcs        
      offs        
      len         
      writeFinal  

  public void resumeWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
         0: .line 122
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifeq 3
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isFirstHandshake:()Z
            ifeq 3
         1: .line 123
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.wakeupWrites:()V
         2: .line 124
            goto 4
         3: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.resumeWrites:()V
         4: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;

  public void terminateWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
         0: .line 131
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifne 3
         1: .line 132
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.terminateWrites:()V
         2: .line 133
            return
         3: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeOutbound:()V
         4: .line 137
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.flush:()Z
            pop
         5: .line 138
            goto 13
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 1 /* e */
        start local 1 // java.io.IOException e
         7: .line 140
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.truncateWrites:()V
         8: .line 141
            goto 12
      StackMap locals: org.xnio.ssl.JsseSslStreamSinkConduit java.io.IOException
      StackMap stack: java.io.IOException
         9: astore 2 /* e2 */
        start local 2 // java.io.IOException e2
        10: .line 142
            aload 2 /* e2 */
            aload 1 /* e */
            invokevirtual java.io.IOException.addSuppressed:(Ljava/lang/Throwable;)V
        11: .line 143
            aload 2 /* e2 */
            athrow
        end local 2 // java.io.IOException e2
        12: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            athrow
        end local 1 // java.io.IOException e
        13: .line 147
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            7   13     1     e  Ljava/io/IOException;
           10   12     2    e2  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     5       6  Class java.io.IOException
           7     8       9  Class java.io.IOException
    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 // org.xnio.ssl.JsseSslStreamSinkConduit this
         0: .line 151
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifeq 2
         1: .line 152
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.awaitCanWrap:()V
         2: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.awaitWritable:()V
         3: .line 155
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
    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=5, locals=8, args_size=3
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 159
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifne 3
         1: .line 160
            aload 0 /* this */
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         2: .line 161
            return
         3: .line 163
      StackMap locals:
      StackMap stack:
            aload 3 /* timeUnit */
            lload 1 /* time */
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 4 /* duration */
        start local 4 // long duration
         4: .line 164
            invokestatic java.lang.System.nanoTime:()J
            lstore 6 /* awaited */
        start local 6 // long awaited
         5: .line 165
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.awaitCanWrap:(JLjava/util/concurrent/TimeUnit;)V
         6: .line 166
            invokestatic java.lang.System.nanoTime:()J
            lload 6 /* awaited */
            lsub
            lstore 6 /* awaited */
         7: .line 167
            lload 6 /* awaited */
            lload 4 /* duration */
            lcmp
            ifle 9
         8: .line 168
            return
         9: .line 170
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            lload 4 /* duration */
            lload 6 /* awaited */
            lsub
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
        10: .line 171
            return
        end local 6 // long awaited
        end local 4 // long duration
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0   11     1      time  J
            0   11     3  timeUnit  Ljava/util/concurrent/TimeUnit;
            4   11     4  duration  J
            5   11     6   awaited  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      
      timeUnit  

  public void truncateWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
         0: .line 175
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifeq 11
         1: .line 176
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeOutbound:()V
         2: .line 177
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 179
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.truncateWrites:()V
         5: .line 180
            goto 7
      StackMap locals: org.xnio.ssl.JsseSslStreamSinkConduit java.lang.Throwable
      StackMap stack: java.io.IOException
         6: pop
         7: .line 182
      StackMap locals:
      StackMap stack:
            aload 1
            athrow
         8: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.truncateWrites:()V
         9: .line 180
            goto 11
      StackMap locals:
      StackMap stack: java.io.IOException
        10: pop
        11: .line 183
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.truncateWrites:()V
        12: .line 184
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
      Exception table:
        from    to  target  type
           1     3       3  any
           4     5       6  Class java.io.IOException
           8     9      10  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
         0: .line 188
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.tls:Z
            ifne 2
         1: .line 189
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.flush:()Z
            ireturn
         2: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isOutboundClosed:()Z
            ifeq 7
         3: .line 192
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.flush:()Z
            ifeq 6
            aload 0 /* this */
            iconst_0
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.writeWrappedBuffer:(Z)Z
            ifeq 6
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.flush:()Z
            ifeq 6
         4: .line 193
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.terminateWrites:()V
         5: .line 194
            iconst_1
            ireturn
         6: .line 196
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.flush:()Z
            ifeq 8
            aload 0 /* this */
            iconst_0
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.writeWrappedBuffer:(Z)Z
            ifeq 8
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.flush:()Z
            ifeq 8
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_0
            ireturn
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
    Exceptions:
      throws java.io.IOException

  private boolean writeWrappedBuffer(boolean);
    descriptor: (Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
        start local 1 // boolean writeFinal
         0: .line 203
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrapLock:()Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 204
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSinkConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getWrappedBuffer:()Ljava/nio/ByteBuffer;
            astore 3 /* wrapBuffer */
        start local 3 // java.nio.ByteBuffer wrapBuffer
         2: .line 207
      StackMap locals: java.lang.Object java.nio.ByteBuffer
      StackMap stack:
            aload 3 /* wrapBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            invokevirtual java.nio.Buffer.hasRemaining:()Z
            ifne 7
         3: .line 208
            iload 1 /* writeFinal */
            ifeq 5
         4: .line 209
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSinkConduit.terminateWrites:()V
         5: .line 223
      StackMap locals:
      StackMap stack:
            aload 3 /* wrapBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
            aload 2
            monitorexit
         6: .line 211
            iconst_1
            ireturn
         7: .line 213
      StackMap locals:
      StackMap stack:
            iload 1 /* writeFinal */
            ifeq 11
         8: .line 214
            aload 0 /* this */
            aload 3 /* wrapBuffer */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.writeFinal:(Ljava/nio/ByteBuffer;)I
            ifne 17
         9: .line 223
            aload 3 /* wrapBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
            aload 2
            monitorexit
        10: .line 215
            iconst_0
            ireturn
        11: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* wrapBuffer */
            invokespecial org.xnio.conduits.AbstractStreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
            ifne 17
        12: .line 223
            aload 3 /* wrapBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
            aload 2
            monitorexit
        13: .line 219
            iconst_0
            ireturn
        14: .line 222
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        15: .line 223
            aload 3 /* wrapBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        16: .line 224
            aload 4
            athrow
        17: .line 223
      StackMap locals:
      StackMap stack:
            aload 3 /* wrapBuffer */
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        18: .line 205
            goto 2
        end local 3 // java.nio.ByteBuffer wrapBuffer
        19: .line 203
      StackMap locals: org.xnio.ssl.JsseSslStreamSinkConduit int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        20: athrow
        end local 1 // boolean writeFinal
        end local 0 // org.xnio.ssl.JsseSslStreamSinkConduit this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Lorg/xnio/ssl/JsseSslStreamSinkConduit;
            0   21     1  writeFinal  Z
            2   19     3  wrapBuffer  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           2     5      14  any
           7     9      14  any
          11    12      14  any
           1     6      19  any
           7    10      19  any
          11    13      19  any
          14    20      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      writeFinal  
}
Signature: Lorg/xnio/conduits/AbstractStreamSinkConduit<Lorg/xnio/conduits/StreamSinkConduit;>;
SourceFile: "JsseSslStreamSinkConduit.java"