final class org.xnio.ssl.JsseSslStreamSourceConduit extends org.xnio.conduits.AbstractStreamSourceConduit<org.xnio.conduits.StreamSourceConduit>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.xnio.ssl.JsseSslStreamSourceConduit
  super_class: org.xnio.conduits.AbstractStreamSourceConduit
{
  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.StreamSourceConduit, org.xnio.ssl.JsseSslConduitEngine, boolean);
    descriptor: (Lorg/xnio/conduits/StreamSourceConduit;Lorg/xnio/ssl/JsseSslConduitEngine;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
        start local 1 // org.xnio.conduits.StreamSourceConduit 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.AbstractStreamSourceConduit.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)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.JsseSslStreamSourceConduit org.xnio.conduits.StreamSourceConduit org.xnio.ssl.JsseSslConduitEngine int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sslEngine */
            putfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
         4: .line 50
            aload 0 /* this */
            iload 3 /* tls */
            putfield org.xnio.ssl.JsseSslStreamSourceConduit.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.StreamSourceConduit next
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
            0    6     1       next  Lorg/xnio/conduits/StreamSourceConduit;
            0    6     2  sslEngine  Lorg/xnio/ssl/JsseSslConduitEngine;
            0    6     3        tls  Z
    MethodParameters:
           Name  Flags
      next       
      sslEngine  
      tls        

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

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

  public long transferTo(long, java.nio.ByteBuffer, org.xnio.channels.StreamSinkChannel);
    descriptor: (JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
        start local 1 // long count
        start local 3 // java.nio.ByteBuffer throughBuffer
        start local 4 // org.xnio.channels.StreamSinkChannel target
         0: .line 67
            aload 0 /* this */
            lload 1 /* count */
            aload 3 /* throughBuffer */
            aload 4 /* target */
            invokestatic org.xnio.conduits.Conduits.transfer:(Lorg/xnio/conduits/StreamSourceConduit;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
            lreturn
        end local 4 // org.xnio.channels.StreamSinkChannel target
        end local 3 // java.nio.ByteBuffer throughBuffer
        end local 1 // long count
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
            0    1     1          count  J
            0    1     3  throughBuffer  Ljava/nio/ByteBuffer;
            0    1     4         target  Lorg/xnio/channels/StreamSinkChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      count          final
      throughBuffer  final
      target         final

  public int read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 72
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.tls:Z
            ifne 5
         1: .line 73
            aload 0 /* this */
            aload 1 /* dst */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            istore 2 /* res */
        start local 2 // int res
         2: .line 74
            iload 2 /* res */
            iconst_m1
            if_icmpne 4
         3: .line 75
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSourceConduit.terminateReads:()V
         4: .line 77
      StackMap locals: int
      StackMap stack:
            iload 2 /* res */
            ireturn
        end local 2 // int res
         5: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isDataAvailable:()Z
            ifne 6
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isInboundClosed:()Z
            ifne 7
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isClosed:()Z
            ifeq 8
         7: .line 80
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
         8: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         9: .line 85
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            astore 5 /* unwrapBuffer */
        start local 5 // java.nio.ByteBuffer unwrapBuffer
        10: .line 87
            aload 0 /* this */
            aload 5 /* unwrapBuffer */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            istore 2 /* readResult */
        start local 2 // int readResult
        11: .line 88
            goto 15
        end local 2 // int readResult
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer top top java.lang.Object java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
        12: astore 6
        13: .line 89
            aload 5 /* unwrapBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        14: .line 90
            aload 6
            athrow
        start local 2 // int readResult
        15: .line 89
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer int top java.lang.Object java.nio.ByteBuffer
      StackMap stack:
            aload 5 /* unwrapBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        end local 5 // java.nio.ByteBuffer unwrapBuffer
        16: .line 84
            aload 4
            monitorexit
        17: goto 20
        end local 2 // int readResult
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer top top java.lang.Object
      StackMap stack: java.lang.Throwable
        18: aload 4
            monitorexit
        19: athrow
        start local 2 // int readResult
        20: .line 92
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer int
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            aload 1 /* dst */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.unwrap:(Ljava/nio/ByteBuffer;)I
            istore 3 /* unwrapResult */
        start local 3 // int unwrapResult
        21: .line 93
            iload 3 /* unwrapResult */
            ifne 24
            iload 2 /* readResult */
            iconst_m1
            if_icmpne 24
        22: .line 94
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSourceConduit.terminateReads:()V
        23: .line 95
            iconst_m1
            ireturn
        24: .line 97
      StackMap locals: int
      StackMap stack:
            iload 3 /* unwrapResult */
            ireturn
        end local 3 // int unwrapResult
        end local 2 // int readResult
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0          this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
            0   25     1           dst  Ljava/nio/ByteBuffer;
            2    5     2           res  I
           11   12     2    readResult  I
           15   18     2    readResult  I
           20   25     2    readResult  I
           21   25     3  unwrapResult  I
           10   16     5  unwrapBuffer  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
          10    12      12  any
           9    17      18  any
          18    19      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dst   

  public long read(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offs
        start local 3 // int len
         0: .line 102
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.tls:Z
            ifne 5
         1: .line 103
            aload 0 /* this */
            aload 1 /* dsts */
            iload 2 /* offs */
            iload 3 /* len */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.read:([Ljava/nio/ByteBuffer;II)J
            lstore 4 /* res */
        start local 4 // long res
         2: .line 104
            lload 4 /* res */
            ldc -1
            lcmp
            ifne 4
         3: .line 105
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSourceConduit.terminateReads:()V
         4: .line 107
      StackMap locals: long
      StackMap stack:
            lload 4 /* res */
            lreturn
        end local 4 // long res
         5: .line 109
      StackMap locals:
      StackMap stack:
            iload 2 /* offs */
            iflt 6
            iload 2 /* offs */
            iload 3 /* len */
            if_icmpgt 6
            iload 3 /* len */
            iflt 6
            iload 2 /* offs */
            iload 3 /* len */
            iadd
            aload 1 /* dsts */
            arraylength
            if_icmple 7
         6: .line 110
      StackMap locals:
      StackMap stack:
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:()V
            athrow
         7: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isDataAvailable:()Z
            ifne 8
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isInboundClosed:()Z
            ifne 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isClosed:()Z
            ifeq 10
         9: .line 113
      StackMap locals:
      StackMap stack:
            ldc -1
            lreturn
        10: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 7
            monitorenter
        11: .line 119
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            astore 8 /* unwrapBuffer */
        start local 8 // java.nio.ByteBuffer unwrapBuffer
        12: .line 121
            aload 0 /* this */
            aload 8 /* unwrapBuffer */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
            istore 4 /* readResult */
        start local 4 // int readResult
        13: .line 122
            goto 17
        end local 4 // int readResult
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer[] int int top top top java.lang.Object java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
        14: astore 9
        15: .line 123
            aload 8 /* unwrapBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        16: .line 124
            aload 9
            athrow
        start local 4 // int readResult
        17: .line 123
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer[] int int int top top java.lang.Object java.nio.ByteBuffer
      StackMap stack:
            aload 8 /* unwrapBuffer */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        end local 8 // java.nio.ByteBuffer unwrapBuffer
        18: .line 117
            aload 7
            monitorexit
        19: goto 22
        end local 4 // int readResult
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer[] int int top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        20: aload 7
            monitorexit
        21: athrow
        start local 4 // int readResult
        22: .line 126
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.nio.ByteBuffer[] int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            aload 1 /* dsts */
            iload 2 /* offs */
            iload 3 /* len */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.unwrap:([Ljava/nio/ByteBuffer;II)J
            lstore 5 /* unwrapResult */
        start local 5 // long unwrapResult
        23: .line 127
            lload 5 /* unwrapResult */
            lconst_0
            lcmp
            ifne 26
            iload 4 /* readResult */
            iconst_m1
            if_icmpne 26
        24: .line 128
            aload 0 /* this */
            invokevirtual org.xnio.ssl.JsseSslStreamSourceConduit.terminateReads:()V
        25: .line 129
            ldc -1
            lreturn
        26: .line 131
      StackMap locals: long
      StackMap stack:
            lload 5 /* unwrapResult */
            lreturn
        end local 5 // long unwrapResult
        end local 4 // int readResult
        end local 3 // int len
        end local 2 // int offs
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0          this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
            0   27     1          dsts  [Ljava/nio/ByteBuffer;
            0   27     2          offs  I
            0   27     3           len  I
            2    5     4           res  J
           13   14     4    readResult  I
           17   20     4    readResult  I
           22   27     4    readResult  I
           23   27     5  unwrapResult  J
           12   18     8  unwrapBuffer  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
          12    14      14  any
          11    19      20  any
          20    21      20  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dsts  
      offs  
      len   

  public void resumeReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
         0: .line 136
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.tls:Z
            ifeq 3
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isFirstHandshake:()Z
            ifeq 3
         1: .line 137
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.wakeupReads:()V
         2: .line 138
            goto 4
         3: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.resumeReads:()V
         4: .line 141
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;

  public void terminateReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
         0: .line 145
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.tls:Z
            ifeq 10
         1: .line 147
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.closeInbound:()V
         2: .line 148
            goto 10
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 1 /* ex */
        start local 1 // java.io.IOException ex
         4: .line 150
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.terminateReads:()V
         5: .line 151
            goto 9
      StackMap locals: org.xnio.ssl.JsseSslStreamSourceConduit java.io.IOException
      StackMap stack: java.io.IOException
         6: astore 2 /* e2 */
        start local 2 // java.io.IOException e2
         7: .line 152
            aload 2 /* e2 */
            aload 1 /* ex */
            invokevirtual java.io.IOException.addSuppressed:(Ljava/lang/Throwable;)V
         8: .line 153
            aload 2 /* e2 */
            athrow
        end local 2 // java.io.IOException e2
         9: .line 155
      StackMap locals:
      StackMap stack:
            aload 1 /* ex */
            athrow
        end local 1 // java.io.IOException ex
        10: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.terminateReads:()V
        11: .line 159
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
            4   10     1    ex  Ljava/io/IOException;
            7    9     2    e2  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           4     5       6  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  public void awaitReadable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
         0: .line 163
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.tls:Z
            ifeq 2
         1: .line 164
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.awaitCanUnwrap:()V
         2: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.isDataAvailable:()Z
            ifeq 4
         3: .line 167
            return
         4: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.awaitReadable:()V
         5: .line 170
            return
        end local 0 // org.xnio.ssl.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
    Exceptions:
      throws java.io.IOException

  public void awaitReadable(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.JsseSslStreamSourceConduit this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 174
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.tls:Z
            ifne 3
         1: .line 175
            aload 0 /* this */
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokespecial org.xnio.conduits.AbstractStreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         2: .line 176
            return
         3: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapLock:()Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         4: .line 179
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.getUnwrapBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 7
         5: .line 180
            aload 4
            monitorexit
         6: return
         7: .line 178
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 4
            monitorexit
        10: athrow
        11: .line 183
      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
        12: .line 184
            invokestatic java.lang.System.nanoTime:()J
            lstore 6 /* awaited */
        start local 6 // long awaited
        13: .line 185
            aload 0 /* this */
            getfield org.xnio.ssl.JsseSslStreamSourceConduit.sslEngine:Lorg/xnio/ssl/JsseSslConduitEngine;
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokevirtual org.xnio.ssl.JsseSslConduitEngine.awaitCanUnwrap:(JLjava/util/concurrent/TimeUnit;)V
        14: .line 186
            invokestatic java.lang.System.nanoTime:()J
            lload 6 /* awaited */
            lsub
            lstore 6 /* awaited */
        15: .line 187
            lload 6 /* awaited */
            lload 4 /* duration */
            lcmp
            ifle 17
        16: .line 188
            return
        17: .line 190
      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.AbstractStreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
        18: .line 191
            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.JsseSslStreamSourceConduit this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   19     0      this  Lorg/xnio/ssl/JsseSslStreamSourceConduit;
            0   19     1      time  J
            0   19     3  timeUnit  Ljava/util/concurrent/TimeUnit;
           12   19     4  duration  J
           13   19     6   awaited  J
      Exception table:
        from    to  target  type
           4     6       9  any
           7     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      
      timeUnit  
}
Signature: Lorg/xnio/conduits/AbstractStreamSourceConduit<Lorg/xnio/conduits/StreamSourceConduit;>;
SourceFile: "JsseSslStreamSourceConduit.java"