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 842
            aconst_null
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
         1: .line 847
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            astore 0 /* tmMediator */
        start local 0 // javax.net.ssl.TrustManager[] tmMediator
         2: .line 848
            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 849
            aload 1 /* e */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
         5: .line 850
            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 852
      StackMap locals: javax.net.ssl.TrustManager[]
      StackMap stack:
            aload 0 /* tmMediator */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.trustManagers:[Ljavax/net/ssl/TrustManager;
         7: .line 854
            getstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
            ifnonnull 15
         8: .line 857
            invokestatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            astore 1 /* kmMediator */
        start local 1 // javax.net.ssl.KeyManager[] kmMediator
         9: .line 858
            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 859
            aload 2 /* e */
            putstatic sun.security.ssl.SSLContextImpl$DefaultManagersHolder.reservedException:Ljava/lang/Exception;
        12: .line 860
            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 862
      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 863
            goto 16
        15: .line 864
      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 866
      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 835
            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 870
            ldc "defaultctx"
            invokestatic sun.security.ssl.TrustManagerFactoryImpl.getCacertsKeyStore:(Ljava/lang/String;)Ljava/security/KeyStore;
         1: .line 869
            astore 0 /* ks */
        start local 0 // java.security.KeyStore ks
         2: .line 873
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
         3: .line 872
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
            astore 1 /* tmf */
        start local 1 // javax.net.ssl.TrustManagerFactory tmf
         4: .line 874
            aload 1 /* tmf */
            aload 0 /* ks */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
         5: .line 875
            aload 1 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            areturn
        end local 1 // javax.net.ssl.TrustManagerFactory tmf
        end local 0 // java.security.KeyStore ks
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    6     0    ks  Ljava/security/KeyStore;
            4    6     1   tmf  Ljavax/net/ssl/TrustManagerFactory;
    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 880
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* props */
        start local 0 // java.util.Map props
         1: .line 882
            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 881
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
         3: .line 897
            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 898
            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 899
            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 900
            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 901
            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 902
            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 903
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 902
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 904
            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 905
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 904
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 908
      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 909
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
        16: .line 910
            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 914
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* fs */
        start local 4 // java.io.FileInputStream fs
        18: .line 915
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.length:()I
            ifeq 21
            ldc "NONE"
            aload 1 /* defaultKeyStore */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
        19: .line 917
            new sun.security.ssl.SSLContextImpl$DefaultManagersHolder$2
            dup
            aload 1 /* defaultKeyStore */
            invokespecial sun.security.ssl.SSLContextImpl$DefaultManagersHolder$2.<init>:(Ljava/lang/String;)V
        20: .line 916
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast java.io.FileInputStream
            astore 4 /* fs */
        21: .line 924
      StackMap locals: java.io.FileInputStream
      StackMap stack:
            aload 0 /* props */
            ldc "keyStorePasswd"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* defaultKeyStorePassword */
        start local 5 // java.lang.String defaultKeyStorePassword
        22: .line 925
            aconst_null
            astore 6 /* passwd */
        start local 6 // char[] passwd
        23: .line 926
            aload 5 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.length:()I
            ifeq 25
        24: .line 927
            aload 5 /* defaultKeyStorePassword */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 6 /* passwd */
        25: .line 933
      StackMap locals: java.lang.String char[]
      StackMap stack:
            aconst_null
            astore 7 /* ks */
        start local 7 // java.security.KeyStore ks
        26: .line 934
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.length:()I
            ifeq 36
        27: .line 935
            getstatic sun.security.ssl.SSLContextImpl.debug:Lsun/security/ssl/Debug;
            ifnull 29
            ldc "defaultctx"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 29
        28: .line 936
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "init keystore"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 938
      StackMap locals: java.security.KeyStore
      StackMap stack:
            aload 3 /* defaultKeyStoreProvider */
            invokevirtual java.lang.String.length:()I
            ifne 32
        30: .line 939
            aload 2 /* defaultKeyStoreType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 7 /* ks */
        31: .line 940
            goto 35
        32: .line 941
      StackMap locals:
      StackMap stack:
            aload 2 /* defaultKeyStoreType */
        33: .line 942
            aload 3 /* defaultKeyStoreProvider */
        34: .line 941
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 7 /* ks */
        35: .line 946
      StackMap locals:
      StackMap stack:
            aload 7 /* ks */
            aload 4 /* fs */
            aload 6 /* passwd */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        36: .line 948
      StackMap locals:
      StackMap stack:
            aload 4 /* fs */
            ifnull 39
        37: .line 949
            aload 4 /* fs */
            invokevirtual java.io.FileInputStream.close:()V
        38: .line 950
            aconst_null
            astore 4 /* fs */
        39: .line 956
      StackMap locals:
      StackMap stack:
            getstatic sun.security.ssl.SSLContextImpl.debug:Lsun/security/ssl/Debug;
            ifnull 43
            ldc "defaultctx"
            invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
            ifeq 43
        40: .line 957
            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
        41: .line 958
            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;
        42: .line 957
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        43: .line 961
      StackMap locals:
      StackMap stack:
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
        44: .line 960
            invokestatic javax.net.ssl.KeyManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
            astore 8 /* kmf */
        start local 8 // javax.net.ssl.KeyManagerFactory kmf
        45: .line 963
            ldc "PKCS11"
            aload 2 /* defaultKeyStoreType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 48
        46: .line 964
            aload 8 /* kmf */
            aload 7 /* ks */
            aconst_null
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        47: .line 965
            goto 49
        48: .line 966
      StackMap locals: javax.net.ssl.KeyManagerFactory
      StackMap stack:
            aload 8 /* kmf */
            aload 7 /* ks */
            aload 6 /* passwd */
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
        49: .line 969
      StackMap locals:
      StackMap stack:
            aload 8 /* kmf */
            invokevirtual javax.net.ssl.KeyManagerFactory.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            areturn
        end local 8 // javax.net.ssl.KeyManagerFactory kmf
        end local 7 // java.security.KeyStore ks
        end local 6 // char[] passwd
        end local 5 // java.lang.String defaultKeyStorePassword
        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   50     0                    props  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            4   50     1          defaultKeyStore  Ljava/lang/String;
            5   50     2      defaultKeyStoreType  Ljava/lang/String;
            6   50     3  defaultKeyStoreProvider  Ljava/lang/String;
           18   50     4                       fs  Ljava/io/FileInputStream;
           22   50     5  defaultKeyStorePassword  Ljava/lang/String;
           23   50     6                   passwd  [C
           26   50     7                       ks  Ljava/security/KeyStore;
           45   50     8                      kmf  Ljavax/net/ssl/KeyManagerFactory;
    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