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=5, locals=4, args_size=0
         0: .line 909
            aconst_null
            astore 0 /* reserved */
        start local 0 // java.lang.Exception reserved
         1: .line 910
            aconst_null
            astore 1 /* tmMediator */
        start local 1 // javax.net.ssl.TrustManager[] tmMediator
         2: .line 912
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 1 /* tmMediator */
         3: .line 913
            goto 9
      StackMap locals: java.lang.Exception javax.net.ssl.TrustManager[]
      StackMap stack: java.lang.Exception
         4: astore 2 /* e */
        start local 2 // java.lang.Exception e
         5: .line 914
            aload 2 /* e */
            astore 0 /* reserved */
         6: .line 915
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 9
            ldc "ssl,defaultctx"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 917
            ldc "Failed to load default trust managers"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* e */
            aastore
         8: .line 916
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 2 // java.lang.Exception e
         9: .line 921
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* kmMediator */
        start local 2 // javax.net.ssl.KeyManager[] kmMediator
        10: .line 922
            aload 0 /* reserved */
            ifnonnull 18
        11: .line 924
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            astore 2 /* kmMediator */
        12: .line 925
            goto 18
      StackMap locals: java.lang.Exception javax.net.ssl.TrustManager[] javax.net.ssl.KeyManager[]
      StackMap stack: java.lang.Exception
        13: astore 3 /* e */
        start local 3 // java.lang.Exception e
        14: .line 926
            aload 3 /* e */
            astore 0 /* reserved */
        15: .line 927
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 18
            ldc "ssl,defaultctx"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 18
        16: .line 929
            ldc "Failed to load default key managers"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* e */
            aastore
        17: .line 928
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 3 // java.lang.Exception e
        18: .line 934
      StackMap locals:
      StackMap stack:
            aload 0 /* reserved */
            ifnull 24
        19: .line 935
            iconst_0
            anewarray javax.net.ssl.TrustManager
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.trustManagers:[Ljavax/net/ssl/TrustManager;
        20: .line 936
            iconst_0
            anewarray javax.net.ssl.KeyManager
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.keyManagers:[Ljavax/net/ssl/KeyManager;
        21: .line 942
            new java.security.KeyManagementException
            dup
            aload 0 /* reserved */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokespecial java.security.KeyManagementException.<init>:(Ljava/lang/String;)V
        22: .line 941
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
        23: .line 943
            goto 27
        24: .line 944
      StackMap locals:
      StackMap stack:
            aload 1 /* tmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.trustManagers:[Ljavax/net/ssl/TrustManager;
        25: .line 945
            aload 2 /* kmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.keyManagers:[Ljavax/net/ssl/KeyManager;
        26: .line 947
            aconst_null
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
        end local 2 // javax.net.ssl.KeyManager[] kmMediator
        end local 1 // javax.net.ssl.TrustManager[] tmMediator
        end local 0 // java.lang.Exception reserved
        27: .line 949
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   27     0    reserved  Ljava/lang/Exception;
            2   27     1  tmMediator  [Ljavax/net/ssl/TrustManager;
            5    9     2           e  Ljava/lang/Exception;
           10   27     2  kmMediator  [Ljavax/net/ssl/KeyManager;
           14   18     3           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.Exception
          11    12      13  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 899
            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 953
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
         1: .line 952
            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 954
            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 958
            aload 0 /* tmf */
            aconst_null
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
         4: .line 959
            goto 7
         5: .line 962
      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 963
            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 966
      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 971
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* props */
        start local 0 // java.util.Map props
         1: .line 973
            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 972
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         3: .line 989
            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 990
            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 991
            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 992
            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 993
            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 994
            new java.lang.StringBuilder
            dup
            ldc "keyStore type is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 995
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 994
            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 996
            new java.lang.StringBuilder
            dup
            ldc "keyStore provider is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 997
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 996
            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 1000
      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 1001
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 1002
            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 1006
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* fs */
        start local 4 // java.io.FileInputStream fs
        18: .line 1007
            aconst_null
            astore 5 /* ks */
        start local 5 // java.security.KeyStore ks
        19: .line 1008
            aconst_null
            astore 6 /* passwd */
        start local 6 // char[] passwd
        20: .line 1010
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 24
        21: .line 1011
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        22: .line 1013
            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 1012
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.FileInputStream
            astore 4 /* fs */
        24: .line 1021
      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 1022
            aload 7 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 27
        26: .line 1023
            aload 7 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 6 /* passwd */
        27: .line 1029
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.length:()I
            ifeq 43
        28: .line 1030
            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 1031
            ldc "init keystore"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
        30: .line 1033
      StackMap locals:
      StackMap stack:
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 33
        31: .line 1034
            aload 2 /* defaultKeyStoreType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        32: .line 1035
            goto 36
        33: .line 1036
      StackMap locals:
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
        34: .line 1037
            aload 3 /* defaultKeyStoreProvider */
        35: .line 1036
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        36: .line 1041
      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 1043
            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 1044
            aload 4 /* fs */
            ifnull 42
        40: .line 1045
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        41: .line 1046
            aconst_null
            astore 4 /* fs */
        42: .line 1048
      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 1044
      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 1045
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        45: .line 1046
            aconst_null
            astore 4 /* fs */
        46: .line 1053
      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 1054
            new java.lang.StringBuilder
            dup
            ldc "init keymanager of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        48: .line 1055
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        49: .line 1054
            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 1058
      StackMap locals:
      StackMap stack:
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
        51: .line 1057
            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 1060
            ldc "PKCS11"
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        53: .line 1061
            aload 7 /* kmf */
            aload 5 /* ks */
            aconst_null
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        54: .line 1062
            goto 56
        55: .line 1063
      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 1066
      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