final class sun.security.jca.ProviderConfig$ProviderLoader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.jca.ProviderConfig$ProviderLoader
super_class: java.lang.Object
{
static final sun.security.jca.ProviderConfig$ProviderLoader INSTANCE;
descriptor: Lsun/security/jca/ProviderConfig$ProviderLoader;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private final java.util.ServiceLoader<java.security.Provider> services;
descriptor: Ljava/util/ServiceLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ServiceLoader<Ljava/security/Provider;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.security.jca.ProviderConfig$ProviderLoader
dup
invokespecial sun.security.jca.ProviderConfig$ProviderLoader.<init>:()V
putstatic sun.security.jca.ProviderConfig$ProviderLoader.INSTANCE:Lsun/security/jca/ProviderConfig$ProviderLoader;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc Ljava/security/Provider;
2: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
3: invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
putfield sun.security.jca.ProviderConfig$ProviderLoader.services:Ljava/util/ServiceLoader;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/jca/ProviderConfig$ProviderLoader;
public java.security.Provider load(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/Provider;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Attempt to load "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " using SL"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.jca.ProviderConfig$ProviderLoader.services:Ljava/util/ServiceLoader;
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 2
start local 2 3: goto 17
4: StackMap locals: java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Provider
astore 3
start local 3 5: aload 3
invokevirtual java.security.Provider.getName:()Ljava/lang/String;
astore 4
start local 4 6: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 8
7: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Found SL Provider named "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
8: StackMap locals: java.security.Provider java.lang.String
StackMap stack:
aload 4
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
9: aload 3
10: areturn
end local 4 end local 3 11: StackMap locals: sun.security.jca.ProviderConfig$ProviderLoader java.lang.String java.util.Iterator
StackMap stack: java.lang.Throwable
astore 3
start local 3 12: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 17
13: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Encountered "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
14: ldc " while iterating through SL, ignore and move on"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
16: aload 3
invokevirtual java.lang.Throwable.printStackTrace:()V
end local 3 17: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
18: aload 0
aload 1
invokevirtual sun.security.jca.ProviderConfig$ProviderLoader.legacyLoad:(Ljava/lang/String;)Ljava/security/Provider;
19: areturn
20: StackMap locals:
StackMap stack: java.security.ProviderException
astore 3
start local 3 21: aload 3
athrow
end local 3 22: StackMap locals:
StackMap stack: java.lang.Exception
astore 3
start local 3 23: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 28
24: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Encountered "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
25: ldc " during legacy load of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
27: aload 3
invokevirtual java.lang.Exception.printStackTrace:()V
28: StackMap locals: java.lang.Exception
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/security/jca/ProviderConfig$ProviderLoader;
0 29 1 pn Ljava/lang/String;
3 29 2 iter Ljava/util/Iterator<Ljava/security/Provider;>;
5 11 3 p Ljava/security/Provider;
6 11 4 pName Ljava/lang/String;
12 17 3 ex Ljava/lang/Throwable;
21 22 3 pe Ljava/security/ProviderException;
23 29 3 ex Ljava/lang/Exception;
Exception table:
from to target type
4 10 11 Class java.lang.SecurityException
4 10 11 Class java.util.ServiceConfigurationError
4 10 11 Class java.security.InvalidParameterException
18 19 20 Class java.security.ProviderException
18 19 22 Class java.lang.Exception
MethodParameters:
Name Flags
pn
private java.security.Provider legacyLoad(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/Provider;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 2
1: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Loading legacy provider: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
3: astore 2
start local 2 4: ldc Ljava/security/Provider;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 8
5: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 7
6: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not a provider"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
7: StackMap locals: java.lang.Class
StackMap stack:
aconst_null
areturn
8: StackMap locals:
StackMap stack:
new sun.security.jca.ProviderConfig$ProviderLoader$1
dup
aload 0
aload 2
invokespecial sun.security.jca.ProviderConfig$ProviderLoader$1.<init>:(Lsun/security/jca/ProviderConfig$ProviderLoader;Ljava/lang/Class;)V
9: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast java.security.Provider
astore 3
start local 3 10: aload 3
11: areturn
end local 3 end local 2 12: StackMap locals: sun.security.jca.ProviderConfig$ProviderLoader java.lang.String
StackMap stack: java.lang.Exception
astore 2
start local 2 13: aload 2
instanceof java.lang.reflect.InvocationTargetException
ifeq 16
14: aload 2
checkcast java.lang.reflect.InvocationTargetException
invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
astore 3
start local 3 15: goto 17
end local 3 16: StackMap locals: java.lang.Exception
StackMap stack:
aload 2
astore 3
start local 3 17: StackMap locals: java.lang.Throwable
StackMap stack:
getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 20
18: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Error loading legacy provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
19: aload 3
invokevirtual java.lang.Throwable.printStackTrace:()V
20: StackMap locals:
StackMap stack:
aload 3
instanceof java.security.ProviderException
ifeq 22
21: aload 3
checkcast java.security.ProviderException
athrow
22: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 23: StackMap locals: sun.security.jca.ProviderConfig$ProviderLoader java.lang.String
StackMap stack: java.lang.LinkageError
astore 2
start local 2 24: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
ifnull 27
25: getstatic sun.security.jca.ProviderConfig.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Error loading legacy provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
26: aload 2
invokevirtual java.lang.LinkageError.printStackTrace:()V
27: StackMap locals: java.lang.LinkageError
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/security/jca/ProviderConfig$ProviderLoader;
0 28 1 classname Ljava/lang/String;
4 12 2 provClass Ljava/lang/Class<*>;
10 12 3 p Ljava/security/Provider;
13 23 2 e Ljava/lang/Exception;
15 16 3 t Ljava/lang/Throwable;
17 23 3 t Ljava/lang/Throwable;
24 28 2 err Ljava/lang/LinkageError;
Exception table:
from to target type
2 7 12 Class java.lang.Exception
8 11 12 Class java.lang.Exception
2 7 23 Class java.lang.ExceptionInInitializerError
8 11 23 Class java.lang.ExceptionInInitializerError
2 7 23 Class java.lang.NoClassDefFoundError
8 11 23 Class java.lang.NoClassDefFoundError
MethodParameters:
Name Flags
classname
}
SourceFile: "ProviderConfig.java"
NestHost: sun.security.jca.ProviderConfig
InnerClasses:
private final ProviderLoader = sun.security.jca.ProviderConfig$ProviderLoader of sun.security.jca.ProviderConfig
sun.security.jca.ProviderConfig$ProviderLoader$1