final class com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider implements java.util.function.Function<java.lang.String, com.oracle.truffle.api.TruffleLogger>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
super_class: java.lang.Object
{
private final java.lang.String logFile;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.lang.Object loggers;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile com.oracle.truffle.polyglot.PolyglotEngineImpl engine;
descriptor: Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.logging.Handler logHandler;
descriptor: Ljava/util/logging/Handler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, java.util.logging.Level> logLevels;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
void <init>(java.util.logging.Handler, java.util.Map<java.lang.String, java.util.logging.Level>, java.lang.String);
descriptor: (Ljava/util/logging/Handler;Ljava/util/Map;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logHandler:Ljava/util/logging/Handler;
2: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logLevels:Ljava/util/Map;
3: aload 0
aload 3
putfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logFile:Ljava/lang/String;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
0 5 1 logHandler Ljava/util/logging/Handler;
0 5 2 logLevels Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
0 5 3 logFile Ljava/lang/String;
Signature: (Ljava/util/logging/Handler;Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
logHandler
logLevels
logFile
public com.oracle.truffle.api.TruffleLogger apply(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.loggers:Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 22
2: aload 0
dup
astore 3
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.loggers:Ljava/lang/Object;
astore 2
4: aload 2
ifnonnull 18
5: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
ifnull 10
6: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logHandler:Ljava/util/logging/Handler;
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.resolveHandler:(Ljava/util/logging/Handler;)Ljava/util/logging/Handler;
astore 6
start local 6 7: aload 6
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
iconst_0
ldc "graal"
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
iconst_1
anewarray java.util.logging.Level
dup
iconst_0
getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
aastore
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCacheImpl.newEngineLoggerCache:(Ljava/util/logging/Handler;Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;ZLjava/util/Set;[Ljava/util/logging/Level;)Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCacheImpl;
astore 4
start local 4 8: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logLevels:Ljava/util/Map;
astore 5
end local 6 start local 5 9: goto 16
end local 5 end local 4 10: StackMap locals: java.lang.Object com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider
StackMap stack:
getstatic com.oracle.truffle.polyglot.PolyglotEngineImpl.ALLOW_IO:Z
ifeq 13
aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logFile:Ljava/lang/String;
ifnull 13
11: aload 0
getfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.logFile:Ljava/lang/String;
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.getFileHandler:(Ljava/lang/String;)Ljava/util/logging/Handler;
astore 6
start local 6 12: goto 14
end local 6 13: StackMap locals:
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.createDefaultHandler:(Ljava/io/OutputStream;)Ljava/util/logging/Handler;
astore 6
start local 6 14: StackMap locals: com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider top top java.util.logging.Handler
StackMap stack:
aload 6
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCacheImpl.newFallBackLoggerCache:(Ljava/util/logging/Handler;)Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCacheImpl;
astore 4
start local 4 15: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
astore 5
end local 6 start local 5 16: StackMap locals: com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider java.lang.String java.lang.Object com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCache java.util.Map
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 4
aload 5
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.createEngineLoggers:(Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
astore 2
17: aload 0
aload 2
putfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.loggers:Ljava/lang/Object;
end local 5 end local 4 18: StackMap locals:
StackMap stack:
aload 3
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 3
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.polyglot.EngineAccessor.LANGUAGE:Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 1
aconst_null
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLogger:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Lcom/oracle/truffle/api/TruffleLogger;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
0 23 1 loggerId Ljava/lang/String;
1 23 2 loggersCache Ljava/lang/Object;
8 10 4 spi Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCache;
15 18 4 spi Lcom/oracle/truffle/polyglot/PolyglotLoggers$LoggerCache;
9 10 5 levels Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
16 18 5 levels Ljava/util/Map<Ljava/lang/String;Ljava/util/logging/Level;>;
7 9 6 useHandler Ljava/util/logging/Handler;
12 13 6 useHandler Ljava/util/logging/Handler;
14 16 6 useHandler Ljava/util/logging/Handler;
Exception table:
from to target type
3 19 20 any
20 21 20 any
MethodParameters:
Name Flags
loggerId
void setEngine(com.oracle.truffle.polyglot.PolyglotEngineImpl);
descriptor: (Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.engine:Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/polyglot/PolyglotLoggers$EngineLoggerProvider;
0 2 1 engine Lcom/oracle/truffle/polyglot/PolyglotEngineImpl;
MethodParameters:
Name Flags
engine
private static java.util.logging.Handler resolveHandler(java.util.logging.Handler);
descriptor: (Ljava/util/logging/Handler;)Ljava/util/logging/Handler;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.truffle.polyglot.PolyglotLoggers.isDefaultHandler:(Ljava/util/logging/Handler;)Z
ifeq 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
new com.oracle.truffle.polyglot.PolyglotLoggers$SafeHandler
dup
aload 0
invokespecial com.oracle.truffle.polyglot.PolyglotLoggers$SafeHandler.<init>:(Ljava/util/logging/Handler;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 handler Ljava/util/logging/Handler;
MethodParameters:
Name Flags
handler
public java.lang.Object apply(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.String
invokevirtual com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider.apply:(Ljava/lang/String;)Lcom/oracle/truffle/api/TruffleLogger;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/function/Function<Ljava/lang/String;Lcom/oracle/truffle/api/TruffleLogger;>;
SourceFile: "PolyglotLoggers.java"
NestHost: com.oracle.truffle.polyglot.PolyglotLoggers
InnerClasses:
public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
final EngineLoggerProvider = com.oracle.truffle.polyglot.PolyglotLoggers$EngineLoggerProvider of com.oracle.truffle.polyglot.PolyglotLoggers
final LoggerCacheImpl = com.oracle.truffle.polyglot.PolyglotLoggers$LoggerCacheImpl of com.oracle.truffle.polyglot.PolyglotLoggers
private final SafeHandler = com.oracle.truffle.polyglot.PolyglotLoggers$SafeHandler of com.oracle.truffle.polyglot.PolyglotLoggers