interface sun.security.ssl.SSLTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0600) ACC_INTERFACE, ACC_ABSTRACT
  this_class: sun.security.ssl.SSLTransport
  super_class: java.lang.Object
{
  public abstract java.lang.String getPeerHost();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getPeerPort();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLTransport this
         0: .line 60
            return
        end local 0 // sun.security.ssl.SSLTransport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLTransport;
    Exceptions:
      throws java.io.IOException

  public abstract boolean useDelegatedTask();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public static sun.security.ssl.Plaintext decode(sun.security.ssl.TransportContext, java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer[], int, int);
    descriptor: (Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=18, args_size=7
        start local 0 // sun.security.ssl.TransportContext context
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int srcsOffset
        start local 3 // int srcsLength
        start local 4 // java.nio.ByteBuffer[] dsts
        start local 5 // int dstsOffset
        start local 6 // int dstsLength
         0: .line 105
            aconst_null
            astore 7 /* plaintexts */
        start local 7 // sun.security.ssl.Plaintext[] plaintexts
         1: .line 108
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* srcs */
            iload 2 /* srcsOffset */
            iload 3 /* srcsLength */
            invokevirtual sun.security.ssl.InputRecord.decode:([Ljava/nio/ByteBuffer;II)[Lsun/security/ssl/Plaintext;
         2: .line 107
            astore 7 /* plaintexts */
         3: .line 109
            goto 21
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: java.lang.UnsupportedOperationException
         4: astore 8 /* unsoe */
        start local 8 // java.lang.UnsupportedOperationException unsoe
         5: .line 111
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.encodeV2NoCipher:()V
         6: .line 112
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 8
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 113
            ldc "may be talking to SSLv2"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         8: .line 116
      StackMap locals: java.lang.UnsupportedOperationException
      StackMap stack:
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            aload 8 /* unsoe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.lang.UnsupportedOperationException unsoe
         9: .line 117
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: javax.crypto.BadPaddingException
            astore 8 /* bpe */
        start local 8 // javax.crypto.BadPaddingException bpe
        10: .line 124
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 12
        11: .line 125
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            goto 13
        12: .line 126
      StackMap locals: javax.crypto.BadPaddingException
      StackMap stack:
            getstatic sun.security.ssl.Alert.BAD_RECORD_MAC:Lsun/security/ssl/Alert;
        13: .line 124
      StackMap locals:
      StackMap stack: sun.security.ssl.Alert
            astore 9 /* alert */
        start local 9 // sun.security.ssl.Alert alert
        14: .line 127
            aload 0 /* context */
            aload 9 /* alert */
            aload 8 /* bpe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 9 // sun.security.ssl.Alert alert
        end local 8 // javax.crypto.BadPaddingException bpe
        15: .line 128
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[]
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 8 /* she */
        start local 8 // javax.net.ssl.SSLHandshakeException she
        16: .line 130
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            aload 8 /* she */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // javax.net.ssl.SSLHandshakeException she
        17: .line 131
      StackMap locals:
      StackMap stack: java.io.EOFException
            astore 8 /* eofe */
        start local 8 // java.io.EOFException eofe
        18: .line 133
            aload 8 /* eofe */
            athrow
        end local 8 // java.io.EOFException eofe
        19: .line 134
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        20: .line 135
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            aload 8 /* ioe */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 8 // java.io.IOException ioe
        21: .line 138
      StackMap locals:
      StackMap stack:
            aload 7 /* plaintexts */
            ifnull 22
            aload 7 /* plaintexts */
            arraylength
            ifne 23
        22: .line 140
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
        23: .line 143
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            astore 8 /* finalPlaintext */
        start local 8 // sun.security.ssl.Plaintext finalPlaintext
        24: .line 144
            aload 7 /* plaintexts */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 62
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext top int int sun.security.ssl.Plaintext[]
      StackMap stack:
        25: aload 12
            iload 10
            aaload
            astore 9 /* plainText */
        start local 9 // sun.security.ssl.Plaintext plainText
        26: .line 146
            aload 9 /* plainText */
            ifnull 30
        27: .line 147
            aload 9 /* plainText */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpeq 30
        28: .line 148
            aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpeq 30
        29: .line 149
            aload 0 /* context */
            aload 9 /* plainText */
            invokevirtual sun.security.ssl.TransportContext.dispatch:(Lsun/security/ssl/Plaintext;)V
        30: .line 152
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext sun.security.ssl.Plaintext int int sun.security.ssl.Plaintext[]
      StackMap stack:
            aload 9 /* plainText */
            ifnonnull 33
        31: .line 153
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            astore 9 /* plainText */
        32: .line 154
            goto 60
      StackMap locals:
      StackMap stack:
        33: aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
        34: .line 155
            getstatic sun.security.ssl.ContentType.APPLICATION_DATA:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 60
        35: .line 160
            aload 0 /* context */
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 41
        36: .line 161
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 38
            ldc "ssl,verbose"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 38
        37: .line 162
            ldc "unexpected application data before handshake completion"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        38: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
        39: .line 167
            ldc "Receiving application data before handshake complete"
        40: .line 166
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        41: .line 171
      StackMap locals:
      StackMap stack:
            aload 4 /* dsts */
            ifnull 60
            iload 6 /* dstsLength */
            ifle 60
        42: .line 172
            aload 9 /* plainText */
            getfield sun.security.ssl.Plaintext.fragment:Ljava/nio/ByteBuffer;
            astore 13 /* fragment */
        start local 13 // java.nio.ByteBuffer fragment
        43: .line 173
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 14 /* remains */
        start local 14 // int remains
        44: .line 176
            iload 5 /* dstsOffset */
            iload 6 /* dstsLength */
            iadd
            istore 15 /* limit */
        start local 15 // int limit
        45: .line 177
            iload 5 /* dstsOffset */
            istore 16 /* i */
        start local 16 // int i
        46: .line 178
            goto 54
        47: .line 180
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext sun.security.ssl.Plaintext int int sun.security.ssl.Plaintext[] java.nio.ByteBuffer int int int
      StackMap stack:
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iload 14 /* remains */
            invokestatic java.lang.Math.min:(II)I
            istore 17 /* amount */
        start local 17 // int amount
        48: .line 181
            aload 13 /* fragment */
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 17 /* amount */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        49: .line 182
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            aload 13 /* fragment */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        50: .line 183
            iload 14 /* remains */
            iload 17 /* amount */
            isub
            istore 14 /* remains */
        51: .line 185
            aload 4 /* dsts */
            iload 16 /* i */
            aaload
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 53
        52: .line 186
            iinc 5 /* dstsOffset */ 1
        end local 17 // int amount
        53: .line 178
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        54: iload 16 /* i */
            iload 15 /* limit */
            if_icmpge 56
            iload 14 /* remains */
        55: .line 177
            ifgt 47
        end local 16 // int i
        56: .line 190
      StackMap locals:
      StackMap stack:
            iload 14 /* remains */
            ifle 60
        57: .line 191
            aload 0 /* context */
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
        58: .line 192
            ldc "no sufficient room in the destination buffers"
        59: .line 191
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        end local 15 // int limit
        end local 14 // int remains
        end local 13 // java.nio.ByteBuffer fragment
        60: .line 197
      StackMap locals:
      StackMap stack:
            aload 9 /* plainText */
            astore 8 /* finalPlaintext */
        end local 9 // sun.security.ssl.Plaintext plainText
        61: .line 144
            iinc 10 1
      StackMap locals: sun.security.ssl.TransportContext java.nio.ByteBuffer[] int int java.nio.ByteBuffer[] int int sun.security.ssl.Plaintext[] sun.security.ssl.Plaintext top int int sun.security.ssl.Plaintext[]
      StackMap stack:
        62: iload 10
            iload 11
            if_icmplt 25
        63: .line 200
            aload 8 /* finalPlaintext */
            areturn
        end local 8 // sun.security.ssl.Plaintext finalPlaintext
        end local 7 // sun.security.ssl.Plaintext[] plaintexts
        end local 6 // int dstsLength
        end local 5 // int dstsOffset
        end local 4 // java.nio.ByteBuffer[] dsts
        end local 3 // int srcsLength
        end local 2 // int srcsOffset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.security.ssl.TransportContext context
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   64     0         context  Lsun/security/ssl/TransportContext;
            0   64     1            srcs  [Ljava/nio/ByteBuffer;
            0   64     2      srcsOffset  I
            0   64     3      srcsLength  I
            0   64     4            dsts  [Ljava/nio/ByteBuffer;
            0   64     5      dstsOffset  I
            0   64     6      dstsLength  I
            1   64     7      plaintexts  [Lsun/security/ssl/Plaintext;
            5    9     8           unsoe  Ljava/lang/UnsupportedOperationException;
           10   15     8             bpe  Ljavax/crypto/BadPaddingException;
           14   15     9           alert  Lsun/security/ssl/Alert;
           16   17     8             she  Ljavax/net/ssl/SSLHandshakeException;
           18   19     8            eofe  Ljava/io/EOFException;
           20   21     8             ioe  Ljava/io/IOException;
           24   64     8  finalPlaintext  Lsun/security/ssl/Plaintext;
           26   61     9       plainText  Lsun/security/ssl/Plaintext;
           43   60    13        fragment  Ljava/nio/ByteBuffer;
           44   60    14         remains  I
           45   60    15           limit  I
           46   56    16               i  I
           48   53    17          amount  I
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.UnsupportedOperationException
           1     3       9  Class javax.crypto.BadPaddingException
           1     3      15  Class javax.net.ssl.SSLHandshakeException
           1     3      17  Class java.io.EOFException
           1     3      19  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      context     
      srcs        
      srcsOffset  
      srcsLength  
      dsts        
      dstsOffset  
      dstsLength  
}
SourceFile: "SSLTransport.java"