public final class org.apache.logging.log4j.spi.ThreadContextMapFactory
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.logging.log4j.spi.ThreadContextMapFactory
super_class: java.lang.Object
{
private static final org.apache.logging.log4j.Logger LOGGER;
descriptor: Lorg/apache/logging/log4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String THREAD_CONTEXT_KEY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "log4j2.threadContextMap"
private static final java.lang.String GC_FREE_THREAD_CONTEXT_KEY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "log4j2.garbagefree.threadContextMap"
private static boolean GcFreeThreadContextKey;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.String ThreadContextMapName;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic org.apache.logging.log4j.status.StatusLogger.getLogger:()Lorg/apache/logging/log4j/status/StatusLogger;
putstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
1: invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.initPrivate:()V
2: return
LocalVariableTable:
Start End Slot Name Signature
public static void init();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=0, args_size=0
0: invokestatic org.apache.logging.log4j.spi.CopyOnWriteSortedArrayThreadContextMap.init:()V
1: invokestatic org.apache.logging.log4j.spi.GarbageFreeSortedArrayThreadContextMap.init:()V
2: invokestatic org.apache.logging.log4j.spi.DefaultThreadContextMap.init:()V
3: invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.initPrivate:()V
4: return
LocalVariableTable:
Start End Slot Name Signature
private static void initPrivate();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
astore 0
start local 0 1: aload 0
ldc "log4j2.threadContextMap"
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getStringProperty:(Ljava/lang/String;)Ljava/lang/String;
putstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.ThreadContextMapName:Ljava/lang/String;
2: aload 0
ldc "log4j2.garbagefree.threadContextMap"
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;)Z
putstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.GcFreeThreadContextKey:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 properties Lorg/apache/logging/log4j/util/PropertiesUtil;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/logging/log4j/spi/ThreadContextMapFactory;
public static org.apache.logging.log4j.spi.ThreadContextMap createThreadContextMap();
descriptor: ()Lorg/apache/logging/log4j/spi/ThreadContextMap;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=0
0: invokestatic org.apache.logging.log4j.util.ProviderUtil.findClassLoader:()Ljava/lang/ClassLoader;
astore 0
start local 0 1: aconst_null
astore 1
start local 1 2: getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.ThreadContextMapName:Ljava/lang/String;
ifnull 11
3: aload 0
getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.ThreadContextMapName:Ljava/lang/String;
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 4: ldc Lorg/apache/logging/log4j/spi/ThreadContextMap;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 11
5: aload 2
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast org.apache.logging.log4j.spi.ThreadContextMap
astore 1
end local 2 6: goto 11
StackMap locals: java.lang.ClassLoader org.apache.logging.log4j.spi.ThreadContextMap
StackMap stack: java.lang.ClassNotFoundException
7: pop
8: getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to locate configured ThreadContextMap {}"
getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.ThreadContextMapName:Ljava/lang/String;
invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;)V
goto 11
9: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 10: getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to create configured ThreadContextMap {}"
getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.ThreadContextMapName:Ljava/lang/String;
aload 2
invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 2 11: StackMap locals:
StackMap stack:
aload 1
ifnonnull 26
invokestatic org.apache.logging.log4j.util.ProviderUtil.hasProviders:()Z
ifeq 26
invokestatic org.apache.logging.log4j.LogManager.getFactory:()Lorg/apache/logging/log4j/spi/LoggerContextFactory;
ifnull 26
12: invokestatic org.apache.logging.log4j.LogManager.getFactory:()Lorg/apache/logging/log4j/spi/LoggerContextFactory;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 2
start local 2 13: invokestatic org.apache.logging.log4j.util.ProviderUtil.getProviders:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 25
StackMap locals: java.lang.ClassLoader org.apache.logging.log4j.spi.ThreadContextMap java.lang.String top java.util.Iterator
StackMap stack:
14: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.logging.log4j.spi.Provider
astore 3
start local 3 15: aload 2
aload 3
invokevirtual org.apache.logging.log4j.spi.Provider.getClassName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
16: aload 3
invokevirtual org.apache.logging.log4j.spi.Provider.loadThreadContextMap:()Ljava/lang/Class;
astore 5
start local 5 17: aload 5
ifnull 25
18: aload 5
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast org.apache.logging.log4j.spi.ThreadContextMap
astore 1
19: goto 26
20: StackMap locals: java.lang.ClassLoader org.apache.logging.log4j.spi.ThreadContextMap java.lang.String org.apache.logging.log4j.spi.Provider java.util.Iterator java.lang.Class
StackMap stack: java.lang.Exception
astore 6
start local 6 21: getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Unable to locate or load configured ThreadContextMap {}"
22: aload 3
invokevirtual org.apache.logging.log4j.spi.Provider.getThreadContextMap:()Ljava/lang/String;
aload 6
23: invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
24: invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.createDefaultThreadContextMap:()Lorg/apache/logging/log4j/spi/ThreadContextMap;
astore 1
end local 6 end local 5 end local 3 25: StackMap locals: java.lang.ClassLoader org.apache.logging.log4j.spi.ThreadContextMap java.lang.String top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 2 26: StackMap locals: java.lang.ClassLoader org.apache.logging.log4j.spi.ThreadContextMap
StackMap stack:
aload 1
ifnonnull 28
27: invokestatic org.apache.logging.log4j.spi.ThreadContextMapFactory.createDefaultThreadContextMap:()Lorg/apache/logging/log4j/spi/ThreadContextMap;
astore 1
28: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 29 0 cl Ljava/lang/ClassLoader;
2 29 1 result Lorg/apache/logging/log4j/spi/ThreadContextMap;
4 6 2 clazz Ljava/lang/Class<*>;
10 11 2 ex Ljava/lang/Exception;
13 26 2 factoryClassName Ljava/lang/String;
15 25 3 provider Lorg/apache/logging/log4j/spi/Provider;
17 25 5 clazz Ljava/lang/Class<+Lorg/apache/logging/log4j/spi/ThreadContextMap;>;
21 25 6 e Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.ClassNotFoundException
3 6 9 Class java.lang.Exception
18 19 20 Class java.lang.Exception
private static org.apache.logging.log4j.spi.ThreadContextMap createDefaultThreadContextMap();
descriptor: ()Lorg/apache/logging/log4j/spi/ThreadContextMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic org.apache.logging.log4j.util.Constants.ENABLE_THREADLOCALS:Z
ifeq 4
1: getstatic org.apache.logging.log4j.spi.ThreadContextMapFactory.GcFreeThreadContextKey:Z
ifeq 3
2: new org.apache.logging.log4j.spi.GarbageFreeSortedArrayThreadContextMap
dup
invokespecial org.apache.logging.log4j.spi.GarbageFreeSortedArrayThreadContextMap.<init>:()V
areturn
3: StackMap locals:
StackMap stack:
new org.apache.logging.log4j.spi.CopyOnWriteSortedArrayThreadContextMap
dup
invokespecial org.apache.logging.log4j.spi.CopyOnWriteSortedArrayThreadContextMap.<init>:()V
areturn
4: StackMap locals:
StackMap stack:
new org.apache.logging.log4j.spi.DefaultThreadContextMap
dup
iconst_1
invokespecial org.apache.logging.log4j.spi.DefaultThreadContextMap.<init>:(Z)V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ThreadContextMapFactory.java"