public final class jdk.internal.logger.LoggerFinderLoader
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.internal.logger.LoggerFinderLoader
super_class: java.lang.Object
{
private static volatile java.lang.System$LoggerFinder service;
descriptor: Ljava/lang/System$LoggerFinder;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private static final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.security.Permission CLASSLOADER_PERMISSION;
descriptor: Ljava/security/Permission;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.security.Permission READ_PERMISSION;
descriptor: Ljava/security/Permission;
flags: (0x0018) ACC_STATIC, ACC_FINAL
public static final java.lang.RuntimePermission LOGGERFINDER_PERMISSION;
descriptor: Ljava/lang/RuntimePermission;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_0
newarray 10
putstatic jdk.internal.logger.LoggerFinderLoader.lock:Ljava/lang/Object;
1: getstatic sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION:Ljava/lang/RuntimePermission;
2: putstatic jdk.internal.logger.LoggerFinderLoader.CLASSLOADER_PERMISSION:Ljava/security/Permission;
3: new java.io.FilePermission
dup
ldc "<<ALL FILES>>"
4: ldc "read"
5: invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
6: putstatic jdk.internal.logger.LoggerFinderLoader.READ_PERMISSION:Ljava/security/Permission;
7: new java.lang.RuntimePermission
dup
ldc "loggerFinder"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
8: putstatic jdk.internal.logger.LoggerFinderLoader.LOGGERFINDER_PERMISSION:Ljava/lang/RuntimePermission;
9: 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: new java.lang.InternalError
dup
ldc "LoggerFinderLoader cannot be instantiated"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/logger/LoggerFinderLoader;
private static java.lang.System$LoggerFinder service();
descriptor: ()Ljava/lang/System$LoggerFinder;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
ifnull 1
getstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
areturn
1: StackMap locals:
StackMap stack:
getstatic jdk.internal.logger.LoggerFinderLoader.lock:Ljava/lang/Object;
dup
astore 0
monitorenter
2: getstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
ifnull 4
getstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
aload 0
monitorexit
3: areturn
4: StackMap locals: java.lang.Object
StackMap stack:
invokestatic jdk.internal.logger.LoggerFinderLoader.loadLoggerFinder:()Ljava/lang/System$LoggerFinder;
putstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
5: aload 0
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 0
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
invokestatic jdk.internal.logger.BootstrapLogger.redirectTemporaryLoggers:()V
10: getstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 7 any
4 6 7 any
7 8 7 any
private static jdk.internal.logger.LoggerFinderLoader$ErrorPolicy configurationErrorPolicy();
descriptor: ()Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc "jdk.logger.finder.error"
invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
1: astore 0
start local 0 2: aload 0
ifnull 3
aload 0
invokevirtual java.lang.String.isEmpty:()Z
ifeq 4
3: StackMap locals: java.lang.String
StackMap stack:
getstatic jdk.internal.logger.LoggerFinderLoader$ErrorPolicy.WARNING:Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
invokestatic jdk.internal.logger.LoggerFinderLoader$ErrorPolicy.valueOf:(Ljava/lang/String;)Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
5: areturn
6: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
pop
7: getstatic jdk.internal.logger.LoggerFinderLoader$ErrorPolicy.WARNING:Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 8 0 errorPolicy Ljava/lang/String;
Exception table:
from to target type
4 5 6 Class java.lang.IllegalArgumentException
private static boolean ensureSingletonProvider();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "jdk.logger.finder.singleton"
invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
1: invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static java.util.Iterator<java.lang.System$LoggerFinder> findLoggerFinderProviders();
descriptor: ()Ljava/util/Iterator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnonnull 7
1: ldc Ljava/lang/System$LoggerFinder;
2: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
3: invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
4: invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
5: astore 0
start local 0 6: goto 13
end local 0 7: StackMap locals:
StackMap stack:
invokedynamic run()Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/logger/LoggerFinderLoader.lambda$0()Ljava/util/Iterator; (6)
()Ljava/util/Iterator;
8: astore 1
start local 1 9: aload 1
aconst_null
iconst_3
anewarray java.security.Permission
dup
iconst_0
10: getstatic jdk.internal.logger.LoggerFinderLoader.LOGGERFINDER_PERMISSION:Ljava/lang/RuntimePermission;
aastore
dup
iconst_1
getstatic jdk.internal.logger.LoggerFinderLoader.CLASSLOADER_PERMISSION:Ljava/security/Permission;
aastore
dup
iconst_2
11: getstatic jdk.internal.logger.LoggerFinderLoader.READ_PERMISSION:Ljava/security/Permission;
aastore
12: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object;
checkcast java.util.Iterator
astore 0
end local 1 start local 0 13: StackMap locals: java.util.Iterator
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
6 7 0 iterator Ljava/util/Iterator<Ljava/lang/System$LoggerFinder;>;
13 14 0 iterator Ljava/util/Iterator<Ljava/lang/System$LoggerFinder;>;
9 13 1 pa Ljava/security/PrivilegedAction<Ljava/util/Iterator<Ljava/lang/System$LoggerFinder;>;>;
Signature: ()Ljava/util/Iterator<Ljava/lang/System$LoggerFinder;>;
private static java.lang.System$LoggerFinder loadLoggerFinder();
descriptor: ()Ljava/lang/System$LoggerFinder;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=0
0: invokestatic jdk.internal.logger.LoggerFinderLoader.findLoggerFinderProviders:()Ljava/util/Iterator;
1: astore 1
start local 1 2: aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 8
3: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.System$LoggerFinder
astore 0
start local 0 4: aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 30
invokestatic jdk.internal.logger.LoggerFinderLoader.ensureSingletonProvider:()Z
ifeq 30
5: new java.util.ServiceConfigurationError
dup
6: ldc "More than on LoggerFinder implementation"
7: invokespecial java.util.ServiceConfigurationError.<init>:(Ljava/lang/String;)V
athrow
end local 0 8: StackMap locals: top java.util.Iterator
StackMap stack:
invokestatic jdk.internal.logger.LoggerFinderLoader.loadDefaultImplementation:()Ljava/lang/System$LoggerFinder;
astore 0
end local 1 start local 0 9: goto 30
end local 0 StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 1
start local 1 11: new jdk.internal.logger.DefaultLoggerFinder
dup
invokespecial jdk.internal.logger.DefaultLoggerFinder.<init>:()V
dup
astore 0
start local 0 12: putstatic jdk.internal.logger.LoggerFinderLoader.service:Ljava/lang/System$LoggerFinder;
13: invokestatic jdk.internal.logger.LoggerFinderLoader.configurationErrorPolicy:()Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
astore 2
start local 2 14: aload 2
getstatic jdk.internal.logger.LoggerFinderLoader$ErrorPolicy.ERROR:Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
if_acmpne 20
15: aload 1
instanceof java.lang.Error
ifeq 17
16: aload 1
athrow
17: StackMap locals: java.lang.System$LoggerFinder java.lang.Throwable jdk.internal.logger.LoggerFinderLoader$ErrorPolicy
StackMap stack:
new java.util.ServiceConfigurationError
dup
18: ldc "Failed to instantiate LoggerFinder provider; Using default."
aload 1
19: invokespecial java.util.ServiceConfigurationError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
20: StackMap locals:
StackMap stack:
aload 2
getstatic jdk.internal.logger.LoggerFinderLoader$ErrorPolicy.QUIET:Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
if_acmpeq 30
21: new jdk.internal.logger.SimpleConsoleLogger
dup
ldc "jdk.internal.logger"
iconst_0
invokespecial jdk.internal.logger.SimpleConsoleLogger.<init>:(Ljava/lang/String;Z)V
22: astore 3
start local 3 23: aload 3
getstatic java.lang.System$Logger$Level.WARNING:Ljava/lang/System$Logger$Level;
24: ldc "Failed to instantiate LoggerFinder provider; Using default."
25: invokevirtual jdk.internal.logger.SimpleConsoleLogger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
26: aload 2
getstatic jdk.internal.logger.LoggerFinderLoader$ErrorPolicy.DEBUG:Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
if_acmpne 30
27: aload 3
getstatic java.lang.System$Logger$Level.WARNING:Ljava/lang/System$Logger$Level;
28: ldc "Exception raised trying to instantiate LoggerFinder"
aload 1
29: invokevirtual jdk.internal.logger.SimpleConsoleLogger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 end local 2 end local 1 30: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
4 8 0 result Ljava/lang/System$LoggerFinder;
9 10 0 result Ljava/lang/System$LoggerFinder;
12 31 0 result Ljava/lang/System$LoggerFinder;
2 9 1 iterator Ljava/util/Iterator<Ljava/lang/System$LoggerFinder;>;
11 30 1 x Ljava/lang/Throwable;
14 30 2 errorPolicy Ljdk/internal/logger/LoggerFinderLoader$ErrorPolicy;
23 30 3 logger Ljdk/internal/logger/SimpleConsoleLogger;
Exception table:
from to target type
0 9 10 Class java.lang.Error
0 9 10 Class java.lang.RuntimeException
private static java.lang.System$LoggerFinder loadDefaultImplementation();
descriptor: ()Ljava/lang/System$LoggerFinder;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnonnull 4
2: ldc Ljdk/internal/logger/DefaultLoggerFinder;
invokestatic java.util.ServiceLoader.loadInstalled:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 1
start local 1 3: goto 9
end local 1 4: StackMap locals: java.lang.SecurityManager
StackMap stack:
invokedynamic run()Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/logger/LoggerFinderLoader.lambda$1()Ljava/util/Iterator; (6)
()Ljava/util/Iterator;
astore 2
start local 2 5: aload 2
aconst_null
iconst_3
anewarray java.security.Permission
dup
iconst_0
6: getstatic jdk.internal.logger.LoggerFinderLoader.LOGGERFINDER_PERMISSION:Ljava/lang/RuntimePermission;
aastore
dup
iconst_1
getstatic jdk.internal.logger.LoggerFinderLoader.CLASSLOADER_PERMISSION:Ljava/security/Permission;
aastore
dup
iconst_2
7: getstatic jdk.internal.logger.LoggerFinderLoader.READ_PERMISSION:Ljava/security/Permission;
aastore
8: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;[Ljava/security/Permission;)Ljava/lang/Object;
checkcast java.util.Iterator
astore 1
end local 2 start local 1 9: StackMap locals: java.util.Iterator
StackMap stack:
aconst_null
astore 2
start local 2 10: aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 17
11: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.internal.logger.DefaultLoggerFinder
astore 2
12: goto 17
StackMap locals: java.lang.SecurityManager java.util.Iterator jdk.internal.logger.DefaultLoggerFinder
StackMap stack: java.lang.RuntimeException
13: astore 3
start local 3 14: new java.util.ServiceConfigurationError
dup
15: ldc "Failed to instantiate default LoggerFinder"
aload 3
16: invokespecial java.util.ServiceConfigurationError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 17: StackMap locals:
StackMap stack:
aload 2
ifnonnull 19
18: new jdk.internal.logger.DefaultLoggerFinder
dup
invokespecial jdk.internal.logger.DefaultLoggerFinder.<init>:()V
astore 2
19: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 20 0 sm Ljava/lang/SecurityManager;
3 4 1 iterator Ljava/util/Iterator<Ljdk/internal/logger/DefaultLoggerFinder;>;
9 20 1 iterator Ljava/util/Iterator<Ljdk/internal/logger/DefaultLoggerFinder;>;
5 9 2 pa Ljava/security/PrivilegedAction<Ljava/util/Iterator<Ljdk/internal/logger/DefaultLoggerFinder;>;>;
10 20 2 result Ljdk/internal/logger/DefaultLoggerFinder;
14 17 3 x Ljava/lang/RuntimeException;
Exception table:
from to target type
10 12 13 Class java.lang.RuntimeException
public static java.lang.System$LoggerFinder getLoggerFinder();
descriptor: ()Ljava/lang/System$LoggerFinder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
getstatic jdk.internal.logger.LoggerFinderLoader.LOGGERFINDER_PERMISSION:Ljava/lang/RuntimePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
invokestatic jdk.internal.logger.LoggerFinderLoader.service:()Ljava/lang/System$LoggerFinder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 sm Ljava/lang/SecurityManager;
private static java.util.Iterator lambda$0();
descriptor: ()Ljava/util/Iterator;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljava/lang/System$LoggerFinder;
1: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
2: invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
3: invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.util.Iterator lambda$1();
descriptor: ()Ljava/util/Iterator;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/internal/logger/DefaultLoggerFinder;
invokestatic java.util.ServiceLoader.loadInstalled:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "LoggerFinderLoader.java"
NestMembers:
jdk.internal.logger.LoggerFinderLoader$ErrorPolicy
InnerClasses:
public abstract Logger = java.lang.System$Logger of java.lang.System
public final Level = java.lang.System$Logger$Level of java.lang.System$Logger
public abstract LoggerFinder = java.lang.System$LoggerFinder of java.lang.System
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private final ErrorPolicy = jdk.internal.logger.LoggerFinderLoader$ErrorPolicy of jdk.internal.logger.LoggerFinderLoader