public final class sun.security.ssl.SSLSocketImpl extends sun.security.ssl.BaseSSLSocketImpl implements sun.security.ssl.SSLTransport
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLSocketImpl
  super_class: sun.security.ssl.BaseSSLSocketImpl
{
  final sun.security.ssl.SSLContextImpl sslContext;
    descriptor: Lsun/security/ssl/SSLContextImpl;
    flags: (0x0010) ACC_FINAL

  final sun.security.ssl.TransportContext conContext;
    descriptor: Lsun/security/ssl/TransportContext;
    flags: (0x0010) ACC_FINAL

  private final sun.security.ssl.SSLSocketImpl$AppInputStream appInput;
    descriptor: Lsun/security/ssl/SSLSocketImpl$AppInputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.security.ssl.SSLSocketImpl$AppOutputStream appOutput;
    descriptor: Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String peerHost;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private final java.util.concurrent.locks.ReentrantLock socketLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.ReentrantLock handshakeLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final boolean trustNameService;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 99
            ldc "jdk.tls.trustNameService"
            iconst_0
            invokestatic sun.security.ssl.Utilities.getBooleanProperty:(Ljava/lang/String;Z)Z
         1: .line 98
            putstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
         2: .line 99
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.ssl.SSLContextImpl);
    descriptor: (Lsun/security/ssl/SSLContextImpl;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
         0: .line 108
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 109
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 110
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 2 /* handshakeHash */
        start local 2 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 111
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 112
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 2 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 113
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 2 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 111
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 114
            return
        end local 2 // sun.security.ssl.HandshakeHash handshakeHash
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   14     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            9   14     2  handshakeHash  Lsun/security/ssl/HandshakeHash;
    MethodParameters:
            Name  Flags
      sslContext  

  void <init>(sun.security.ssl.SSLContextImpl, sun.security.ssl.SSLConfiguration);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLConfiguration;)V
    flags: (0x0000) 
    Code:
      stack=10, locals=4, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // sun.security.ssl.SSLConfiguration sslConfig
         0: .line 122
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 123
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 124
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 3 /* handshakeHash */
        start local 3 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 125
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
            aload 2 /* sslConfig */
        10: .line 126
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 3 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 127
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 3 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/SSLConfiguration;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;)V
        12: .line 125
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 128
            return
        end local 3 // sun.security.ssl.HandshakeHash handshakeHash
        end local 2 // sun.security.ssl.SSLConfiguration sslConfig
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   14     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   14     2      sslConfig  Lsun/security/ssl/SSLConfiguration;
            9   14     3  handshakeHash  Lsun/security/ssl/HandshakeHash;
    MethodParameters:
            Name  Flags
      sslContext  
      sslConfig   

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=6, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.lang.String peerHost
        start local 3 // int peerPort
         0: .line 139
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 140
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 141
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 4 /* handshakeHash */
        start local 4 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 142
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 143
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 144
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 142
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 145
            aload 0 /* this */
            aload 2 /* peerHost */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        14: .line 147
            aload 2 /* peerHost */
            ifnull 15
            new java.net.InetSocketAddress
            dup
            aload 2 /* peerHost */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 16
        15: .line 148
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int sun.security.ssl.HandshakeHash
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        16: .line 146
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 5 /* socketAddress */
        start local 5 // java.net.SocketAddress socketAddress
        17: .line 149
            aload 0 /* this */
            aload 5 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        18: .line 150
            return
        end local 5 // java.net.SocketAddress socketAddress
        end local 4 // sun.security.ssl.HandshakeHash handshakeHash
        end local 3 // int peerPort
        end local 2 // java.lang.String peerHost
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   19     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   19     2       peerHost  Ljava/lang/String;
            0   19     3       peerPort  I
            9   19     4  handshakeHash  Lsun/security/ssl/HandshakeHash;
           17   19     5  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
            Name  Flags
      sslContext  
      peerHost    
      peerPort    

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=6, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.InetAddress address
        start local 3 // int peerPort
         0: .line 162
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 163
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 164
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 4 /* handshakeHash */
        start local 4 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 165
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 166
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 167
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 4 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 165
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 169
            new java.net.InetSocketAddress
            dup
            aload 2 /* address */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 5 /* socketAddress */
        start local 5 // java.net.SocketAddress socketAddress
        14: .line 170
            aload 0 /* this */
            aload 5 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        15: .line 171
            return
        end local 5 // java.net.SocketAddress socketAddress
        end local 4 // sun.security.ssl.HandshakeHash handshakeHash
        end local 3 // int peerPort
        end local 2 // java.net.InetAddress address
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   16     2        address  Ljava/net/InetAddress;
            0   16     3       peerPort  I
            9   16     4  handshakeHash  Lsun/security/ssl/HandshakeHash;
           14   16     5  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      address     
      peerPort    

  void <init>(sun.security.ssl.SSLContextImpl, java.lang.String, int, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/lang/String;ILjava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=8, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.lang.String peerHost
        start local 3 // int peerPort
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 183
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 184
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 185
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 6 /* handshakeHash */
        start local 6 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 186
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 187
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 188
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 186
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 189
            aload 0 /* this */
            aload 2 /* peerHost */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        14: .line 191
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 4 /* localAddr */
            iload 5 /* localPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual sun.security.ssl.SSLSocketImpl.bind:(Ljava/net/SocketAddress;)V
        15: .line 193
            aload 2 /* peerHost */
            ifnull 16
            new java.net.InetSocketAddress
            dup
            aload 2 /* peerHost */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/lang/String;I)V
            goto 17
        16: .line 194
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.lang.String int java.net.InetAddress int sun.security.ssl.HandshakeHash
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aconst_null
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
        17: .line 192
      StackMap locals:
      StackMap stack: java.net.InetSocketAddress
            astore 7 /* socketAddress */
        start local 7 // java.net.SocketAddress socketAddress
        18: .line 195
            aload 0 /* this */
            aload 7 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        19: .line 196
            return
        end local 7 // java.net.SocketAddress socketAddress
        end local 6 // sun.security.ssl.HandshakeHash handshakeHash
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int peerPort
        end local 2 // java.lang.String peerHost
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   20     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   20     2       peerHost  Ljava/lang/String;
            0   20     3       peerPort  I
            0   20     4      localAddr  Ljava/net/InetAddress;
            0   20     5      localPort  I
            9   20     6  handshakeHash  Lsun/security/ssl/HandshakeHash;
           18   20     7  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException, java.net.UnknownHostException
    MethodParameters:
            Name  Flags
      sslContext  
      peerHost    
      peerPort    
      localAddr   
      localPort   

  void <init>(sun.security.ssl.SSLContextImpl, java.net.InetAddress, int, java.net.InetAddress, int);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/InetAddress;ILjava/net/InetAddress;I)V
    flags: (0x0000) 
    Code:
      stack=9, locals=8, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.InetAddress peerAddr
        start local 3 // int peerPort
        start local 4 // java.net.InetAddress localAddr
        start local 5 // int localPort
         0: .line 209
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:()V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 210
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
         8: .line 211
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 6 /* handshakeHash */
        start local 6 // sun.security.ssl.HandshakeHash handshakeHash
         9: .line 212
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        10: .line 213
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        11: .line 214
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        12: .line 212
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        13: .line 216
            aload 0 /* this */
            new java.net.InetSocketAddress
            dup
            aload 4 /* localAddr */
            iload 5 /* localPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual sun.security.ssl.SSLSocketImpl.bind:(Ljava/net/SocketAddress;)V
        14: .line 217
            new java.net.InetSocketAddress
            dup
            aload 2 /* peerAddr */
            iload 3 /* peerPort */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 7 /* socketAddress */
        start local 7 // java.net.SocketAddress socketAddress
        15: .line 218
            aload 0 /* this */
            aload 7 /* socketAddress */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
        16: .line 219
            return
        end local 7 // java.net.SocketAddress socketAddress
        end local 6 // sun.security.ssl.HandshakeHash handshakeHash
        end local 5 // int localPort
        end local 4 // java.net.InetAddress localAddr
        end local 3 // int peerPort
        end local 2 // java.net.InetAddress peerAddr
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   17     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   17     2       peerAddr  Ljava/net/InetAddress;
            0   17     3       peerPort  I
            0   17     4      localAddr  Ljava/net/InetAddress;
            0   17     5      localPort  I
            9   17     6  handshakeHash  Lsun/security/ssl/HandshakeHash;
           15   17     7  socketAddress  Ljava/net/SocketAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      peerAddr    
      peerPort    
      localAddr   
      localPort   

  void <init>(sun.security.ssl.SSLContextImpl, java.net.Socket, java.io.InputStream, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/Socket;Ljava/io/InputStream;Z)V
    flags: (0x0000) 
    Code:
      stack=9, locals=6, args_size=5
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.Socket sock
        start local 3 // java.io.InputStream consumed
        start local 4 // boolean autoClose
         0: .line 229
            aload 0 /* this */
            aload 2 /* sock */
            aload 3 /* consumed */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;Ljava/io/InputStream;)V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 231
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 9
         8: .line 232
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 235
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.io.InputStream int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        10: .line 236
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 5 /* handshakeHash */
        start local 5 // sun.security.ssl.HandshakeHash handshakeHash
        11: .line 237
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        12: .line 238
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 5 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        13: .line 239
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 5 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_0
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        14: .line 237
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        15: .line 240
            aload 0 /* this */
            iload 4 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        16: .line 241
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        17: .line 242
            return
        end local 5 // sun.security.ssl.HandshakeHash handshakeHash
        end local 4 // boolean autoClose
        end local 3 // java.io.InputStream consumed
        end local 2 // java.net.Socket sock
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   18     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   18     2           sock  Ljava/net/Socket;
            0   18     3       consumed  Ljava/io/InputStream;
            0   18     4      autoClose  Z
           11   18     5  handshakeHash  Lsun/security/ssl/HandshakeHash;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      sock        
      consumed    
      autoClose   

  void <init>(sun.security.ssl.SSLContextImpl, java.net.Socket, java.lang.String, int, boolean);
    descriptor: (Lsun/security/ssl/SSLContextImpl;Ljava/net/Socket;Ljava/lang/String;IZ)V
    flags: (0x0000) 
    Code:
      stack=9, locals=7, args_size=6
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // sun.security.ssl.SSLContextImpl sslContext
        start local 2 // java.net.Socket sock
        start local 3 // java.lang.String peerHost
        start local 4 // int port
        start local 5 // boolean autoClose
         0: .line 261
            aload 0 /* this */
            aload 2 /* sock */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.<init>:(Ljava/net/Socket;)V
         1: .line 81
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppInputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppInputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
         2: .line 82
            aload 0 /* this */
            new sun.security.ssl.SSLSocketImpl$AppOutputStream
            dup
            aload 0 /* this */
            invokespecial sun.security.ssl.SSLSocketImpl$AppOutputStream.<init>:(Lsun/security/ssl/SSLSocketImpl;)V
            putfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
         3: .line 86
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
         4: .line 87
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
         5: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
         6: .line 90
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
         7: .line 263
            aload 2 /* sock */
            invokevirtual java.net.Socket.isConnected:()Z
            ifne 9
         8: .line 264
            new java.net.SocketException
            dup
            ldc "Underlying socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 267
      StackMap locals: sun.security.ssl.SSLSocketImpl sun.security.ssl.SSLContextImpl java.net.Socket java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* sslContext */
            putfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
        10: .line 268
            new sun.security.ssl.HandshakeHash
            dup
            invokespecial sun.security.ssl.HandshakeHash.<init>:()V
            astore 6 /* handshakeHash */
        start local 6 // sun.security.ssl.HandshakeHash handshakeHash
        11: .line 269
            aload 0 /* this */
            new sun.security.ssl.TransportContext
            dup
            aload 1 /* sslContext */
            aload 0 /* this */
        12: .line 270
            new sun.security.ssl.SSLSocketInputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketInputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
        13: .line 271
            new sun.security.ssl.SSLSocketOutputRecord
            dup
            aload 6 /* handshakeHash */
            invokespecial sun.security.ssl.SSLSocketOutputRecord.<init>:(Lsun/security/ssl/HandshakeHash;)V
            iconst_1
            invokespecial sun.security.ssl.TransportContext.<init>:(Lsun/security/ssl/SSLContextImpl;Lsun/security/ssl/SSLTransport;Lsun/security/ssl/InputRecord;Lsun/security/ssl/OutputRecord;Z)V
        14: .line 269
            putfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
        15: .line 272
            aload 0 /* this */
            aload 3 /* peerHost */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        16: .line 273
            aload 0 /* this */
            iload 5 /* autoClose */
            putfield sun.security.ssl.SSLSocketImpl.autoClose:Z
        17: .line 274
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
        18: .line 275
            return
        end local 6 // sun.security.ssl.HandshakeHash handshakeHash
        end local 5 // boolean autoClose
        end local 4 // int port
        end local 3 // java.lang.String peerHost
        end local 2 // java.net.Socket sock
        end local 1 // sun.security.ssl.SSLContextImpl sslContext
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   19     1     sslContext  Lsun/security/ssl/SSLContextImpl;
            0   19     2           sock  Ljava/net/Socket;
            0   19     3       peerHost  Ljava/lang/String;
            0   19     4           port  I
            0   19     5      autoClose  Z
           11   19     6  handshakeHash  Lsun/security/ssl/HandshakeHash;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
            Name  Flags
      sslContext  
      sock        
      peerHost    
      port        
      autoClose   

  public void connect(java.net.SocketAddress, int);
    descriptor: (Ljava/net/SocketAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.net.SocketAddress endpoint
        start local 2 // int timeout
         0: .line 281
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifeq 2
         1: .line 282
            new java.net.SocketException
            dup
            ldc "Already connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 285
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            instanceof java.net.InetSocketAddress
            ifne 6
         3: .line 286
            new java.net.SocketException
            dup
         4: .line 287
            ldc "Cannot handle non-Inet socket addresses."
         5: .line 286
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            iload 2 /* timeout */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.connect:(Ljava/net/SocketAddress;I)V
         7: .line 291
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.doneConnect:()V
         8: .line 292
            return
        end local 2 // int timeout
        end local 1 // java.net.SocketAddress endpoint
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    9     1  endpoint  Ljava/net/SocketAddress;
            0    9     2   timeout  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      endpoint  
      timeout   

  public java.lang.String[] getSupportedCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 296
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedCipherSuites:()Ljava/util/List;
            invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public java.lang.String[] getEnabledCipherSuites();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 301
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 304
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
         2: .line 303
            invokestatic sun.security.ssl.CipherSuite.namesOf:(Ljava/util/List;)[Ljava/lang/String;
            astore 2
         3: .line 306
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 303
            aload 2
            areturn
         5: .line 305
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 306
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 307
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     3       5  any

  public void setEnabledCipherSuites(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.String[] suites
         0: .line 312
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 314
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 315
            aload 1 /* suites */
            invokestatic sun.security.ssl.CipherSuite.validValuesOf:([Ljava/lang/String;)Ljava/util/List;
         3: .line 314
            putfield sun.security.ssl.SSLConfiguration.enabledCipherSuites:Ljava/util/List;
         4: .line 316
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 317
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 318
            aload 2
            athrow
         8: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 319
            return
        end local 1 // java.lang.String[] suites
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lsun/security/ssl/SSLSocketImpl;
            0   10     1  suites  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       5  any
    MethodParameters:
        Name  Flags
      suites  

  public java.lang.String[] getSupportedProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 324
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getSupportedProtocolVersions:()Ljava/util/List;
         1: .line 323
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;

  public java.lang.String[] getEnabledProtocols();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 329
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 332
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         2: .line 331
            invokestatic sun.security.ssl.ProtocolVersion.toStringArray:(Ljava/util/List;)[Ljava/lang/String;
            astore 2
         3: .line 334
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 331
            aload 2
            areturn
         5: .line 333
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 334
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 335
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     3       5  any

  public void setEnabledProtocols(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.String[] protocols
         0: .line 340
            aload 1 /* protocols */
            ifnonnull 2
         1: .line 341
            new java.lang.IllegalArgumentException
            dup
            ldc "Protocols cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 346
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         4: .line 347
            aload 1 /* protocols */
            invokestatic sun.security.ssl.ProtocolVersion.namesOf:([Ljava/lang/String;)Ljava/util/List;
         5: .line 346
            putfield sun.security.ssl.SSLConfiguration.enabledProtocols:Ljava/util/List;
         6: .line 348
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 349
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 350
            aload 2
            athrow
        10: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 351
            return
        end local 1 // java.lang.String[] protocols
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   12     1  protocols  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     7       7  any
    MethodParameters:
           Name  Flags
      protocols  

  public javax.net.ssl.SSLSession getSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 357
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.ensureNegotiated:(Z)V
         1: .line 358
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         3: .line 359
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 5
            ldc "handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 360
            ldc "handshake failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ioe */
            aastore
            invokestatic sun.security.ssl.SSLLogger.severe:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 363
      StackMap locals: java.io.IOException
      StackMap stack:
            new sun.security.ssl.SSLSessionImpl
            dup
            invokespecial sun.security.ssl.SSLSessionImpl.<init>:()V
            areturn
        end local 1 // java.io.IOException ioe
         6: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
            3    6     1   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException

  public javax.net.ssl.SSLSession getHandshakeSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 371
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 373
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 3
         2: .line 374
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.handshakeSession:Lsun/security/ssl/SSLSessionImpl;
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLSessionImpl
         4: astore 2
         5: .line 376
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 373
            aload 2
            areturn
         7: .line 375
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         8: .line 376
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 377
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     5       7  any

  public void addHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener);
    descriptor: (Ljavax/net/ssl/HandshakeCompletedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // javax.net.ssl.HandshakeCompletedListener listener
         0: .line 383
            aload 1 /* listener */
            ifnonnull 2
         1: .line 384
            new java.lang.IllegalArgumentException
            dup
            ldc "listener is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 389
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* listener */
            invokevirtual sun.security.ssl.SSLConfiguration.addHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V
         4: .line 390
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 391
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 392
            aload 2
            athrow
         8: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 393
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lsun/security/ssl/SSLSocketImpl;
            0   10     1  listener  Ljavax/net/ssl/HandshakeCompletedListener;
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
          Name  Flags
      listener  

  public void removeHandshakeCompletedListener(javax.net.ssl.HandshakeCompletedListener);
    descriptor: (Ljavax/net/ssl/HandshakeCompletedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // javax.net.ssl.HandshakeCompletedListener listener
         0: .line 398
            aload 1 /* listener */
            ifnonnull 2
         1: .line 399
            new java.lang.IllegalArgumentException
            dup
            ldc "listener is null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 404
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* listener */
            invokevirtual sun.security.ssl.SSLConfiguration.removeHandshakeCompletedListener:(Ljavax/net/ssl/HandshakeCompletedListener;)V
         4: .line 405
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 406
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 407
            aload 2
            athrow
         8: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 408
            return
        end local 1 // javax.net.ssl.HandshakeCompletedListener listener
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lsun/security/ssl/SSLSocketImpl;
            0   10     1  listener  Ljavax/net/ssl/HandshakeCompletedListener;
      Exception table:
        from    to  target  type
           3     5       5  any
    MethodParameters:
          Name  Flags
      listener  

  public void startHandshake();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 412
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
         1: .line 413
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void startHandshake(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean resumable
         0: .line 416
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isConnected:Z
            ifne 2
         1: .line 417
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 420
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 4
         3: .line 421
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 5
         4: .line 422
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket has been closed or broken"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         6: .line 428
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 8
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 8
         7: .line 429
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 9
         8: .line 430
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket has been closed or broken"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.kickstart:()V
        10: .line 440
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 30
        11: .line 441
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.readHandshakeRecord:()I
            pop
        12: .line 443
            goto 30
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
        13: astore 2 /* iioe */
        start local 2 // java.io.InterruptedIOException iioe
        14: .line 444
            iload 1 /* resumable */
            ifeq 17
        15: .line 445
            aload 0 /* this */
            aload 2 /* iioe */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
        16: .line 446
            goto 30
        17: .line 447
      StackMap locals: java.io.InterruptedIOException
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        18: .line 448
            ldc "Couldn't kickstart handshaking"
            aload 2 /* iioe */
        19: .line 447
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 2 // java.io.InterruptedIOException iioe
        20: .line 450
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: java.io.IOException
            astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
        21: .line 451
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
        22: .line 452
            ldc "Couldn't kickstart handshaking"
            aload 2 /* ioe */
        23: .line 451
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 2 // java.io.IOException ioe
        24: .line 453
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* oe */
        start local 2 // java.lang.Exception oe
        25: .line 454
            aload 0 /* this */
            aload 2 /* oe */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
        end local 2 // java.lang.Exception oe
        26: .line 456
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 3
        28: .line 457
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        29: .line 458
            aload 3
            athrow
        30: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        31: .line 459
            return
        end local 1 // boolean resumable
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   32     1  resumable  Z
           14   20     2       iioe  Ljava/io/InterruptedIOException;
           21   24     2        ioe  Ljava/io/IOException;
           25   26     2         oe  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    12      13  Class java.io.InterruptedIOException
           9    12      20  Class java.io.IOException
           9    12      24  Class java.lang.Exception
           6    27      27  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      resumable  

  public void setUseClientMode(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean mode
         0: .line 463
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 465
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            iload 1 /* mode */
            invokevirtual sun.security.ssl.TransportContext.setUseClientMode:(Z)V
         2: .line 466
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 467
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 468
            aload 2
            athrow
         6: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 469
            return
        end local 1 // boolean mode
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    8     1  mode  Z
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      mode  

  public boolean getUseClientMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 473
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 475
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
            istore 2
         2: .line 477
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 475
            iload 2
            ireturn
         4: .line 476
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 477
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 478
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void setNeedClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean need
         0: .line 483
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 485
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 486
            iload 1 /* need */
            ifeq 3
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
            goto 4
         3: .line 487
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         4: .line 485
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         5: .line 488
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 489
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 490
            aload 2
            athrow
         9: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 491
            return
        end local 1 // boolean need
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   11     1  need  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
      Name  Flags
      need  

  public boolean getNeedClientAuth();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 495
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 497
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         2: .line 498
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUIRED:Lsun/security/ssl/ClientAuthType;
         3: .line 497
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 500
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 497
            iload 2
            ireturn
         8: .line 499
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 500
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 501
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     6       8  any

  public void setWantClientAuth(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean want
         0: .line 506
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 508
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         2: .line 509
            iload 1 /* want */
            ifeq 3
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
            goto 4
         3: .line 510
      StackMap locals:
      StackMap stack: sun.security.ssl.SSLConfiguration
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_NONE:Lsun/security/ssl/ClientAuthType;
         4: .line 508
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: sun.security.ssl.SSLConfiguration sun.security.ssl.ClientAuthType
            putfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         5: .line 511
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 512
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 513
            aload 2
            athrow
         9: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 514
            return
        end local 1 // boolean want
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   11     1  want  Z
      Exception table:
        from    to  target  type
           1     6       6  any
    MethodParameters:
      Name  Flags
      want  

  public boolean getWantClientAuth();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 518
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 520
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.clientAuthType:Lsun/security/ssl/ClientAuthType;
         2: .line 521
            getstatic sun.security.ssl.ClientAuthType.CLIENT_AUTH_REQUESTED:Lsun/security/ssl/ClientAuthType;
         3: .line 520
            if_acmpne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2
         6: .line 523
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 520
            iload 2
            ireturn
         8: .line 522
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         9: .line 523
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 524
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     6       8  any

  public void setEnableSessionCreation(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean flag
         0: .line 529
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 531
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            iload 1 /* flag */
            putfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
         2: .line 532
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 533
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 534
            aload 2
            athrow
         6: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 535
            return
        end local 1 // boolean flag
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
            0    8     1  flag  Z
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      flag  

  public boolean getEnableSessionCreation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 539
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 541
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.enableSessionCreation:Z
            istore 2
         2: .line 543
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 541
            iload 2
            ireturn
         4: .line 542
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 543
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 544
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 549
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 556
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
            ifeq 2
         1: .line 557
            return
         2: .line 560
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 561
            ldc "duplex close of SSLSocket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isOutputShutdown:()Z
            ifne 6
         5: .line 567
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.duplexCloseOutput:()V
         6: .line 571
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 8
         7: .line 572
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.duplexCloseInput:()V
         8: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifne 18
         9: .line 577
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
        10: .line 579
            goto 18
      StackMap locals:
      StackMap stack: java.io.IOException
        11: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
        12: .line 581
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 14
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 14
        13: .line 582
            ldc "SSLSocket duplex close failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ioe */
            aastore
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 1 // java.io.IOException ioe
        14: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
            goto 19
        15: .line 584
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
        16: .line 585
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        17: .line 586
            aload 2
            athrow
        18: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        19: .line 587
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lsun/security/ssl/SSLSocketImpl;
           12   14     1   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    10      11  Class java.io.IOException
           4    14      15  any
    Exceptions:
      throws java.io.IOException

  private void duplexCloseOutput();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 611
            iconst_0
            istore 1 /* useUserCanceled */
        start local 1 // boolean useUserCanceled
         1: .line 612
            iconst_0
            istore 2 /* hasCloseReceipt */
        start local 2 // boolean hasCloseReceipt
         2: .line 613
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 8
         3: .line 614
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifne 6
         4: .line 615
            iconst_1
            istore 2 /* hasCloseReceipt */
         5: .line 616
            goto 13
         6: .line 618
      StackMap locals: int int
      StackMap stack:
            iconst_1
            istore 1 /* useUserCanceled */
         7: .line 620
            goto 13
      StackMap locals:
      StackMap stack:
         8: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 13
         9: .line 622
            iconst_1
            istore 1 /* useUserCanceled */
        10: .line 625
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
            astore 3 /* pv */
        start local 3 // sun.security.ssl.ProtocolVersion pv
        11: .line 626
            aload 3 /* pv */
            ifnull 12
            aload 3 /* pv */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifne 13
        12: .line 627
      StackMap locals: sun.security.ssl.ProtocolVersion
      StackMap stack:
            iconst_1
            istore 2 /* hasCloseReceipt */
        end local 3 // sun.security.ssl.ProtocolVersion pv
        13: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* useUserCanceled */
            invokevirtual sun.security.ssl.SSLSocketImpl.closeNotify:(Z)V
        14: .line 634
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 16
        15: .line 635
            aload 0 /* this */
            iload 2 /* hasCloseReceipt */
            invokevirtual sun.security.ssl.SSLSocketImpl.bruteForceCloseInput:(Z)V
        16: .line 637
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean hasCloseReceipt
        end local 1 // boolean useUserCanceled
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lsun/security/ssl/SSLSocketImpl;
            1   17     1  useUserCanceled  Z
            2   17     2  hasCloseReceipt  Z
           11   13     3               pv  Lsun/security/ssl/ProtocolVersion;
    Exceptions:
      throws java.io.IOException

  void closeNotify(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean useUserCanceled
         0: .line 642
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getSoLinger:()I
            istore 2 /* linger */
        start local 2 // int linger
         1: .line 643
            iload 2 /* linger */
            iflt 34
         2: .line 648
            invokestatic java.lang.Thread.interrupted:()Z
            istore 3 /* interrupted */
        start local 3 // boolean interrupted
         3: .line 650
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
            ifne 8
         4: .line 651
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
         5: .line 652
            iload 2 /* linger */
            i2l
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
         6: .line 651
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:(JLjava/util/concurrent/TimeUnit;)Z
         7: .line 652
            ifeq 15
         8: .line 654
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* useUserCanceled */
            invokevirtual sun.security.ssl.SSLSocketImpl.deliverClosedNotify:(Z)V
         9: .line 655
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 4
        11: .line 656
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        12: .line 657
            aload 4
            athrow
        13: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 658
            goto 31
        15: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 24
        16: .line 663
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifeq 20
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 20
        17: .line 664
            new javax.net.ssl.SSLException
            dup
        18: .line 665
            ldc "SO_LINGER timeout, close_notify message cannot be sent."
        19: .line 664
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
        21: .line 669
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 24
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 24
        22: .line 671
            ldc "SSLSocket output duplex close failed: SO_LINGER timeout, close_notify message cannot be sent."
            iconst_0
            anewarray java.lang.Object
        23: .line 670
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        24: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.conSession:Lsun/security/ssl/SSLSessionImpl;
            invokevirtual sun.security.ssl.SSLSessionImpl.invalidate:()V
        25: .line 690
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 31
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 31
        26: .line 692
            ldc "Invalidate the session: SO_LINGER timeout, close_notify message cannot be sent."
            iconst_0
            anewarray java.lang.Object
        27: .line 691
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        28: .line 696
            goto 31
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        29: pop
        30: .line 698
            iconst_1
            istore 3 /* interrupted */
        31: .line 702
      StackMap locals:
      StackMap stack:
            iload 3 /* interrupted */
            ifeq 41
        32: .line 703
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 3 // boolean interrupted
        33: .line 705
            goto 41
        34: .line 706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        35: .line 708
            aload 0 /* this */
            iload 1 /* useUserCanceled */
            invokevirtual sun.security.ssl.SSLSocketImpl.deliverClosedNotify:(Z)V
        36: .line 709
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: astore 3
        38: .line 710
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        39: .line 711
            aload 3
            athrow
        40: .line 710
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            getfield sun.security.ssl.OutputRecord.recordLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        41: .line 713
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int linger
        end local 1 // boolean useUserCanceled
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   42     0             this  Lsun/security/ssl/SSLSocketImpl;
            0   42     1  useUserCanceled  Z
            1   42     2           linger  I
            3   33     3      interrupted  Z
      Exception table:
        from    to  target  type
           8    10      10  any
           3    28      29  Class java.lang.InterruptedException
          35    37      37  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      useUserCanceled  

  private void deliverClosedNotify(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean useUserCanceled
         0: .line 719
            iload 1 /* useUserCanceled */
            ifeq 2
         1: .line 720
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.USER_CANCELED:Lsun/security/ssl/Alert;
            invokevirtual sun.security.ssl.TransportContext.warning:(Lsun/security/ssl/Alert;)V
         2: .line 724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.CLOSE_NOTIFY:Lsun/security/ssl/Alert;
            invokevirtual sun.security.ssl.TransportContext.warning:(Lsun/security/ssl/Alert;)V
         3: .line 725
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 726
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 7
         6: .line 727
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
         7: .line 730
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 10
         8: .line 731
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 9
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 10
         9: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
        10: .line 734
      StackMap locals:
      StackMap stack:
            aload 2
            athrow
        11: .line 726
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 13
        12: .line 727
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            invokevirtual sun.security.ssl.OutputRecord.close:()V
        13: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 16
        14: .line 731
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 15
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 16
        15: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
        16: .line 735
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean useUserCanceled
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Lsun/security/ssl/SSLSocketImpl;
            0   17     1  useUserCanceled  Z
      Exception table:
        from    to  target  type
           0     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      useUserCanceled  

  private void duplexCloseInput();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 744
            iconst_0
            istore 1 /* hasCloseReceipt */
        start local 1 // boolean hasCloseReceipt
         1: .line 745
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 4
         2: .line 746
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifne 4
         3: .line 747
            iconst_1
            istore 1 /* hasCloseReceipt */
         4: .line 750
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* hasCloseReceipt */
            invokevirtual sun.security.ssl.SSLSocketImpl.bruteForceCloseInput:(Z)V
         5: .line 751
            return
        end local 1 // boolean hasCloseReceipt
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lsun/security/ssl/SSLSocketImpl;
            1    6     1  hasCloseReceipt  Z
    Exceptions:
      throws java.io.IOException

  private void bruteForceCloseInput(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean hasCloseReceipt
         0: .line 761
            iload 1 /* hasCloseReceipt */
            ifeq 10
         1: .line 770
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdown:()V
         2: .line 771
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 772
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 6
         5: .line 773
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)V
         6: .line 775
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2
            athrow
         7: .line 772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 26
         8: .line 773
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)V
         9: .line 776
            goto 26
        10: .line 777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 23
        11: .line 778
            aconst_null
            astore 2
            aconst_null
            astore 3
        12: aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            pop
        13: .line 782
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.deplete:()V
        14: .line 778
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            ifnull 23
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
        15: .line 783
            invokevirtual sun.security.ssl.InputRecord.close:()V
            goto 23
      StackMap locals: sun.security.ssl.SSLSocketImpl int java.lang.Throwable java.lang.Throwable
      StackMap stack: java.lang.Throwable
        16: astore 2
        17: .line 778
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            ifnull 19
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
        18: .line 783
            invokevirtual sun.security.ssl.InputRecord.close:()V
      StackMap locals:
      StackMap stack:
        19: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 3
            aload 2
            ifnonnull 21
            aload 3
            astore 2
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 2
            aload 3
            if_acmpeq 22
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 2
            athrow
        23: .line 786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 24
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 26
      StackMap locals:
      StackMap stack:
        24: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isInputShutdown:()Z
            ifne 26
        25: .line 787
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownInput:()V
        26: .line 790
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean hasCloseReceipt
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   27     0             this  Lsun/security/ssl/SSLSocketImpl;
            0   27     1  hasCloseReceipt  Z
      Exception table:
        from    to  target  type
           1     3       3  any
          13    14      16  any
          12    20      20  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      hasCloseReceipt  

  public void shutdownInput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 796
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)V
         1: .line 797
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void shutdownInput(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean checkCloseNotify
         0: .line 803
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifeq 2
         1: .line 804
            return
         2: .line 807
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 808
            ldc "close inbound of SSLSocket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 814
      StackMap locals:
      StackMap stack:
            iload 1 /* checkCloseNotify */
            ifeq 9
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
            ifne 9
         5: .line 815
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 6
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 9
         6: .line 817
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
         7: .line 818
            ldc "closing inbound before receiving peer's close_notify"
         8: .line 817
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
         9: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeInbound:()V
        10: .line 822
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 11
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 13
      StackMap locals:
      StackMap stack:
        11: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isInputShutdown:()Z
            ifne 13
        12: .line 823
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownInput:()V
        13: .line 825
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean checkCloseNotify
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lsun/security/ssl/SSLSocketImpl;
            0   14     1  checkCloseNotify  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      checkCloseNotify  

  public boolean isInputShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 829
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 4
         1: .line 830
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 2
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isInputShutdown:()Z
            ifeq 4
         3: .line 829
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;

  public void shutdownOutput();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 837
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isOutputShutdown:()Z
            ifeq 2
         1: .line 838
            return
         2: .line 841
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 4
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 842
            ldc "close outbound of SSLSocket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 844
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.closeOutbound:()V
         5: .line 846
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 6
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 8
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifne 8
         7: .line 847
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.shutdownOutput:()V
         8: .line 849
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  public boolean isOutputShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 853
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 4
         1: .line 854
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 2
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.isOutputShutdown:()Z
            ifeq 4
         3: .line 853
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/ssl/SSLSocketImpl;

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 859
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 861
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 3
         2: .line 862
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isConnected:Z
            ifne 5
         4: .line 866
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 869
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 6
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifeq 7
         6: .line 870
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket input is already shutdown"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 873
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.appInput:Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            astore 2
         8: .line 875
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 873
            aload 2
            areturn
        10: .line 874
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
        11: .line 875
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        12: .line 876
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     8      10  any
    Exceptions:
      throws java.io.IOException

  private void ensureNegotiated(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean resumable
         0: .line 880
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 2
         1: .line 881
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 3
         2: .line 882
      StackMap locals:
      StackMap stack:
            return
         3: .line 885
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         4: .line 888
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifne 7
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 7
         5: .line 889
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 7
         6: .line 890
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifeq 9
         7: .line 896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 891
            return
         9: .line 894
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* resumable */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:(Z)V
        10: .line 895
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 2
        12: .line 896
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 897
            aload 2
            athrow
        14: .line 896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.handshakeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        15: .line 898
            return
        end local 1 // boolean resumable
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1  resumable  Z
      Exception table:
        from    to  target  type
           4     7      11  any
           9    11      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      resumable  

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1204
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1206
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifeq 3
         2: .line 1207
            new java.net.SocketException
            dup
            ldc "Socket is closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.isConnected:Z
            ifne 5
         4: .line 1211
            new java.net.SocketException
            dup
            ldc "Socket is not connected"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundDone:()Z
            ifne 6
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isOutputShutdown:()Z
            ifeq 7
         6: .line 1215
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket output is already shutdown"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.appOutput:Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
            astore 2
         8: .line 1220
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1218
            aload 2
            areturn
        10: .line 1219
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
        11: .line 1220
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        12: .line 1221
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     8      10  any
    Exceptions:
      throws java.io.IOException

  public javax.net.ssl.SSLParameters getSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1319
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1321
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            invokevirtual sun.security.ssl.SSLConfiguration.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
            astore 2
         2: .line 1323
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1321
            aload 2
            areturn
         4: .line 1322
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1323
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1324
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public void setSSLParameters(javax.net.ssl.SSLParameters);
    descriptor: (Ljavax/net/ssl/SSLParameters;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // javax.net.ssl.SSLParameters params
         0: .line 1329
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1331
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* params */
            invokevirtual sun.security.ssl.SSLConfiguration.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
         2: .line 1333
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
            ifeq 10
         3: .line 1334
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
         4: .line 1335
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.maximumPacketSize:I
         5: .line 1334
            invokevirtual sun.security.ssl.OutputRecord.changePacketSize:(I)V
         6: .line 1337
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 1338
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1339
            aload 2
            athrow
        10: .line 1338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 1340
            return
        end local 1 // javax.net.ssl.SSLParameters params
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lsun/security/ssl/SSLSocketImpl;
            0   12     1  params  Ljavax/net/ssl/SSLParameters;
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
        Name  Flags
      params  

  public java.lang.String getApplicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1344
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1346
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.applicationProtocol:Ljava/lang/String;
            astore 2
         2: .line 1348
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1346
            aload 2
            areturn
         4: .line 1347
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1348
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1349
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     2       4  any

  public java.lang.String getHandshakeApplicationProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1354
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1356
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 8
         2: .line 1357
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            getfield sun.security.ssl.HandshakeContext.applicationProtocol:Ljava/lang/String;
            astore 2
         3: .line 1360
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         4: .line 1357
            aload 2
            areturn
         5: .line 1359
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         6: .line 1360
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 1361
            aload 1
            athrow
         8: .line 1360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1363
            aconst_null
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     3       5  any

  public void setHandshakeApplicationProtocolSelector(java.util.function.BiFunction<javax.net.ssl.SSLSocket, java.util.List<java.lang.String>, java.lang.String>);
    descriptor: (Ljava/util/function/BiFunction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.util.function.BiFunction selector
         0: .line 1369
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1371
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            aload 1 /* selector */
            putfield sun.security.ssl.SSLConfiguration.socketAPSelector:Ljava/util/function/BiFunction;
         2: .line 1372
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1373
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         5: .line 1374
            aload 2
            athrow
         6: .line 1373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 1375
            return
        end local 1 // java.util.function.BiFunction selector
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lsun/security/ssl/SSLSocketImpl;
            0    8     1  selector  Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           1     3       3  any
    Signature: (Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      selector  

  public java.util.function.BiFunction<javax.net.ssl.SSLSocket, java.util.List<java.lang.String>, java.lang.String> getHandshakeApplicationProtocolSelector();
    descriptor: ()Ljava/util/function/BiFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1380
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1382
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.socketAPSelector:Ljava/util/function/BiFunction;
            astore 2
         2: .line 1384
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         3: .line 1382
            aload 2
            areturn
         4: .line 1383
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1
         5: .line 1384
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 1385
            aload 1
            athrow
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           1     2       4  any
    Signature: ()Ljava/util/function/BiFunction<Ljavax/net/ssl/SSLSocket;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;>;

  private int readHandshakeRecord();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1392
            goto 11
         1: .line 1394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLSocketImpl.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 1 /* plainText */
        start local 1 // sun.security.ssl.Plaintext plainText
         2: .line 1395
            aload 1 /* plainText */
            getfield sun.security.ssl.Plaintext.contentType:B
            getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
            getfield sun.security.ssl.ContentType.id:B
            if_icmpne 11
         3: .line 1396
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isNegotiated:Z
            ifeq 11
         4: .line 1397
            iconst_0
            ireturn
        end local 1 // sun.security.ssl.Plaintext plainText
         5: .line 1399
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLException
            astore 1 /* ssle */
        start local 1 // javax.net.ssl.SSLException ssle
         6: .line 1400
            aload 1 /* ssle */
            athrow
        end local 1 // javax.net.ssl.SSLException ssle
         7: .line 1401
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
            astore 1 /* iioe */
        start local 1 // java.io.InterruptedIOException iioe
         8: .line 1403
            aload 1 /* iioe */
            athrow
        end local 1 // java.io.InterruptedIOException iioe
         9: .line 1404
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
        10: .line 1405
            new javax.net.ssl.SSLException
            dup
            ldc "readHandshakeRecord"
            aload 1 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException ioe
        11: .line 1392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 1
        12: .line 1409
            iconst_m1
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/security/ssl/SSLSocketImpl;
            2    5     1  plainText  Lsun/security/ssl/Plaintext;
            6    7     1       ssle  Ljavax/net/ssl/SSLException;
            8    9     1       iioe  Ljava/io/InterruptedIOException;
           10   11     1        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4       5  Class javax.net.ssl.SSLException
           1     4       7  Class java.io.InterruptedIOException
           1     4       9  Class java.io.IOException
    Exceptions:
      throws java.io.IOException

  private java.nio.ByteBuffer readApplicationRecord(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 1425
            goto 31
         1: .line 1433
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
         2: .line 1434
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.bytesInCompletePacket:()I
            istore 2 /* inLen */
        start local 2 // int inLen
         3: .line 1435
            iload 2 /* inLen */
            ifge 6
         4: .line 1436
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLSocketImpl.handleEOF:(Ljava/io/EOFException;)Lsun/security/ssl/Plaintext;
            pop
         5: .line 1439
            aconst_null
            areturn
         6: .line 1443
      StackMap locals: int
      StackMap stack:
            iload 2 /* inLen */
            ldc 33093
            if_icmple 10
         7: .line 1444
            new javax.net.ssl.SSLProtocolException
            dup
         8: .line 1445
            new java.lang.StringBuilder
            dup
            ldc "Illegal packet size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* inLen */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 1444
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1448
      StackMap locals:
      StackMap stack:
            iload 2 /* inLen */
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            if_icmple 12
        11: .line 1449
            iload 2 /* inLen */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 1 /* buffer */
        12: .line 1454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        13: .line 1456
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual sun.security.ssl.SSLSocketImpl.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 3 /* plainText */
        start local 3 // sun.security.ssl.Plaintext plainText
        14: .line 1457
            goto 18
        end local 3 // sun.security.ssl.Plaintext plainText
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 4
        16: .line 1458
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        17: .line 1459
            aload 4
            athrow
        start local 3 // sun.security.ssl.Plaintext plainText
        18: .line 1458
      StackMap locals: sun.security.ssl.Plaintext
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        19: .line 1460
            aload 3 /* 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_icmpne 31
        20: .line 1461
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifle 31
        21: .line 1462
            aload 1 /* buffer */
        22: areturn
        end local 3 // sun.security.ssl.Plaintext plainText
        23: .line 1464
      StackMap locals: sun.security.ssl.SSLSocketImpl java.nio.ByteBuffer int
      StackMap stack: javax.net.ssl.SSLException
            astore 3 /* ssle */
        start local 3 // javax.net.ssl.SSLException ssle
        24: .line 1465
            aload 3 /* ssle */
            athrow
        end local 3 // javax.net.ssl.SSLException ssle
        25: .line 1466
      StackMap locals:
      StackMap stack: java.io.InterruptedIOException
            astore 3 /* iioe */
        start local 3 // java.io.InterruptedIOException iioe
        26: .line 1468
            aload 3 /* iioe */
            athrow
        end local 3 // java.io.InterruptedIOException iioe
        27: .line 1469
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        28: .line 1470
            aload 3 /* ioe */
            instanceof javax.net.ssl.SSLException
            ifne 30
        29: .line 1471
            new javax.net.ssl.SSLException
            dup
            ldc "readApplicationRecord"
            aload 3 /* ioe */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        30: .line 1473
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 3 /* ioe */
            athrow
        end local 3 // java.io.IOException ioe
        end local 2 // int inLen
        31: .line 1425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 1
        32: .line 1481
            aconst_null
            areturn
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   33     0       this  Lsun/security/ssl/SSLSocketImpl;
            0   33     1     buffer  Ljava/nio/ByteBuffer;
            3   31     2      inLen  I
           14   15     3  plainText  Lsun/security/ssl/Plaintext;
           18   23     3  plainText  Lsun/security/ssl/Plaintext;
           24   25     3       ssle  Ljavax/net/ssl/SSLException;
           26   27     3       iioe  Ljava/io/InterruptedIOException;
           28   31     3        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          13    15      15  any
          12    22      23  Class javax.net.ssl.SSLException
          12    22      25  Class java.io.InterruptedIOException
          12    22      27  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      buffer  

  private sun.security.ssl.Plaintext decode(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.nio.ByteBuffer destination
         0: .line 1487
            aload 1 /* destination */
            ifnonnull 5
         1: .line 1488
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
         2: .line 1489
            aconst_null
            iconst_0
            iconst_0
            aconst_null
            iconst_0
            iconst_0
         3: .line 1488
            invokestatic sun.security.ssl.SSLTransport.decode:(Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 2 /* plainText */
        start local 2 // sun.security.ssl.Plaintext plainText
         4: .line 1490
            goto 11
        end local 2 // sun.security.ssl.Plaintext plainText
         5: .line 1491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
         6: .line 1492
            aconst_null
            iconst_0
            iconst_0
            iconst_1
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
            aload 1 /* destination */
            aastore
            iconst_0
            iconst_1
         7: .line 1491
            invokestatic sun.security.ssl.SSLTransport.decode:(Lsun/security/ssl/TransportContext;[Ljava/nio/ByteBuffer;II[Ljava/nio/ByteBuffer;II)Lsun/security/ssl/Plaintext;
            astore 2 /* plainText */
        start local 2 // sun.security.ssl.Plaintext plainText
         8: .line 1494
            goto 11
        end local 2 // sun.security.ssl.Plaintext plainText
      StackMap locals:
      StackMap stack: java.io.EOFException
         9: astore 3 /* eofe */
        start local 3 // java.io.EOFException eofe
        10: .line 1496
            aload 0 /* this */
            aload 3 /* eofe */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleEOF:(Ljava/io/EOFException;)Lsun/security/ssl/Plaintext;
            astore 2 /* plainText */
        end local 3 // java.io.EOFException eofe
        start local 2 // sun.security.ssl.Plaintext plainText
        11: .line 1500
      StackMap locals: sun.security.ssl.Plaintext
      StackMap stack:
            aload 2 /* plainText */
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            if_acmpeq 15
        12: .line 1501
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            invokevirtual sun.security.ssl.InputRecord.seqNumIsHuge:()Z
            ifne 14
        13: .line 1502
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            getfield sun.security.ssl.InputRecord.readCipher:Lsun/security/ssl/SSLCipher$SSLReadCipher;
            invokevirtual sun.security.ssl.SSLCipher$SSLReadCipher.atKeyLimit:()Z
            ifeq 15
        14: .line 1503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.tryKeyUpdate:()V
        15: .line 1506
      StackMap locals:
      StackMap stack:
            aload 2 /* plainText */
            areturn
        end local 2 // sun.security.ssl.Plaintext plainText
        end local 1 // java.nio.ByteBuffer destination
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1  destination  Ljava/nio/ByteBuffer;
            4    5     2    plainText  Lsun/security/ssl/Plaintext;
            8    9     2    plainText  Lsun/security/ssl/Plaintext;
           11   16     2    plainText  Lsun/security/ssl/Plaintext;
           10   11     3         eofe  Ljava/io/EOFException;
      Exception table:
        from    to  target  type
           0     8       9  Class java.io.EOFException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      destination  

  private void tryKeyUpdate();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1524
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 7
         1: .line 1525
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 7
         2: .line 1526
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 7
         3: .line 1527
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 7
         4: .line 1528
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 1529
            ldc "trigger key update"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1531
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.startHandshake:()V
         7: .line 1533
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  private void tryNewSessionTicket();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1540
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
            ifne 11
         1: .line 1541
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS13PlusSpec:()Z
            ifeq 11
         2: .line 1542
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnonnull 11
         3: .line 1543
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
            ifne 11
         4: .line 1544
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 11
         5: .line 1545
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isBroken:Z
            ifne 11
         6: .line 1546
            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 1547
            ldc "trigger new session ticket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         8: .line 1549
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.NewSessionTicket.t13PosthandshakeProducer:Lsun/security/ssl/SSLProducer;
         9: .line 1550
            new sun.security.ssl.PostHandshakeContext
            dup
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokespecial sun.security.ssl.PostHandshakeContext.<init>:(Lsun/security/ssl/TransportContext;)V
        10: .line 1549
            invokeinterface sun.security.ssl.SSLProducer.produce:(Lsun/security/ssl/ConnectionContext;)[B
            pop
        11: .line 1552
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lsun/security/ssl/SSLSocketImpl;
    Exceptions:
      throws java.io.IOException

  void doneConnect();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1560
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1565
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
            ifnull 2
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 8
         2: .line 1567
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLSocketImpl.trustNameService:Z
            ifeq 4
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
            ifeq 4
         3: .line 1566
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 1 /* useNameService */
        start local 1 // boolean useNameService
         6: .line 1568
            aload 0 /* this */
            iload 1 /* useNameService */
            invokevirtual sun.security.ssl.SSLSocketImpl.useImplicitHost:(Z)V
        end local 1 // boolean useNameService
         7: .line 1569
            goto 12
         8: .line 1570
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         9: .line 1572
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        10: .line 1571
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        11: .line 1570
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
        12: .line 1575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getInputStream:()Ljava/io/InputStream;
            astore 1 /* sockInput */
        start local 1 // java.io.InputStream sockInput
        13: .line 1576
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 1 /* sockInput */
            invokevirtual sun.security.ssl.InputRecord.setReceiverStream:(Ljava/io/InputStream;)V
        14: .line 1578
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getOutputStream:()Ljava/io/OutputStream;
            astore 2 /* sockOutput */
        start local 2 // java.io.OutputStream sockOutput
        15: .line 1579
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
            aload 2 /* sockOutput */
            invokevirtual sun.security.ssl.InputRecord.setDeliverStream:(Ljava/io/OutputStream;)V
        16: .line 1580
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
            aload 2 /* sockOutput */
            invokevirtual sun.security.ssl.OutputRecord.setDeliverStream:(Ljava/io/OutputStream;)V
        17: .line 1582
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.isConnected:Z
        end local 2 // java.io.OutputStream sockOutput
        end local 1 // java.io.InputStream sockInput
        18: .line 1583
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 3
        20: .line 1584
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        21: .line 1585
            aload 3
            athrow
        22: .line 1584
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 1586
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lsun/security/ssl/SSLSocketImpl;
            6    7     1  useNameService  Z
           13   18     1       sockInput  Ljava/io/InputStream;
           15   18     2      sockOutput  Ljava/io/OutputStream;
      Exception table:
        from    to  target  type
           1    19      19  any
    Exceptions:
      throws java.io.IOException

  private void useImplicitHost(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean useNameService
         0: .line 1595
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            astore 2 /* inetAddress */
        start local 2 // java.net.InetAddress inetAddress
         1: .line 1596
            aload 2 /* inetAddress */
            ifnonnull 3
         2: .line 1597
            return
         3: .line 1601
      StackMap locals: java.net.InetAddress
      StackMap stack:
            invokestatic jdk.internal.access.SharedSecrets.getJavaNetInetAddressAccess:()Ljdk/internal/access/JavaNetInetAddressAccess;
         4: .line 1600
            astore 3 /* jna */
        start local 3 // jdk.internal.access.JavaNetInetAddressAccess jna
         5: .line 1602
            aload 3 /* jna */
            aload 2 /* inetAddress */
            invokeinterface jdk.internal.access.JavaNetInetAddressAccess.getOriginalHostName:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 4 /* originalHostname */
        start local 4 // java.lang.String originalHostname
         6: .line 1603
            aload 4 /* originalHostname */
            ifnull 15
            aload 4 /* originalHostname */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 15
         7: .line 1605
            aload 0 /* this */
            aload 4 /* originalHostname */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
         8: .line 1606
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 14
         9: .line 1607
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.noSniExtension:Z
            ifne 14
        10: .line 1608
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
        11: .line 1610
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        12: .line 1609
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
        13: .line 1608
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
        14: .line 1613
      StackMap locals: jdk.internal.access.JavaNetInetAddressAccess java.lang.String
      StackMap stack:
            return
        15: .line 1617
      StackMap locals:
      StackMap stack:
            iload 1 /* useNameService */
            ifne 18
        16: .line 1619
            aload 0 /* this */
            aload 2 /* inetAddress */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        17: .line 1620
            goto 19
        18: .line 1622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getInetAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostName:()Ljava/lang/String;
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
        19: .line 1624
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String originalHostname
        end local 3 // jdk.internal.access.JavaNetInetAddressAccess jna
        end local 2 // java.net.InetAddress inetAddress
        end local 1 // boolean useNameService
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lsun/security/ssl/SSLSocketImpl;
            0   20     1    useNameService  Z
            1   20     2       inetAddress  Ljava/net/InetAddress;
            5   20     3               jna  Ljdk/internal/access/JavaNetInetAddressAccess;
            6   20     4  originalHostname  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      useNameService  

  public void setHost(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.String host
         0: .line 1632
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 1634
            aload 0 /* this */
            aload 1 /* host */
            putfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
         2: .line 1635
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
         3: .line 1637
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
            getfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
            aload 1 /* host */
         4: .line 1636
            invokestatic sun.security.ssl.Utilities.addToSNIServerNameList:(Ljava/util/List;Ljava/lang/String;)Ljava/util/List;
         5: .line 1635
            putfield sun.security.ssl.SSLConfiguration.serverNames:Ljava/util/List;
         6: .line 1638
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 1639
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         9: .line 1640
            aload 2
            athrow
        10: .line 1639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.socketLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 1641
            return
        end local 1 // java.lang.String host
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   12     1  host  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
      Name  Flags
      host  

  private void handleException(java.lang.Exception);
    descriptor: (Ljava/lang/Exception;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.lang.Exception cause
         0: .line 1653
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 2
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1654
            ldc "handling exception"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* cause */
            aastore
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 1658
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof java.io.InterruptedIOException
            ifeq 4
         3: .line 1659
            aload 1 /* cause */
            checkcast java.io.IOException
            athrow
         4: .line 1663
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof javax.net.ssl.SSLException
            istore 2 /* isSSLException */
        start local 2 // boolean isSSLException
         5: .line 1665
            iload 2 /* isSSLException */
            ifeq 11
         6: .line 1666
            aload 1 /* cause */
            instanceof javax.net.ssl.SSLHandshakeException
            ifeq 9
         7: .line 1667
            getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
         8: .line 1668
            goto 15
        end local 3 // sun.security.ssl.Alert alert
         9: .line 1669
      StackMap locals: int
      StackMap stack:
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
        10: .line 1671
            goto 15
        end local 3 // sun.security.ssl.Alert alert
        11: .line 1672
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof java.io.IOException
            ifeq 14
        12: .line 1673
            getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
        13: .line 1674
            goto 15
        end local 3 // sun.security.ssl.Alert alert
        14: .line 1676
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.Alert.INTERNAL_ERROR:Lsun/security/ssl/Alert;
            astore 3 /* alert */
        start local 3 // sun.security.ssl.Alert alert
        15: .line 1680
      StackMap locals: sun.security.ssl.Alert
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            aload 3 /* alert */
            aload 1 /* cause */
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
            athrow
        end local 3 // sun.security.ssl.Alert alert
        end local 2 // boolean isSSLException
        end local 1 // java.lang.Exception cause
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   16     0            this  Lsun/security/ssl/SSLSocketImpl;
            0   16     1           cause  Ljava/lang/Exception;
            5   16     2  isSSLException  Z
            8    9     3           alert  Lsun/security/ssl/Alert;
           10   11     3           alert  Lsun/security/ssl/Alert;
           13   14     3           alert  Lsun/security/ssl/Alert;
           15   16     3           alert  Lsun/security/ssl/Alert;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      cause  

  private sun.security.ssl.Plaintext handleEOF(java.io.EOFException);
    descriptor: (Ljava/io/EOFException;)Lsun/security/ssl/Plaintext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // java.io.EOFException eofe
         0: .line 1684
            getstatic sun.security.ssl.SSLSocketImpl.requireCloseNotify:Z
            ifne 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 12
         1: .line 1686
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
            ifnull 6
         2: .line 1687
            new javax.net.ssl.SSLHandshakeException
            dup
         3: .line 1688
            ldc "Remote host terminated the handshake"
         4: .line 1687
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 2 /* ssle */
        start local 2 // javax.net.ssl.SSLException ssle
         5: .line 1689
            goto 9
        end local 2 // javax.net.ssl.SSLException ssle
         6: .line 1690
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
         7: .line 1691
            ldc "Remote host terminated the connection"
         8: .line 1690
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            astore 2 /* ssle */
        start local 2 // javax.net.ssl.SSLException ssle
         9: .line 1694
      StackMap locals: javax.net.ssl.SSLException
      StackMap stack:
            aload 1 /* eofe */
            ifnull 11
        10: .line 1695
            aload 2 /* ssle */
            aload 1 /* eofe */
            invokevirtual javax.net.ssl.SSLException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        11: .line 1697
      StackMap locals:
      StackMap stack:
            aload 2 /* ssle */
            athrow
        end local 2 // javax.net.ssl.SSLException ssle
        12: .line 1700
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            iconst_1
            putfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
        13: .line 1701
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:()V
        14: .line 1703
            getstatic sun.security.ssl.Plaintext.PLAINTEXT_NULL:Lsun/security/ssl/Plaintext;
            areturn
        end local 1 // java.io.EOFException eofe
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lsun/security/ssl/SSLSocketImpl;
            0   15     1  eofe  Ljava/io/EOFException;
            5    6     2  ssle  Ljavax/net/ssl/SSLException;
            9   12     2  ssle  Ljavax/net/ssl/SSLException;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      eofe  

  public java.lang.String getPeerHost();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1710
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.peerHost:Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public int getPeerPort();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1715
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.getPort:()I
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public boolean useDelegatedTask();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1720
            iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLSocketImpl;

  public void shutdown();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1725
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isClosed:()Z
            ifne 12
         1: .line 1726
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 3
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 1727
            ldc "close the underlying socket"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 1731
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
            ifeq 6
         4: .line 1733
            aload 0 /* this */
            iconst_0
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
         5: .line 1734
            goto 11
         6: .line 1736
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.closeSocket:(Z)V
         7: .line 1738
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 1
         9: .line 1739
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        10: .line 1740
            aload 1
            athrow
        11: .line 1739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl.tlsIsClosed:Z
        12: .line 1742
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lsun/security/ssl/SSLSocketImpl;
      Exception table:
        from    to  target  type
           3     8       8  any
    Exceptions:
      throws java.io.IOException

  private void closeSocket(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl this
        start local 1 // boolean selfInitiated
         0: .line 1745
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 6
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 6
         1: .line 1746
            new java.lang.StringBuilder
            dup
            ldc "close the SSL connection "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 1747
            iload 1 /* selfInitiated */
            ifeq 3
            ldc "(initiative)"
            goto 4
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: ldc "(passive)"
      StackMap locals: sun.security.ssl.SSLSocketImpl int
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1746
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 1750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.autoClose:Z
            ifne 7
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isLayered:()Z
            ifne 9
         7: .line 1751
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial sun.security.ssl.BaseSSLSocketImpl.close:()V
         8: .line 1752
            goto 12
      StackMap locals:
      StackMap stack:
         9: iload 1 /* selfInitiated */
            ifeq 12
        10: .line 1753
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifne 12
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.isInputShutdown:()Z
            ifne 12
        11: .line 1755
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl.waitForClose:()V
        12: .line 1758
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean selfInitiated
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lsun/security/ssl/SSLSocketImpl;
            0   13     1  selfInitiated  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      selfInitiated  

  private void waitForClose();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl this
         0: .line 1773
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 10
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 10
         1: .line 1774
            ldc "wait for close_notify or alert"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 1777
            goto 10
         3: .line 1779
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual sun.security.ssl.SSLSocketImpl.decode:(Ljava/nio/ByteBuffer;)Lsun/security/ssl/Plaintext;
            astore 1 /* plainText */
        start local 1 // sun.security.ssl.Plaintext plainText
         4: .line 1781
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 10
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 10
         5: .line 1783
            ldc "discard plaintext while waiting for close"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* plainText */
            aastore
         6: .line 1782
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 1 // sun.security.ssl.Plaintext plainText
         7: .line 1785
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Exception
         8: astore 1 /* e */
        start local 1 // java.lang.Exception e
         9: .line 1786
            aload 0 /* this */
            aload 1 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
        end local 1 // java.lang.Exception e
        10: .line 1777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
            invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
            ifeq 3
        11: .line 1789
            return
        end local 0 // sun.security.ssl.SSLSocketImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lsun/security/ssl/SSLSocketImpl;
            4    7     1  plainText  Lsun/security/ssl/Plaintext;
            9   10     1          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  public java.net.Socket setOption(java.net.SocketOption, java.lang.Object);
    descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/Socket;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/Socket;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public void setPerformancePreferences(int, int, int);
    descriptor: (III)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            iload 1
            iload 2
            iload 3
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setPerformancePreferences:(III)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.Set supportedOptions();
    descriptor: ()Ljava/util/Set;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.supportedOptions:()Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object getOption(java.net.SocketOption);
    descriptor: (Ljava/net/SocketOption;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public java.net.SocketAddress getLocalSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getLocalSocketAddress:()Ljava/net/SocketAddress;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void setSoTimeout(int);
    descriptor: (I)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokespecial sun.security.ssl.BaseSSLSocketImpl.setSoTimeout:(I)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.net.SocketException

  public void bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial sun.security.ssl.BaseSSLSocketImpl.bind:(Ljava/net/SocketAddress;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public java.net.SocketAddress getRemoteSocketAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.getRemoteSocketAddress:()Ljava/net/SocketAddress;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial sun.security.ssl.BaseSSLSocketImpl.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SSLSocketImpl.java"
NestMembers:
  sun.security.ssl.SSLSocketImpl$AppInputStream  sun.security.ssl.SSLSocketImpl$AppOutputStream
InnerClasses:
  abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher
  private AppInputStream = sun.security.ssl.SSLSocketImpl$AppInputStream of sun.security.ssl.SSLSocketImpl
  private AppOutputStream = sun.security.ssl.SSLSocketImpl$AppOutputStream of sun.security.ssl.SSLSocketImpl