final class sun.security.ssl.SSLContextImpl$DefaultManagersHolder
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.SSLContextImpl$DefaultManagersHolder
  super_class: java.lang.Object
{
  private static final java.lang.String NONE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NONE"

  private static final java.lang.String P11KEYSTORE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKCS11"

  private static final javax.net.ssl.TrustManager[] trustManagers;
    descriptor: [Ljavax/net/ssl/TrustManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final javax.net.ssl.KeyManager[] keyManagers;
    descriptor: [Ljavax/net/ssl/KeyManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.Exception reservedException;
    descriptor: Ljava/lang/Exception;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=4, args_size=0
         0: .line 1027
            aconst_null
            astore 0 /* reserved */
        start local 0 // java.lang.Exception reserved
         1: .line 1030
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 1 /* tmMediator */
        start local 1 // javax.net.ssl.TrustManager[] tmMediator
         2: .line 1031
            goto 6
        end local 1 // javax.net.ssl.TrustManager[] tmMediator
      StackMap locals: java.lang.Exception
      StackMap stack: java.lang.Exception
         3: astore 2 /* e */
        start local 2 // java.lang.Exception e
         4: .line 1032
            aload 2 /* e */
            astore 0 /* reserved */
         5: .line 1033
            iconst_0
            anewarray javax.net.ssl.TrustManager
            astore 1 /* tmMediator */
        end local 2 // java.lang.Exception e
        start local 1 // javax.net.ssl.TrustManager[] tmMediator
         6: .line 1035
      StackMap locals: javax.net.ssl.TrustManager[]
      StackMap stack:
            aload 1 /* tmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.trustManagers:[Ljavax/net/ssl/TrustManager;
         7: .line 1037
            aload 0 /* reserved */
            ifnonnull 15
         8: .line 1040
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            astore 2 /* kmMediator */
        start local 2 // javax.net.ssl.KeyManager[] kmMediator
         9: .line 1041
            goto 13
        end local 2 // javax.net.ssl.KeyManager[] kmMediator
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 3 /* e */
        start local 3 // java.lang.Exception e
        11: .line 1042
            aload 3 /* e */
            astore 0 /* reserved */
        12: .line 1043
            iconst_0
            anewarray javax.net.ssl.KeyManager
            astore 2 /* kmMediator */
        end local 3 // java.lang.Exception e
        start local 2 // javax.net.ssl.KeyManager[] kmMediator
        13: .line 1045
      StackMap locals: javax.net.ssl.KeyManager[]
      StackMap stack:
            aload 2 /* kmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.keyManagers:[Ljavax/net/ssl/KeyManager;
        end local 2 // javax.net.ssl.KeyManager[] kmMediator
        14: .line 1046
            goto 16
        15: .line 1047
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray javax.net.ssl.KeyManager
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.keyManagers:[Ljavax/net/ssl/KeyManager;
        16: .line 1050
      StackMap locals:
      StackMap stack:
            aload 0 /* reserved */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
        end local 1 // javax.net.ssl.TrustManager[] tmMediator
        end local 0 // java.lang.Exception reserved
        17: .line 1051
            return
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   17     0    reserved  Ljava/lang/Exception;
            2    3     1  tmMediator  [Ljavax/net/ssl/TrustManager;
            6   17     1  tmMediator  [Ljavax/net/ssl/TrustManager;
            4    6     2           e  Ljava/lang/Exception;
            9   10     2  kmMediator  [Ljavax/net/ssl/KeyManager;
           13   14     2  kmMediator  [Ljavax/net/ssl/KeyManager;
           11   13     3           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception
           8     9      10  Class java.lang.Exception

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.SSLContextImpl$DefaultManagersHolder this
         0: .line 1017
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.security.ssl.SSLContextImpl$DefaultManagersHolder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/SSLContextImpl$DefaultManagersHolder;

  private static javax.net.ssl.TrustManager[] getTrustManagers();
    descriptor: ()[Ljavax/net/ssl/TrustManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 1055
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
         1: .line 1054
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 0 /* tmf */
        start local 0 // javax.net.ssl.TrustManagerFactory tmf
         2: .line 1056
            ldc "SunJSSE"
            aload 0 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getProvider:()Ljava/security/Provider;
            invokevirtual java.security.Provider.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 1060
            aload 0 /* tmf */
            aconst_null
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
         4: .line 1061
            goto 7
         5: .line 1064
      StackMap locals: javax.net.ssl.TrustManagerFactory
      StackMap stack:
            invokestatic sun.security.ssl.TrustStoreManager.getTrustedKeyStore:()Ljava/security/KeyStore;
            astore 1 /* ks */
        start local 1 // java.security.KeyStore ks
         6: .line 1065
            aload 0 /* tmf */
            aload 1 /* ks */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
        end local 1 // java.security.KeyStore ks
         7: .line 1068
      StackMap locals:
      StackMap stack:
            aload 0 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            areturn
        end local 0 // javax.net.ssl.TrustManagerFactory tmf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    8     0   tmf  Ljavax/net/ssl/TrustManagerFactory;
            6    7     1    ks  Ljava/security/KeyStore;
    Exceptions:
      throws java.lang.Exception

  private static javax.net.ssl.KeyManager[] getKeyManagers();
    descriptor: ()[Ljavax/net/ssl/KeyManager;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=0
         0: .line 1073
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* props */
        start local 0 // java.util.Map props
         1: .line 1075
            new sun.security.ssl.SSLContextImpl$DefaultManagersHolder$1
            dup
            aload 0 /* props */
            invokespecial sun.security.ssl.SSLContextImpl$DefaultManagersHolder$1.<init>:(Ljava/util/Map;)V
         2: .line 1074
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         3: .line 1091
            aload 0 /* props */
            ldc "keyStore"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* defaultKeyStore */
        start local 1 // java.lang.String defaultKeyStore
         4: .line 1092
            aload 0 /* props */
            ldc "keyStoreType"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* defaultKeyStoreType */
        start local 2 // java.lang.String defaultKeyStoreType
         5: .line 1093
            aload 0 /* props */
            ldc "keyStoreProvider"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* defaultKeyStoreProvider */
        start local 3 // java.lang.String defaultKeyStoreProvider
         6: .line 1094
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 14
            ldc "ssl,defaultctx"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 14
         7: .line 1095
            new java.lang.StringBuilder
            dup
            ldc "keyStore is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            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
         8: .line 1096
            new java.lang.StringBuilder
            dup
            ldc "keyStore type is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 1097
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 1096
            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
        11: .line 1098
            new java.lang.StringBuilder
            dup
            ldc "keyStore provider is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 1099
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 1098
            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
        14: .line 1102
      StackMap locals: java.util.Map java.lang.String java.lang.String java.lang.String
      StackMap stack:
            ldc "PKCS11"
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 1103
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 1104
            new java.lang.IllegalArgumentException
            dup
            ldc "if keyStoreType is PKCS11, then keyStore must be NONE"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1108
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* fs */
        start local 4 // java.io.FileInputStream fs
        18: .line 1109
            aconst_null
            astore 5 /* ks */
        start local 5 // java.security.KeyStore ks
        19: .line 1110
            aconst_null
            astore 6 /* passwd */
        start local 6 // char[] passwd
        20: .line 1112
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 24
        21: .line 1113
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        22: .line 1115
            new sun.security.ssl.SSLContextImpl$DefaultManagersHolder$2
            dup
            aload 1 /* defaultKeyStore */
            invokespecial sun.security.ssl.SSLContextImpl$DefaultManagersHolder$2.<init>:(Ljava/lang/String;)V
        23: .line 1114
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.FileInputStream
            astore 4 /* fs */
        24: .line 1123
      StackMap locals: java.io.FileInputStream java.security.KeyStore char[]
      StackMap stack:
            aload 0 /* props */
            ldc "keyStorePasswd"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* defaultKeyStorePassword */
        start local 7 // java.lang.String defaultKeyStorePassword
        25: .line 1124
            aload 7 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 27
        26: .line 1125
            aload 7 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 6 /* passwd */
        27: .line 1131
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.length:()I
            ifeq 43
        28: .line 1132
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 30
            ldc "ssl,defaultctx"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 30
        29: .line 1133
            ldc "init keystore"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        30: .line 1135
      StackMap locals:
      StackMap stack:
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 33
        31: .line 1136
            aload 2 /* defaultKeyStoreType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        32: .line 1137
            goto 36
        33: .line 1138
      StackMap locals:
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
        34: .line 1139
            aload 3 /* defaultKeyStoreProvider */
        35: .line 1138
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        36: .line 1143
      StackMap locals:
      StackMap stack:
            aload 5 /* ks */
            aload 4 /* fs */
            aload 6 /* passwd */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        end local 7 // java.lang.String defaultKeyStorePassword
        37: .line 1145
            goto 43
      StackMap locals: java.util.Map java.lang.String java.lang.String java.lang.String java.io.FileInputStream java.security.KeyStore char[]
      StackMap stack: java.lang.Throwable
        38: astore 8
        39: .line 1146
            aload 4 /* fs */
            ifnull 42
        40: .line 1147
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        41: .line 1148
            aconst_null
            astore 4 /* fs */
        42: .line 1150
      StackMap locals: java.util.Map java.lang.String java.lang.String java.lang.String java.io.FileInputStream java.security.KeyStore char[] top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        43: .line 1146
      StackMap locals: java.util.Map java.lang.String java.lang.String java.lang.String java.io.FileInputStream java.security.KeyStore char[]
      StackMap stack:
            aload 4 /* fs */
            ifnull 46
        44: .line 1147
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        45: .line 1148
            aconst_null
            astore 4 /* fs */
        46: .line 1155
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 50
            ldc "ssl,defaultctx"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 50
        47: .line 1156
            new java.lang.StringBuilder
            dup
            ldc "init keymanager of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        48: .line 1157
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 1156
            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
        50: .line 1160
      StackMap locals:
      StackMap stack:
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
        51: .line 1159
            invokestatic javax.net.ssl.KeyManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
            astore 7 /* kmf */
        start local 7 // javax.net.ssl.KeyManagerFactory kmf
        52: .line 1162
            ldc "PKCS11"
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        53: .line 1163
            aload 7 /* kmf */
            aload 5 /* ks */
            aconst_null
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        54: .line 1164
            goto 56
        55: .line 1165
      StackMap locals: javax.net.ssl.KeyManagerFactory
      StackMap stack:
            aload 7 /* kmf */
            aload 5 /* ks */
            aload 6 /* passwd */
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        56: .line 1168
      StackMap locals:
      StackMap stack:
            aload 7 /* kmf */
            invokevirtual javax.net.ssl.KeyManagerFactory.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            areturn
        end local 7 // javax.net.ssl.KeyManagerFactory kmf
        end local 6 // char[] passwd
        end local 5 // java.security.KeyStore ks
        end local 4 // java.io.FileInputStream fs
        end local 3 // java.lang.String defaultKeyStoreProvider
        end local 2 // java.lang.String defaultKeyStoreType
        end local 1 // java.lang.String defaultKeyStore
        end local 0 // java.util.Map props
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            1   57     0                    props  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4   57     1          defaultKeyStore  Ljava/lang/String;
            5   57     2      defaultKeyStoreType  Ljava/lang/String;
            6   57     3  defaultKeyStoreProvider  Ljava/lang/String;
           18   57     4                       fs  Ljava/io/FileInputStream;
           19   57     5                       ks  Ljava/security/KeyStore;
           20   57     6                   passwd  [C
           25   37     7  defaultKeyStorePassword  Ljava/lang/String;
           52   57     7                      kmf  Ljavax/net/ssl/KeyManagerFactory;
      Exception table:
        from    to  target  type
          20    38      38  any
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "SSLContextImpl.java"
NestHost: sun.security.ssl.SSLContextImpl
InnerClasses:
  private final DefaultManagersHolder = sun.security.ssl.SSLContextImpl$DefaultManagersHolder of sun.security.ssl.SSLContextImpl
  sun.security.ssl.SSLContextImpl$DefaultManagersHolder$1
  sun.security.ssl.SSLContextImpl$DefaultManagersHolder$2