final class org.apache.logging.log4j.core.async.DisruptorUtil
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.apache.logging.log4j.core.async.DisruptorUtil
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 int RINGBUFFER_MIN_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private static final int RINGBUFFER_DEFAULT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 262144
private static final int RINGBUFFER_NO_GC_DEFAULT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
static final boolean ASYNC_LOGGER_SYNCHRONIZE_ENQUEUE_WHEN_QUEUE_FULL;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean ASYNC_CONFIG_SYNCHRONIZE_ENQUEUE_WHEN_QUEUE_FULL;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, 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.core.async.DisruptorUtil.LOGGER:Lorg/apache/logging/log4j/Logger;
1: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
2: ldc "AsyncLogger.SynchronizeEnqueueWhenQueueFull"
iconst_1
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;Z)Z
3: putstatic org.apache.logging.log4j.core.async.DisruptorUtil.ASYNC_LOGGER_SYNCHRONIZE_ENQUEUE_WHEN_QUEUE_FULL:Z
4: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
5: ldc "AsyncLoggerConfig.SynchronizeEnqueueWhenQueueFull"
iconst_1
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getBooleanProperty:(Ljava/lang/String;Z)Z
6: putstatic org.apache.logging.log4j.core.async.DisruptorUtil.ASYNC_CONFIG_SYNCHRONIZE_ENQUEUE_WHEN_QUEUE_FULL:Z
7: return
LocalVariableTable:
Start End Slot Name Signature
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/core/async/DisruptorUtil;
static long getTimeout(java.lang.String, long);
descriptor: (Ljava/lang/String;J)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
aload 0
lload 1
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getLongProperty:(Ljava/lang/String;J)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 propertyName Ljava/lang/String;
0 1 1 defaultTimeout J
MethodParameters:
Name Flags
propertyName final
defaultTimeout final
static com.lmax.disruptor.WaitStrategy createWaitStrategy(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/lmax/disruptor/WaitStrategy;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
ldc "AsyncLogger."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 2
1: ldc "AsyncLogger.Timeout"
goto 3
2: StackMap locals:
StackMap stack:
ldc "AsyncLoggerConfig.Timeout"
3: StackMap locals:
StackMap stack: java.lang.String
astore 1
start local 1 4: aload 1
ldc 10
invokestatic org.apache.logging.log4j.core.async.DisruptorUtil.getTimeout:(Ljava/lang/String;J)J
lstore 2
start local 2 5: aload 0
lload 2
invokestatic org.apache.logging.log4j.core.async.DisruptorUtil.createWaitStrategy:(Ljava/lang/String;J)Lcom/lmax/disruptor/WaitStrategy;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 propertyName Ljava/lang/String;
4 6 1 key Ljava/lang/String;
5 6 2 timeoutMillis J
MethodParameters:
Name Flags
propertyName final
static com.lmax.disruptor.WaitStrategy createWaitStrategy(java.lang.String, long);
descriptor: (Ljava/lang/String;J)Lcom/lmax/disruptor/WaitStrategy;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
aload 0
ldc "TIMEOUT"
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: getstatic org.apache.logging.log4j.core.async.DisruptorUtil.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "property {}={}"
aload 0
aload 3
invokeinterface org.apache.logging.log4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 3
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 4
start local 4 3: aload 4
dup
astore 5
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 5
-595928767: 4
-349268549: 5
63294573: 6
78984887: 7
84436845: 8
default: 14
}
StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
4: aload 5
ldc "TIMEOUT"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
goto 14
StackMap locals:
StackMap stack:
5: aload 5
ldc "BUSYSPIN"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
goto 14
StackMap locals:
StackMap stack:
6: aload 5
ldc "BLOCK"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
goto 14
StackMap locals:
StackMap stack:
7: aload 5
ldc "SLEEP"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
goto 14
StackMap locals:
StackMap stack:
8: aload 5
ldc "YIELD"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 10
goto 14
9: StackMap locals:
StackMap stack:
new com.lmax.disruptor.SleepingWaitStrategy
dup
invokespecial com.lmax.disruptor.SleepingWaitStrategy.<init>:()V
areturn
10: StackMap locals:
StackMap stack:
new com.lmax.disruptor.YieldingWaitStrategy
dup
invokespecial com.lmax.disruptor.YieldingWaitStrategy.<init>:()V
areturn
11: StackMap locals:
StackMap stack:
new com.lmax.disruptor.BlockingWaitStrategy
dup
invokespecial com.lmax.disruptor.BlockingWaitStrategy.<init>:()V
areturn
12: StackMap locals:
StackMap stack:
new com.lmax.disruptor.BusySpinWaitStrategy
dup
invokespecial com.lmax.disruptor.BusySpinWaitStrategy.<init>:()V
areturn
13: StackMap locals:
StackMap stack:
new com.lmax.disruptor.TimeoutBlockingWaitStrategy
dup
lload 1
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial com.lmax.disruptor.TimeoutBlockingWaitStrategy.<init>:(JLjava/util/concurrent/TimeUnit;)V
areturn
14: StackMap locals:
StackMap stack:
new com.lmax.disruptor.TimeoutBlockingWaitStrategy
dup
lload 1
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial com.lmax.disruptor.TimeoutBlockingWaitStrategy.<init>:(JLjava/util/concurrent/TimeUnit;)V
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 propertyName Ljava/lang/String;
0 15 1 timeoutMillis J
1 15 3 strategy Ljava/lang/String;
3 15 4 strategyUp Ljava/lang/String;
MethodParameters:
Name Flags
propertyName final
timeoutMillis final
static int calculateRingBufferSize(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: getstatic org.apache.logging.log4j.core.util.Constants.ENABLE_THREADLOCALS:Z
ifeq 1
sipush 4096
goto 2
StackMap locals:
StackMap stack:
1: ldc 262144
StackMap locals:
StackMap stack: int
2: istore 1
start local 1 3: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
aload 0
4: iload 1
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
5: invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getStringProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 6: aload 2
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 7: iload 3
sipush 128
if_icmpge 12
8: sipush 128
istore 3
9: getstatic org.apache.logging.log4j.core.async.DisruptorUtil.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Invalid RingBufferSize {}, using minimum size {}."
aload 2
10: sipush 128
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
11: invokeinterface org.apache.logging.log4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
12: StackMap locals: int java.lang.String int
StackMap stack:
iload 3
istore 1
end local 3 13: goto 16
StackMap locals: java.lang.String int java.lang.String
StackMap stack: java.lang.Exception
14: pop
15: getstatic org.apache.logging.log4j.core.async.DisruptorUtil.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Invalid RingBufferSize {}, using default size {}."
aload 2
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.apache.logging.log4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
iload 1
invokestatic org.apache.logging.log4j.core.util.Integers.ceilingNextPowerOfTwo:(I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 propertyName Ljava/lang/String;
3 17 1 ringBufferSize I
6 17 2 userPreferredRBSize Ljava/lang/String;
7 13 3 size I
Exception table:
from to target type
6 13 14 Class java.lang.Exception
MethodParameters:
Name Flags
propertyName final
static com.lmax.disruptor.ExceptionHandler<org.apache.logging.log4j.core.async.RingBufferLogEvent> getAsyncLoggerExceptionHandler();
descriptor: ()Lcom/lmax/disruptor/ExceptionHandler;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
ldc "AsyncLogger.ExceptionHandler"
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getStringProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnonnull 3
2: new org.apache.logging.log4j.core.async.AsyncLoggerDefaultExceptionHandler
dup
invokespecial org.apache.logging.log4j.core.async.AsyncLoggerDefaultExceptionHandler.<init>:()V
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokestatic org.apache.logging.log4j.core.util.Loader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
4: astore 1
start local 1 5: aload 1
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast com.lmax.disruptor.ExceptionHandler
6: areturn
end local 1 7: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 8: getstatic org.apache.logging.log4j.core.async.DisruptorUtil.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Invalid AsyncLogger.ExceptionHandler value: error creating {}: "
aload 0
aload 1
invokeinterface org.apache.logging.log4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
9: new org.apache.logging.log4j.core.async.AsyncLoggerDefaultExceptionHandler
dup
invokespecial org.apache.logging.log4j.core.async.AsyncLoggerDefaultExceptionHandler.<init>:()V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 10 0 cls Ljava/lang/String;
5 7 1 klass Ljava/lang/Class<+Lcom/lmax/disruptor/ExceptionHandler<Lorg/apache/logging/log4j/core/async/RingBufferLogEvent;>;>;
8 10 1 ignored Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.Exception
Signature: ()Lcom/lmax/disruptor/ExceptionHandler<Lorg/apache/logging/log4j/core/async/RingBufferLogEvent;>;
static com.lmax.disruptor.ExceptionHandler<org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor$Log4jEventWrapper> getAsyncLoggerConfigExceptionHandler();
descriptor: ()Lcom/lmax/disruptor/ExceptionHandler;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
ldc "AsyncLoggerConfig.ExceptionHandler"
invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getStringProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 0
start local 0 1: aload 0
ifnonnull 3
2: new org.apache.logging.log4j.core.async.AsyncLoggerConfigDefaultExceptionHandler
dup
invokespecial org.apache.logging.log4j.core.async.AsyncLoggerConfigDefaultExceptionHandler.<init>:()V
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
invokestatic org.apache.logging.log4j.core.util.Loader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
4: astore 1
start local 1 5: aload 1
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast com.lmax.disruptor.ExceptionHandler
6: areturn
end local 1 7: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 8: getstatic org.apache.logging.log4j.core.async.DisruptorUtil.LOGGER:Lorg/apache/logging/log4j/Logger;
ldc "Invalid AsyncLoggerConfig.ExceptionHandler value: error creating {}: "
aload 0
aload 1
invokeinterface org.apache.logging.log4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
9: new org.apache.logging.log4j.core.async.AsyncLoggerConfigDefaultExceptionHandler
dup
invokespecial org.apache.logging.log4j.core.async.AsyncLoggerConfigDefaultExceptionHandler.<init>:()V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 10 0 cls Ljava/lang/String;
5 7 1 klass Ljava/lang/Class<+Lcom/lmax/disruptor/ExceptionHandler<Lorg/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor$Log4jEventWrapper;>;>;
8 10 1 ignored Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.Exception
Signature: ()Lcom/lmax/disruptor/ExceptionHandler<Lorg/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor$Log4jEventWrapper;>;
public static long getExecutorThreadId(java.util.concurrent.ExecutorService);
descriptor: (Ljava/util/concurrent/ExecutorService;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
new org.apache.logging.log4j.core.async.DisruptorUtil$1
dup
invokespecial org.apache.logging.log4j.core.async.DisruptorUtil$1.<init>:()V
invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
astore 1
start local 1 1: aload 1
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
2: lreturn
3: StackMap locals: java.util.concurrent.ExecutorService java.util.concurrent.Future
StackMap stack: java.lang.Exception
astore 2
start local 2 4: new java.lang.IllegalStateException
dup
ldc "Could not obtain executor thread Id. Giving up to avoid the risk of application deadlock."
aload 2
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 executor Ljava/util/concurrent/ExecutorService;
1 5 1 result Ljava/util/concurrent/Future<Ljava/lang/Long;>;
4 5 2 ex Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
MethodParameters:
Name Flags
executor final
}
SourceFile: "DisruptorUtil.java"
NestMembers:
org.apache.logging.log4j.core.async.DisruptorUtil$1
InnerClasses:
public Log4jEventWrapper = org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor$Log4jEventWrapper of org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor
org.apache.logging.log4j.core.async.DisruptorUtil$1