public abstract class org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager extends org.apache.logging.log4j.core.appender.AbstractManager implements java.io.Flushable
{
private final java.util.ArrayList buffer;
private final int bufferSize;
private final org.apache.logging.log4j.core.Layout layout;
private boolean running;
protected static org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager getManager(java.lang.String, org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager$AbstractFactoryData, org.apache.logging.log4j.core.appender.ManagerFactory)
{
org.apache.logging.log4j.core.appender.AbstractManager v;
org.apache.logging.log4j.core.appender.ManagerFactory v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager$AbstractFactoryData v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager$AbstractFactoryData;
v := @parameter: org.apache.logging.log4j.core.appender.ManagerFactory;
v = staticinvoke <org.apache.logging.log4j.core.appender.AbstractManager: org.apache.logging.log4j.core.appender.AbstractManager getManager(java.lang.String,org.apache.logging.log4j.core.appender.ManagerFactory,java.lang.Object)>(v, v, v);
return v;
}
protected void <init>(java.lang.String, int)
{
int v;
java.lang.String v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: java.lang.String;
v := @parameter: int;
specialinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void <init>(java.lang.String,int,org.apache.logging.log4j.core.Layout)>(v, v, null);
return;
}
protected void <init>(java.lang.String, int, org.apache.logging.log4j.core.Layout)
{
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
int v;
java.lang.String v;
org.apache.logging.log4j.core.Layout v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: org.apache.logging.log4j.core.Layout;
specialinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void <init>(java.lang.String,int,org.apache.logging.log4j.core.Layout,org.apache.logging.log4j.core.config.Configuration)>(v, v, v, null);
return;
}
protected void <init>(java.lang.String, int, org.apache.logging.log4j.core.Layout, org.apache.logging.log4j.core.config.Configuration)
{
org.apache.logging.log4j.core.LoggerContext v;
java.util.ArrayList v;
org.apache.logging.log4j.core.config.Configuration v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
int v, v;
java.lang.String v;
org.apache.logging.log4j.core.Layout v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: org.apache.logging.log4j.core.Layout;
v := @parameter: org.apache.logging.log4j.core.config.Configuration;
if v == null goto label;
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.Configuration: org.apache.logging.log4j.core.LoggerContext getLoggerContext()>();
goto label;
label:
v = null;
label:
specialinvoke v.<org.apache.logging.log4j.core.appender.AbstractManager: void <init>(org.apache.logging.log4j.core.LoggerContext,java.lang.String)>(v, v);
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: int bufferSize> = v;
v = new java.util.ArrayList;
v = v + 1;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.util.ArrayList buffer> = v;
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: org.apache.logging.log4j.core.Layout layout> = v;
return;
}
protected void buffer(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.LogEvent v, v;
java.util.ArrayList v, v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
int v, v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.util.ArrayList buffer>;
v = interfaceinvoke v.<org.apache.logging.log4j.core.LogEvent: org.apache.logging.log4j.core.LogEvent toImmutable()>();
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.util.ArrayList buffer>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: int bufferSize>;
if v >= v goto label;
v = interfaceinvoke v.<org.apache.logging.log4j.core.LogEvent: boolean isEndOfBatch()>();
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void flush()>();
label:
return;
}
protected abstract boolean commitAndClose();
protected abstract void connectAndStart();
public final synchronized void flush()
{
java.lang.Throwable v;
java.util.Iterator v;
java.io.Serializable v;
java.util.ArrayList v, v, v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
java.lang.Object v;
org.apache.logging.log4j.core.Layout v, v;
boolean v, v, v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean isRunning()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean isBuffered()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void connectAndStart()>();
label:
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.util.ArrayList buffer>;
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: org.apache.logging.log4j.core.Layout layout>;
if v == null goto label;
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: org.apache.logging.log4j.core.Layout layout>;
v = interfaceinvoke v.<org.apache.logging.log4j.core.Layout: java.io.Serializable toSerializable(org.apache.logging.log4j.core.LogEvent)>(v);
goto label;
label:
v = null;
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void writeInternal(org.apache.logging.log4j.core.LogEvent,java.io.Serializable)>(v, v);
goto label;
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean commitAndClose()>();
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.util.ArrayList buffer>;
virtualinvoke v.<java.util.ArrayList: void clear()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean commitAndClose()>();
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.util.ArrayList buffer>;
virtualinvoke v.<java.util.ArrayList: void clear()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected boolean isBuffered()
{
int v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: int bufferSize>;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final boolean isRunning()
{
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v = v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean running>;
return v;
}
public final boolean releaseSub(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.TimeUnit v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
long v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean shutdown()>();
return v;
}
public final synchronized boolean shutdown()
{
java.lang.Throwable v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
java.lang.Exception v;
boolean v, v, v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v = 1;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void flush()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean isRunning()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean shutdownInternal()>();
v = 1 & v;
label:
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean running> = 0;
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void logWarn(java.lang.String,java.lang.Throwable)>("Caught exception while performing database shutdown operations", v);
v = 0;
label:
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean running> = 0;
goto label;
label:
v := @caughtexception;
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean running> = 0;
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected abstract boolean shutdownInternal() throws java.lang.Exception;
public final synchronized void startup()
{
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
java.lang.Exception v;
boolean v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean isRunning()>();
if v != 0 goto label;
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void startupInternal()>();
v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean running> = 1;
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void logError(java.lang.String,java.lang.Throwable)>("Could not perform database startup operations", v);
label:
return;
catch java.lang.Exception from label to label with label;
}
protected abstract void startupInternal() throws java.lang.Exception;
public final java.lang.String toString()
{
java.lang.String v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: java.lang.String getName()>();
return v;
}
public final synchronized void write(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.LogEvent v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void write(org.apache.logging.log4j.core.LogEvent,java.io.Serializable)>(v, null);
return;
}
public final synchronized void write(org.apache.logging.log4j.core.LogEvent, java.io.Serializable)
{
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
org.apache.logging.log4j.core.LogEvent v;
boolean v;
java.io.Serializable v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v := @parameter: java.io.Serializable;
v = virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean isBuffered()>();
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void buffer(org.apache.logging.log4j.core.LogEvent)>(v);
goto label;
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void writeThrough(org.apache.logging.log4j.core.LogEvent,java.io.Serializable)>(v, v);
label:
return;
}
protected void writeInternal(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.LogEvent v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void writeInternal(org.apache.logging.log4j.core.LogEvent,java.io.Serializable)>(v, null);
return;
}
protected abstract void writeInternal(org.apache.logging.log4j.core.LogEvent, java.io.Serializable);
protected void writeThrough(org.apache.logging.log4j.core.LogEvent, java.io.Serializable)
{
java.lang.Throwable v;
org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager v;
org.apache.logging.log4j.core.LogEvent v;
java.io.Serializable v;
v := @this: org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v := @parameter: java.io.Serializable;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void connectAndStart()>();
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: void writeInternal(org.apache.logging.log4j.core.LogEvent,java.io.Serializable)>(v, v);
label:
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean commitAndClose()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager: boolean commitAndClose()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
}