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

  static java.lang.Exception reservedException;
    descriptor: Ljava/lang/Exception;
    flags: (0x0008) ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=0
         0: .line 912
            aconst_null
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
         1: .line 917
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 0 /* tmMediator */
        start local 0 // javax.net.ssl.TrustManager[] tmMediator
         2: .line 918
            goto 6
        end local 0 // javax.net.ssl.TrustManager[] tmMediator
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 1 /* e */
        start local 1 // java.lang.Exception e
         4: .line 919
            aload 1 /* e */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
         5: .line 920
            iconst_0
            anewarray javax.net.ssl.TrustManager
            astore 0 /* tmMediator */
        end local 1 // java.lang.Exception e
        start local 0 // javax.net.ssl.TrustManager[] tmMediator
         6: .line 922
      StackMap locals: javax.net.ssl.TrustManager[]
      StackMap stack:
            aload 0 /* tmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.trustManagers:[Ljavax/net/ssl/TrustManager;
         7: .line 924
            getstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
            ifnonnull 15
         8: .line 927
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            astore 1 /* kmMediator */
        start local 1 // javax.net.ssl.KeyManager[] kmMediator
         9: .line 928
            goto 13
        end local 1 // javax.net.ssl.KeyManager[] kmMediator
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 2 /* e */
        start local 2 // java.lang.Exception e
        11: .line 929
            aload 2 /* e */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
        12: .line 930
            iconst_0
            anewarray javax.net.ssl.KeyManager
            astore 1 /* kmMediator */
        end local 2 // java.lang.Exception e
        start local 1 // javax.net.ssl.KeyManager[] kmMediator
        13: .line 932
      StackMap locals: javax.net.ssl.KeyManager[]
      StackMap stack:
            aload 1 /* kmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.keyManagers:[Ljavax/net/ssl/KeyManager;
        end local 1 // javax.net.ssl.KeyManager[] kmMediator
        14: .line 933
            goto 16
        15: .line 934
      StackMap locals:
      StackMap stack:
            iconst_0
            anewarray javax.net.ssl.KeyManager
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.keyManagers:[Ljavax/net/ssl/KeyManager;
        end local 0 // javax.net.ssl.TrustManager[] tmMediator
        16: .line 936
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            2    3     0  tmMediator  [Ljavax/net/ssl/TrustManager;
            6   16     0  tmMediator  [Ljavax/net/ssl/TrustManager;
            4    6     1           e  Ljava/lang/Exception;
            9   10     1  kmMediator  [Ljavax/net/ssl/KeyManager;
           13   14     1  kmMediator  [Ljavax/net/ssl/KeyManager;
           11   13     2           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 905
            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 940
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
         1: .line 939
            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 941
            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 945
            aload 0 /* tmf */
            aconst_null
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
         4: .line 946
            goto 7
         5: .line 949
      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 950
            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 953
      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=4, locals=9, args_size=0
         0: .line 958
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* props */
        start local 0 // java.util.Map props
         1: .line 960
            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 959
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         3: .line 976
            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 977
            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 978
            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 979
            getstatic sun.security.ssl.SSLContextImpl.debug:Lsun/security/ssl/Debug;
            ifnull 14
            ldc "defaultctx"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 14
         7: .line 980
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            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;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 981
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "keyStore type is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 982
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 981
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 983
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "keyStore provider is : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 984
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 983
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 987
      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 988
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 989
            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 993
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* fs */
        start local 4 // java.io.FileInputStream fs
        18: .line 994
            aconst_null
            astore 5 /* ks */
        start local 5 // java.security.KeyStore ks
        19: .line 995
            aconst_null
            astore 6 /* passwd */
        start local 6 // char[] passwd
        20: .line 997
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.length:()I
            ifeq 24
        21: .line 998
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        22: .line 1000
            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 999
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.FileInputStream
            astore 4 /* fs */
        24: .line 1008
      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 1009
            aload 7 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.length:()I
            ifeq 27
        26: .line 1010
            aload 7 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 6 /* passwd */
        27: .line 1016
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.length:()I
            ifeq 43
        28: .line 1017
            getstatic sun.security.ssl.SSLContextImpl.debug:Lsun/security/ssl/Debug;
            ifnull 30
            ldc "defaultctx"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 30
        29: .line 1018
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "init keystore"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        30: .line 1020
      StackMap locals:
      StackMap stack:
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.String.length:()I
            ifne 33
        31: .line 1021
            aload 2 /* defaultKeyStoreType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        32: .line 1022
            goto 36
        33: .line 1023
      StackMap locals:
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
        34: .line 1024
            aload 3 /* defaultKeyStoreProvider */
        35: .line 1023
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        36: .line 1028
      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 1030
            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 1031
            aload 4 /* fs */
            ifnull 42
        40: .line 1032
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        41: .line 1033
            aconst_null
            astore 4 /* fs */
        42: .line 1035
      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 1031
      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 1032
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        45: .line 1033
            aconst_null
            astore 4 /* fs */
        46: .line 1040
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLContextImpl.debug:Lsun/security/ssl/Debug;
            ifnull 50
            ldc "defaultctx"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 50
        47: .line 1041
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "init keymanager of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        48: .line 1042
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        49: .line 1041
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        50: .line 1045
      StackMap locals:
      StackMap stack:
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
        51: .line 1044
            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 1047
            ldc "PKCS11"
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 55
        53: .line 1048
            aload 7 /* kmf */
            aload 5 /* ks */
            aconst_null
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        54: .line 1049
            goto 56
        55: .line 1050
      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 1053
      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