public class org.apache.logging.log4j.core.impl.ReusableLogEventFactory implements org.apache.logging.log4j.core.impl.LogEventFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.logging.log4j.core.impl.ReusableLogEventFactory
  super_class: java.lang.Object
{
  private static final org.apache.logging.log4j.core.async.ThreadNameCachingStrategy THREAD_NAME_CACHING_STRATEGY;
    descriptor: Lorg/apache/logging/log4j/core/async/ThreadNameCachingStrategy;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.logging.log4j.core.util.Clock CLOCK;
    descriptor: Lorg/apache/logging/log4j/core/util/Clock;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.ThreadLocal<org.apache.logging.log4j.core.impl.MutableLogEvent> mutableLogEventThreadLocal;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/lang/ThreadLocal<Lorg/apache/logging/log4j/core/impl/MutableLogEvent;>;

  private final org.apache.logging.log4j.core.ContextDataInjector injector;
    descriptor: Lorg/apache/logging/log4j/core/ContextDataInjector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 38
            invokestatic org.apache.logging.log4j.core.async.ThreadNameCachingStrategy.create:()Lorg/apache/logging/log4j/core/async/ThreadNameCachingStrategy;
            putstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.THREAD_NAME_CACHING_STRATEGY:Lorg/apache/logging/log4j/core/async/ThreadNameCachingStrategy;
         1: .line 39
            invokestatic org.apache.logging.log4j.core.util.ClockFactory.getClock:()Lorg/apache/logging/log4j/core/util/Clock;
            putstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.CLOCK:Lorg/apache/logging/log4j/core/util/Clock;
         2: .line 41
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.mutableLogEventThreadLocal:Ljava/lang/ThreadLocal;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.impl.ReusableLogEventFactory this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            aload 0 /* this */
            invokestatic org.apache.logging.log4j.core.impl.ContextDataInjectorFactory.createInjector:()Lorg/apache/logging/log4j/core/ContextDataInjector;
            putfield org.apache.logging.log4j.core.impl.ReusableLogEventFactory.injector:Lorg/apache/logging/log4j/core/ContextDataInjector;
         2: .line 37
            return
        end local 0 // org.apache.logging.log4j.core.impl.ReusableLogEventFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/logging/log4j/core/impl/ReusableLogEventFactory;

  public org.apache.logging.log4j.core.LogEvent createEvent(java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.util.List<org.apache.logging.log4j.core.config.Property>, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/message/Message;Ljava/util/List;Ljava/lang/Throwable;)Lorg/apache/logging/log4j/core/LogEvent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=8
        start local 0 // org.apache.logging.log4j.core.impl.ReusableLogEventFactory this
        start local 1 // java.lang.String loggerName
        start local 2 // org.apache.logging.log4j.Marker marker
        start local 3 // java.lang.String fqcn
        start local 4 // org.apache.logging.log4j.Level level
        start local 5 // org.apache.logging.log4j.message.Message message
        start local 6 // java.util.List properties
        start local 7 // java.lang.Throwable t
         0: .line 60
            getstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.mutableLogEventThreadLocal:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.impl.MutableLogEvent
            astore 8 /* result */
        start local 8 // org.apache.logging.log4j.core.impl.MutableLogEvent result
         1: .line 61
            aload 8 /* result */
            ifnull 2
            aload 8 /* result */
            getfield org.apache.logging.log4j.core.impl.MutableLogEvent.reserved:Z
            ifeq 11
         2: .line 62
      StackMap locals: org.apache.logging.log4j.core.impl.MutableLogEvent
      StackMap stack:
            aload 8 /* result */
            ifnonnull 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 9 /* initThreadLocal */
        start local 9 // boolean initThreadLocal
         5: .line 63
            new org.apache.logging.log4j.core.impl.MutableLogEvent
            dup
            invokespecial org.apache.logging.log4j.core.impl.MutableLogEvent.<init>:()V
            astore 8 /* result */
         6: .line 66
            aload 8 /* result */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getId:()J
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setThreadId:(J)V
         7: .line 67
            aload 8 /* result */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setThreadName:(Ljava/lang/String;)V
         8: .line 68
            aload 8 /* result */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getPriority:()I
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setThreadPriority:(I)V
         9: .line 69
            iload 9 /* initThreadLocal */
            ifeq 11
        10: .line 70
            getstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.mutableLogEventThreadLocal:Ljava/lang/ThreadLocal;
            aload 8 /* result */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        end local 9 // boolean initThreadLocal
        11: .line 73
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            iconst_1
            putfield org.apache.logging.log4j.core.impl.MutableLogEvent.reserved:Z
        12: .line 74
            aload 8 /* result */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.clear:()V
        13: .line 76
            aload 8 /* result */
            aload 1 /* loggerName */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setLoggerName:(Ljava/lang/String;)V
        14: .line 77
            aload 8 /* result */
            aload 2 /* marker */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setMarker:(Lorg/apache/logging/log4j/Marker;)V
        15: .line 78
            aload 8 /* result */
            aload 3 /* fqcn */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setLoggerFqcn:(Ljava/lang/String;)V
        16: .line 79
            aload 8 /* result */
            aload 4 /* level */
            ifnonnull 17
            getstatic org.apache.logging.log4j.Level.OFF:Lorg/apache/logging/log4j/Level;
            goto 18
      StackMap locals:
      StackMap stack: org.apache.logging.log4j.core.impl.MutableLogEvent
        17: aload 4 /* level */
      StackMap locals: org.apache.logging.log4j.core.impl.ReusableLogEventFactory java.lang.String org.apache.logging.log4j.Marker java.lang.String org.apache.logging.log4j.Level org.apache.logging.log4j.message.Message java.util.List java.lang.Throwable org.apache.logging.log4j.core.impl.MutableLogEvent
      StackMap stack: org.apache.logging.log4j.core.impl.MutableLogEvent org.apache.logging.log4j.Level
        18: invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setLevel:(Lorg/apache/logging/log4j/Level;)V
        19: .line 80
            aload 8 /* result */
            aload 5 /* message */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setMessage:(Lorg/apache/logging/log4j/message/Message;)V
        20: .line 81
            aload 8 /* result */
            getstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.CLOCK:Lorg/apache/logging/log4j/core/util/Clock;
            invokestatic org.apache.logging.log4j.core.impl.Log4jLogEvent.getNanoClock:()Lorg/apache/logging/log4j/core/util/NanoClock;
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.initTime:(Lorg/apache/logging/log4j/core/util/Clock;Lorg/apache/logging/log4j/core/util/NanoClock;)V
        21: .line 82
            aload 8 /* result */
            aload 7 /* t */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setThrown:(Ljava/lang/Throwable;)V
        22: .line 83
            aload 8 /* result */
            aload 0 /* this */
            getfield org.apache.logging.log4j.core.impl.ReusableLogEventFactory.injector:Lorg/apache/logging/log4j/core/ContextDataInjector;
            aload 6 /* properties */
            aload 8 /* result */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.getContextData:()Lorg/apache/logging/log4j/util/ReadOnlyStringMap;
            checkcast org.apache.logging.log4j.util.StringMap
            invokeinterface org.apache.logging.log4j.core.ContextDataInjector.injectContextData:(Ljava/util/List;Lorg/apache/logging/log4j/util/StringMap;)Lorg/apache/logging/log4j/util/StringMap;
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setContextData:(Lorg/apache/logging/log4j/util/StringMap;)V
        23: .line 84
            aload 8 /* result */
            invokestatic org.apache.logging.log4j.ThreadContext.getDepth:()I
            ifne 24
            getstatic org.apache.logging.log4j.ThreadContext.EMPTY_STACK:Lorg/apache/logging/log4j/spi/ThreadContextStack;
            goto 25
      StackMap locals:
      StackMap stack: org.apache.logging.log4j.core.impl.MutableLogEvent
        24: invokestatic org.apache.logging.log4j.ThreadContext.cloneStack:()Lorg/apache/logging/log4j/ThreadContext$ContextStack;
      StackMap locals: org.apache.logging.log4j.core.impl.ReusableLogEventFactory java.lang.String org.apache.logging.log4j.Marker java.lang.String org.apache.logging.log4j.Level org.apache.logging.log4j.message.Message java.util.List java.lang.Throwable org.apache.logging.log4j.core.impl.MutableLogEvent
      StackMap stack: org.apache.logging.log4j.core.impl.MutableLogEvent org.apache.logging.log4j.ThreadContext$ContextStack
        25: invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setContextStack:(Lorg/apache/logging/log4j/ThreadContext$ContextStack;)V
        26: .line 86
            getstatic org.apache.logging.log4j.core.impl.ReusableLogEventFactory.THREAD_NAME_CACHING_STRATEGY:Lorg/apache/logging/log4j/core/async/ThreadNameCachingStrategy;
            getstatic org.apache.logging.log4j.core.async.ThreadNameCachingStrategy.UNCACHED:Lorg/apache/logging/log4j/core/async/ThreadNameCachingStrategy;
            if_acmpne 29
        27: .line 87
            aload 8 /* result */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setThreadName:(Ljava/lang/String;)V
        28: .line 88
            aload 8 /* result */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getPriority:()I
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.setThreadPriority:(I)V
        29: .line 90
      StackMap locals:
      StackMap stack:
            aload 8 /* result */
            areturn
        end local 8 // org.apache.logging.log4j.core.impl.MutableLogEvent result
        end local 7 // java.lang.Throwable t
        end local 6 // java.util.List properties
        end local 5 // org.apache.logging.log4j.message.Message message
        end local 4 // org.apache.logging.log4j.Level level
        end local 3 // java.lang.String fqcn
        end local 2 // org.apache.logging.log4j.Marker marker
        end local 1 // java.lang.String loggerName
        end local 0 // org.apache.logging.log4j.core.impl.ReusableLogEventFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   30     0             this  Lorg/apache/logging/log4j/core/impl/ReusableLogEventFactory;
            0   30     1       loggerName  Ljava/lang/String;
            0   30     2           marker  Lorg/apache/logging/log4j/Marker;
            0   30     3             fqcn  Ljava/lang/String;
            0   30     4            level  Lorg/apache/logging/log4j/Level;
            0   30     5          message  Lorg/apache/logging/log4j/message/Message;
            0   30     6       properties  Ljava/util/List<Lorg/apache/logging/log4j/core/config/Property;>;
            0   30     7                t  Ljava/lang/Throwable;
            1   30     8           result  Lorg/apache/logging/log4j/core/impl/MutableLogEvent;
            5   11     9  initThreadLocal  Z
    Signature: (Ljava/lang/String;Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/message/Message;Ljava/util/List<Lorg/apache/logging/log4j/core/config/Property;>;Ljava/lang/Throwable;)Lorg/apache/logging/log4j/core/LogEvent;
    MethodParameters:
            Name  Flags
      loggerName  final
      marker      final
      fqcn        final
      level       final
      message     final
      properties  final
      t           final

  public static void release(org.apache.logging.log4j.core.LogEvent);
    descriptor: (Lorg/apache/logging/log4j/core/LogEvent;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.logging.log4j.core.LogEvent logEvent
         0: .line 100
            aload 0 /* logEvent */
            instanceof org.apache.logging.log4j.core.impl.MutableLogEvent
            ifeq 4
         1: .line 101
            aload 0 /* logEvent */
            checkcast org.apache.logging.log4j.core.impl.MutableLogEvent
            astore 1 /* mutableLogEvent */
        start local 1 // org.apache.logging.log4j.core.impl.MutableLogEvent mutableLogEvent
         2: .line 102
            aload 1 /* mutableLogEvent */
            invokevirtual org.apache.logging.log4j.core.impl.MutableLogEvent.clear:()V
         3: .line 103
            aload 1 /* mutableLogEvent */
            iconst_0
            putfield org.apache.logging.log4j.core.impl.MutableLogEvent.reserved:Z
        end local 1 // org.apache.logging.log4j.core.impl.MutableLogEvent mutableLogEvent
         4: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.logging.log4j.core.LogEvent logEvent
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0         logEvent  Lorg/apache/logging/log4j/core/LogEvent;
            2    4     1  mutableLogEvent  Lorg/apache/logging/log4j/core/impl/MutableLogEvent;
    MethodParameters:
          Name  Flags
      logEvent  final
}
SourceFile: "ReusableLogEventFactory.java"
InnerClasses:
  public abstract ContextStack = org.apache.logging.log4j.ThreadContext$ContextStack of org.apache.logging.log4j.ThreadContext