public final class org.apache.logging.log4j.core.appender.AsyncAppender extends org.apache.logging.log4j.core.appender.AbstractAppender
{
private static final int DEFAULT_QUEUE_SIZE;
private final java.util.concurrent.BlockingQueue queue;
private final int queueSize;
private final boolean blocking;
private final long shutdownTimeout;
private final org.apache.logging.log4j.core.config.Configuration config;
private final org.apache.logging.log4j.core.config.AppenderRef[] appenderRefs;
private final java.lang.String errorRef;
private final boolean includeLocation;
private org.apache.logging.log4j.core.config.AppenderControl errorAppender;
private org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher;
private org.apache.logging.log4j.core.async.AsyncQueueFullPolicy asyncQueueFullPolicy;
private void <init>(java.lang.String, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.config.AppenderRef[], java.lang.String, int, boolean, boolean, long, org.apache.logging.log4j.core.config.Configuration, boolean, org.apache.logging.log4j.core.async.BlockingQueueFactory, org.apache.logging.log4j.core.config.Property[])
{
org.apache.logging.log4j.core.async.BlockingQueueFactory v;
org.apache.logging.log4j.core.Filter v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
org.apache.logging.log4j.core.config.Property[] v;
org.apache.logging.log4j.core.config.AppenderRef[] v;
java.util.concurrent.BlockingQueue v;
long v;
org.apache.logging.log4j.core.config.Configuration v;
int v;
java.lang.String v, v;
boolean v, v, v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: java.lang.String;
v := @parameter: org.apache.logging.log4j.core.Filter;
v := @parameter: org.apache.logging.log4j.core.config.AppenderRef[];
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: long;
v := @parameter: org.apache.logging.log4j.core.config.Configuration;
v := @parameter: boolean;
v := @parameter: org.apache.logging.log4j.core.async.BlockingQueueFactory;
v := @parameter: org.apache.logging.log4j.core.config.Property[];
specialinvoke v.<org.apache.logging.log4j.core.appender.AbstractAppender: void <init>(java.lang.String,org.apache.logging.log4j.core.Filter,org.apache.logging.log4j.core.Layout,boolean,org.apache.logging.log4j.core.config.Property[])>(v, v, null, v, v);
v = interfaceinvoke v.<org.apache.logging.log4j.core.async.BlockingQueueFactory: java.util.concurrent.BlockingQueue create(int)>(v);
v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: int queueSize> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean blocking> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: long shutdownTimeout> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.Configuration config> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderRef[] appenderRefs> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String errorRef> = v;
v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean includeLocation> = v;
return;
}
public void start()
{
org.apache.logging.log4j.Level v;
org.apache.logging.log4j.core.config.AppenderRef[] v;
java.util.ArrayList v;
org.apache.logging.log4j.core.config.Configuration v;
org.apache.logging.log4j.core.config.ConfigurationException v;
java.util.Map v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher v, v;
org.apache.logging.log4j.core.Filter v;
org.apache.logging.log4j.core.config.AppenderControl v, v, v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
org.apache.logging.log4j.core.config.AppenderRef v;
java.util.concurrent.BlockingQueue v;
org.apache.logging.log4j.Logger v, v;
org.apache.logging.log4j.core.async.AsyncQueueFullPolicy v;
java.lang.Object v, v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.Configuration config>;
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.Configuration: java.util.Map getAppenders()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderRef[] appenderRefs>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.apache.logging.log4j.core.config.AppenderRef: java.lang.String getRef()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = new org.apache.logging.log4j.core.config.AppenderControl;
v = virtualinvoke v.<org.apache.logging.log4j.core.config.AppenderRef: org.apache.logging.log4j.Level getLevel()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.config.AppenderRef: org.apache.logging.log4j.core.Filter getFilter()>();
specialinvoke v.<org.apache.logging.log4j.core.config.AppenderControl: void <init>(org.apache.logging.log4j.core.Appender,org.apache.logging.log4j.Level,org.apache.logging.log4j.core.Filter)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("No appender named {} was configured", v);
label:
v = v + 1;
goto label;
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String errorRef>;
if v == null goto label;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String errorRef>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = new org.apache.logging.log4j.core.config.AppenderControl;
specialinvoke v.<org.apache.logging.log4j.core.config.AppenderControl: void <init>(org.apache.logging.log4j.core.Appender,org.apache.logging.log4j.Level,org.apache.logging.log4j.core.Filter)>(v, null, null);
v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderControl errorAppender> = v;
goto label;
label:
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String errorRef>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("Unable to set up error Appender. No appender named {} was configured", v);
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = new org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String getName()>();
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderControl errorAppender>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher: void <init>(java.lang.String,org.apache.logging.log4j.core.config.AppenderControl,java.util.List,java.util.concurrent.BlockingQueue)>(v, v, v, v);
v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher> = v;
goto label;
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String errorRef>;
if v != null goto label;
v = new org.apache.logging.log4j.core.config.ConfigurationException;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("No appenders are available for AsyncAppender \u0001");
specialinvoke v.<org.apache.logging.log4j.core.config.ConfigurationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory: org.apache.logging.log4j.core.async.AsyncQueueFullPolicy create()>();
v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.async.AsyncQueueFullPolicy asyncQueueFullPolicy> = v;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher>;
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher: void start()>();
specialinvoke v.<org.apache.logging.log4j.core.appender.AbstractAppender: void start()>();
return;
}
public boolean stop(long, java.util.concurrent.TimeUnit)
{
long v, v, v, v;
java.lang.Integer v, v;
byte v;
java.lang.Long v;
java.lang.Thread v;
int v, v;
java.lang.String v;
org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
java.util.concurrent.BlockingQueue v, v;
java.util.concurrent.TimeUnit v;
org.apache.logging.log4j.Logger v, v, v, v;
java.lang.InterruptedException v;
org.apache.logging.log4j.core.async.AsyncQueueFullPolicy v, v, v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void setStopping()>();
specialinvoke v.<org.apache.logging.log4j.core.appender.AbstractAppender: boolean stop(long,java.util.concurrent.TimeUnit,boolean)>(v, v, 0);
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.apache.logging.log4j.Logger: void trace(java.lang.String,java.lang.Object)>("AsyncAppender stopping. Queue still has {} events.", v);
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: long shutdownTimeout>;
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher: void stop(long)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String getName()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Object)>("Interrupted while stopping AsyncAppender {}", v);
label:
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.apache.logging.log4j.Logger: void trace(java.lang.String,java.lang.Object)>("AsyncAppender stopped. Queue has {} events.", v);
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.async.AsyncQueueFullPolicy asyncQueueFullPolicy>;
v = staticinvoke <org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy: long getDiscardCount(org.apache.logging.log4j.core.async.AsyncQueueFullPolicy)>(v);
v = v cmp 0L;
if v <= 0 goto label;
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.async.AsyncQueueFullPolicy asyncQueueFullPolicy>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.async.AsyncQueueFullPolicy asyncQueueFullPolicy>;
v = staticinvoke <org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy: long getDiscardCount(org.apache.logging.log4j.core.async.AsyncQueueFullPolicy)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.apache.logging.log4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("AsyncAppender: {} discarded {} events.", v, v);
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void setStopped()>();
return 1;
catch java.lang.InterruptedException from label to label with label;
}
public void append(org.apache.logging.log4j.core.LogEvent)
{
java.lang.IllegalStateException v;
org.apache.logging.log4j.Level v;
long v;
org.apache.logging.log4j.core.LogEvent v;
org.apache.logging.log4j.message.Message v;
int v;
org.apache.logging.log4j.core.async.EventRoute v;
java.lang.String v, v, v, v;
org.apache.logging.log4j.core.impl.Log4jLogEvent v;
boolean v, v, v, v;
org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
org.apache.logging.log4j.core.async.AsyncQueueFullPolicy v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean isStarted()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("AsyncAppender \u is not active");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean includeLocation>;
v = staticinvoke <org.apache.logging.log4j.core.impl.Log4jLogEvent: org.apache.logging.log4j.core.impl.Log4jLogEvent createMemento(org.apache.logging.log4j.core.LogEvent,boolean)>(v, v);
v = interfaceinvoke v.<org.apache.logging.log4j.core.LogEvent: org.apache.logging.log4j.message.Message getMessage()>();
staticinvoke <org.apache.logging.log4j.core.async.InternalAsyncUtil: org.apache.logging.log4j.message.Message makeMessageImmutable(org.apache.logging.log4j.message.Message)>(v);
v = specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean transfer(org.apache.logging.log4j.core.LogEvent)>(v);
if v != 0 goto label;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean blocking>;
if v == 0 goto label;
v = staticinvoke <org.apache.logging.log4j.spi.AbstractLogger: int getRecursionDepth()>();
if v <= 1 goto label;
staticinvoke <org.apache.logging.log4j.core.async.AsyncQueueFullMessageUtil: void logWarningToStatusLogger()>();
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void logMessageInCurrentThread(org.apache.logging.log4j.core.LogEvent)>(v);
goto label;
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.async.AsyncQueueFullPolicy asyncQueueFullPolicy>;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher>;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher: long getId()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.Log4jLogEvent: org.apache.logging.log4j.Level getLevel()>();
v = interfaceinvoke v.<org.apache.logging.log4j.core.async.AsyncQueueFullPolicy: org.apache.logging.log4j.core.async.EventRoute getRoute(long,org.apache.logging.log4j.Level)>(v, v);
virtualinvoke v.<org.apache.logging.log4j.core.async.EventRoute: void logMessage(org.apache.logging.log4j.core.appender.AsyncAppender,org.apache.logging.log4j.core.LogEvent)>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Appender \u is unable to write primary appenders. queue is full");
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void error(java.lang.String)>(v);
specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void logToErrorAppenderIfNecessary(boolean,org.apache.logging.log4j.core.LogEvent)>(0, v);
label:
return;
}
private boolean transfer(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.appender.AsyncAppender v;
java.util.concurrent.BlockingQueue v, v, v;
org.apache.logging.log4j.core.LogEvent v;
boolean v, v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = v instanceof java.util.concurrent.TransferQueue;
if v == 0 goto label;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.TransferQueue: boolean tryTransfer(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: boolean offer(java.lang.Object)>(v);
label:
return v;
}
public void logMessageInCurrentThread(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
java.util.concurrent.BlockingQueue v;
org.apache.logging.log4j.core.LogEvent v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: boolean isEmpty()>();
interfaceinvoke v.<org.apache.logging.log4j.core.LogEvent: void setEndOfBatch(boolean)>(v);
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher>;
virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher: void dispatch(org.apache.logging.log4j.core.LogEvent)>(v);
return;
}
public void logMessageInBackgroundThread(org.apache.logging.log4j.core.LogEvent)
{
java.lang.InterruptedException v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
java.util.concurrent.BlockingQueue v;
org.apache.logging.log4j.core.LogEvent v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
label:
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
interfaceinvoke v.<java.util.concurrent.BlockingQueue: void put(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean handleInterruptedException(org.apache.logging.log4j.core.LogEvent)>(v);
specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void logToErrorAppenderIfNecessary(boolean,org.apache.logging.log4j.core.LogEvent)>(v, v);
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
private boolean handleInterruptedException(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.Logger v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
java.lang.Thread v;
java.util.concurrent.BlockingQueue v;
java.lang.String v;
org.apache.logging.log4j.core.LogEvent v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: boolean offer(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String getName()>();
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Object)>("Interrupted while waiting for a free slot in the AsyncAppender LogEvent-queue {}", v);
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
return v;
}
private void logToErrorAppenderIfNecessary(boolean, org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.config.AppenderControl v, v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
org.apache.logging.log4j.core.LogEvent v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v := @parameter: boolean;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
if v != 0 goto label;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderControl errorAppender>;
if v == null goto label;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderControl errorAppender>;
virtualinvoke v.<org.apache.logging.log4j.core.config.AppenderControl: void callAppender(org.apache.logging.log4j.core.LogEvent)>(v);
label:
return;
}
public static org.apache.logging.log4j.core.appender.AsyncAppender createAppender(org.apache.logging.log4j.core.config.AppenderRef[], java.lang.String, boolean, long, int, java.lang.String, boolean, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.config.Configuration, boolean)
{
org.apache.logging.log4j.core.Filter v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
org.apache.logging.log4j.core.config.AppenderRef[] v;
long v;
org.apache.logging.log4j.core.config.Configuration v;
org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory v;
org.apache.logging.log4j.Logger v, v;
int v;
java.lang.String v, v;
boolean v, v, v;
v := @parameter: org.apache.logging.log4j.core.config.AppenderRef[];
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: long;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: org.apache.logging.log4j.core.Filter;
v := @parameter: org.apache.logging.log4j.core.config.Configuration;
v := @parameter: boolean;
if v != null goto label;
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String)>("No name provided for AsyncAppender");
return null;
label:
if v != null goto label;
v = <org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.Logger LOGGER>;
interfaceinvoke v.<org.apache.logging.log4j.Logger: void error(java.lang.String,java.lang.Object)>("No appender references provided to AsyncAppender {}", v);
label:
v = new org.apache.logging.log4j.core.appender.AsyncAppender;
v = new org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory;
specialinvoke v.<org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory: void <init>()>();
specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender: void <init>(java.lang.String,org.apache.logging.log4j.core.Filter,org.apache.logging.log4j.core.config.AppenderRef[],java.lang.String,int,boolean,boolean,long,org.apache.logging.log4j.core.config.Configuration,boolean,org.apache.logging.log4j.core.async.BlockingQueueFactory,org.apache.logging.log4j.core.config.Property[])>(v, v, v, v, v, v, v, v, v, v, v, null);
return v;
}
public static org.apache.logging.log4j.core.appender.AsyncAppender$Builder newBuilder()
{
org.apache.logging.log4j.core.appender.AsyncAppender$Builder v;
v = new org.apache.logging.log4j.core.appender.AsyncAppender$Builder;
specialinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppender$Builder: void <init>()>();
return v;
}
public java.lang.String[] getAppenderRefStrings()
{
org.apache.logging.log4j.core.appender.AsyncAppender v;
org.apache.logging.log4j.core.config.AppenderRef v;
org.apache.logging.log4j.core.config.AppenderRef[] v, v;
java.lang.String[] v;
int v, v, v;
java.lang.String v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderRef[] appenderRefs>;
v = lengthof v;
v = newarray (java.lang.String)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.config.AppenderRef[] appenderRefs>;
v = v[v];
v = virtualinvoke v.<org.apache.logging.log4j.core.config.AppenderRef: java.lang.String getRef()>();
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public boolean isIncludeLocation()
{
org.apache.logging.log4j.core.appender.AsyncAppender v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean includeLocation>;
return v;
}
public boolean isBlocking()
{
org.apache.logging.log4j.core.appender.AsyncAppender v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: boolean blocking>;
return v;
}
public java.util.List getAppenders()
{
org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher v;
java.util.List v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher dispatcher>;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.AsyncAppenderEventDispatcher: java.util.List getAppenders()>();
return v;
}
public java.lang.String getErrorRef()
{
java.lang.String v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.lang.String errorRef>;
return v;
}
public int getQueueCapacity()
{
int v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: int queueSize>;
return v;
}
public int getQueueRemainingCapacity()
{
int v;
java.util.concurrent.BlockingQueue v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: int remainingCapacity()>();
return v;
}
public int getQueueSize()
{
int v;
java.util.concurrent.BlockingQueue v;
org.apache.logging.log4j.core.appender.AsyncAppender v;
v := @this: org.apache.logging.log4j.core.appender.AsyncAppender;
v = v.<org.apache.logging.log4j.core.appender.AsyncAppender: java.util.concurrent.BlockingQueue queue>;
v = interfaceinvoke v.<java.util.concurrent.BlockingQueue: int size()>();
return v;
}
}