public abstract class org.jboss.logmanager.ExtHandler extends java.util.logging.Handler implements org.jboss.logmanager.handlers.FlushableCloseable
{
private volatile boolean autoFlush;
private volatile boolean enabled;
private volatile boolean closeChildren;
private static final java.util.logging.ErrorManager DEFAULT_ERROR_MANAGER;
protected volatile java.util.logging.Handler[] handlers;
protected static final org.jboss.logmanager.AtomicArray handlersUpdater;
protected void <init>()
{
java.util.logging.ErrorManager v;
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.AtomicArray v;
v := @this: org.jboss.logmanager.ExtHandler;
specialinvoke v.<java.util.logging.Handler: void <init>()>();
v.<org.jboss.logmanager.ExtHandler: boolean autoFlush> = 1;
v.<org.jboss.logmanager.ExtHandler: boolean enabled> = 1;
v = <org.jboss.logmanager.ExtHandler: org.jboss.logmanager.AtomicArray handlersUpdater>;
virtualinvoke v.<org.jboss.logmanager.AtomicArray: void clear(java.lang.Object)>(v);
v.<org.jboss.logmanager.ExtHandler: boolean closeChildren> = 1;
v = <org.jboss.logmanager.ExtHandler: java.util.logging.ErrorManager DEFAULT_ERROR_MANAGER>;
specialinvoke v.<java.util.logging.Handler: void setErrorManager(java.util.logging.ErrorManager)>(v);
return;
}
public void publish(java.util.logging.LogRecord)
{
org.jboss.logmanager.ExtHandler v;
java.util.logging.LogRecord v;
org.jboss.logmanager.ExtLogRecord v;
boolean v, v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.LogRecord;
v = v.<org.jboss.logmanager.ExtHandler: boolean enabled>;
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: boolean isLoggable(java.util.logging.LogRecord)>(v);
if v == 0 goto label;
v = staticinvoke <org.jboss.logmanager.ExtLogRecord: org.jboss.logmanager.ExtLogRecord wrap(java.util.logging.LogRecord)>(v);
virtualinvoke v.<org.jboss.logmanager.ExtHandler: void doPublish(org.jboss.logmanager.ExtLogRecord)>(v);
label:
return;
}
public void publish(org.jboss.logmanager.ExtLogRecord)
{
java.lang.Throwable v;
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.ExtLogRecord v;
java.lang.Exception v;
boolean v, v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: org.jboss.logmanager.ExtLogRecord;
v = v.<org.jboss.logmanager.ExtHandler: boolean enabled>;
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: boolean isLoggable(java.util.logging.LogRecord)>(v);
if v == 0 goto label;
label:
virtualinvoke v.<org.jboss.logmanager.ExtHandler: void doPublish(org.jboss.logmanager.ExtLogRecord)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.jboss.logmanager.ExtHandler: void reportError(java.lang.String,java.lang.Exception,int)>("Handler publication threw an exception", v, 1);
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void publishToNestedHandlers(org.jboss.logmanager.ExtLogRecord)
{
java.lang.Throwable v;
java.util.logging.Handler[] v;
org.jboss.logmanager.ExtLogRecord v;
java.lang.Exception v;
int v, v;
org.jboss.logmanager.ExtHandler v;
java.util.logging.Handler v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: org.jboss.logmanager.ExtLogRecord;
if v == null goto label;
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] getHandlers()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
label:
virtualinvoke v.<java.util.logging.Handler: void publish(java.util.logging.LogRecord)>(v);
label:
goto label;
label:
v := @caughtexception;
staticinvoke <org.jboss.logmanager.ExtHandler: void reportError(java.util.logging.Handler,java.lang.String,java.lang.Exception,int)>(v, "Nested handler publication threw an exception", v, 1);
goto label;
label:
v := @caughtexception;
label:
v = v + 1;
goto label;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected void doPublish(org.jboss.logmanager.ExtLogRecord)
{
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.ExtLogRecord v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: org.jboss.logmanager.ExtLogRecord;
v = v.<org.jboss.logmanager.ExtHandler: boolean autoFlush>;
if v == 0 goto label;
virtualinvoke v.<org.jboss.logmanager.ExtHandler: void flush()>();
label:
return;
}
public void addHandler(java.util.logging.Handler)
{
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.AtomicArray v;
java.util.logging.Handler v;
java.lang.NullPointerException v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.Handler;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("handler is null");
throw v;
label:
v = <org.jboss.logmanager.ExtHandler: org.jboss.logmanager.AtomicArray handlersUpdater>;
virtualinvoke v.<org.jboss.logmanager.AtomicArray: void add(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public void removeHandler(java.util.logging.Handler) throws java.lang.SecurityException
{
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.AtomicArray v;
java.util.logging.Handler v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.Handler;
if v != null goto label;
return;
label:
v = <org.jboss.logmanager.ExtHandler: org.jboss.logmanager.AtomicArray handlersUpdater>;
virtualinvoke v.<org.jboss.logmanager.AtomicArray: boolean remove(java.lang.Object,java.lang.Object,boolean)>(v, v, 1);
return;
}
public java.util.logging.Handler[] getHandlers()
{
int v;
java.util.logging.Handler[] v;
java.lang.Object v;
org.jboss.logmanager.ExtHandler v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] handlers>;
v = lengthof v;
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
goto label;
label:
v = v;
label:
return v;
}
public java.util.logging.Handler[] clearHandlers() throws java.lang.SecurityException
{
int v;
java.util.logging.Handler[] v;
java.lang.Object v;
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.AtomicArray v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] handlers>;
v = <org.jboss.logmanager.ExtHandler: org.jboss.logmanager.AtomicArray handlersUpdater>;
virtualinvoke v.<org.jboss.logmanager.AtomicArray: void clear(java.lang.Object)>(v);
v = lengthof v;
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
goto label;
label:
v = v;
label:
return v;
}
public java.util.logging.Handler[] setHandlers(java.util.logging.Handler[]) throws java.lang.SecurityException
{
java.lang.Object[] v;
java.util.logging.Handler[] v, v;
java.lang.IllegalArgumentException v;
int v, v;
java.lang.Object v;
org.jboss.logmanager.ExtHandler v;
org.jboss.logmanager.AtomicArray v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.Handler[];
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("newHandlers is null");
throw v;
label:
v = lengthof v;
if v != 0 goto label;
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] clearHandlers()>();
return v;
label:
v = <org.jboss.logmanager.ExtHandler: org.jboss.logmanager.AtomicArray handlersUpdater>;
v = virtualinvoke v.<org.jboss.logmanager.AtomicArray: java.lang.Object[] getAndSet(java.lang.Object,java.lang.Object[])>(v, v);
v = lengthof v;
if v <= 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
goto label;
label:
v = v;
label:
return v;
}
public boolean isAutoFlush()
{
org.jboss.logmanager.ExtHandler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: boolean autoFlush>;
return v;
}
public void setAutoFlush(boolean) throws java.lang.SecurityException
{
org.jboss.logmanager.ExtHandler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: boolean;
v.<org.jboss.logmanager.ExtHandler: boolean autoFlush> = v;
if v == 0 goto label;
virtualinvoke v.<org.jboss.logmanager.ExtHandler: void flush()>();
label:
return;
}
public final void setEnabled(boolean) throws java.lang.SecurityException
{
org.jboss.logmanager.ExtHandler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: boolean;
v.<org.jboss.logmanager.ExtHandler: boolean enabled> = v;
return;
}
public final boolean isEnabled()
{
org.jboss.logmanager.ExtHandler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: boolean enabled>;
return v;
}
public boolean isCloseChildren()
{
org.jboss.logmanager.ExtHandler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: boolean closeChildren>;
return v;
}
public void setCloseChildren(boolean)
{
org.jboss.logmanager.ExtHandler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: boolean;
v.<org.jboss.logmanager.ExtHandler: boolean closeChildren> = v;
return;
}
public void flush()
{
java.lang.Throwable v;
int v, v;
java.util.logging.Handler[] v;
org.jboss.logmanager.ExtHandler v;
java.util.logging.Handler v;
java.lang.Exception v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] handlers>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
label:
virtualinvoke v.<java.util.logging.Handler: void flush()>();
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.jboss.logmanager.ExtHandler: void reportError(java.lang.String,java.lang.Exception,int)>("Failed to flush child handler", v, 2);
goto label;
label:
v := @caughtexception;
label:
v = v + 1;
goto label;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void close() throws java.lang.SecurityException
{
int v, v;
java.util.logging.Handler[] v;
org.jboss.logmanager.ExtHandler v;
java.util.logging.Handler v;
boolean v;
v := @this: org.jboss.logmanager.ExtHandler;
v = v.<org.jboss.logmanager.ExtHandler: boolean closeChildren>;
if v == 0 goto label;
v = v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] handlers>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v + 1;
goto label;
label:
return;
}
public void setFormatter(java.util.logging.Formatter) throws java.lang.SecurityException
{
org.jboss.logmanager.ExtHandler v;
java.util.logging.Formatter v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.Formatter;
specialinvoke v.<java.util.logging.Handler: void setFormatter(java.util.logging.Formatter)>(v);
return;
}
public void setFilter(java.util.logging.Filter) throws java.lang.SecurityException
{
org.jboss.logmanager.ExtHandler v;
java.util.logging.Filter v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.Filter;
specialinvoke v.<java.util.logging.Handler: void setFilter(java.util.logging.Filter)>(v);
return;
}
public void setEncoding(java.lang.String) throws java.lang.SecurityException, java.io.UnsupportedEncodingException
{
org.jboss.logmanager.ExtHandler v;
java.lang.String v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.lang.String;
specialinvoke v.<java.util.logging.Handler: void setEncoding(java.lang.String)>(v);
return;
}
public void setErrorManager(java.util.logging.ErrorManager)
{
java.util.logging.ErrorManager v;
org.jboss.logmanager.ExtHandler v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.ErrorManager;
specialinvoke v.<java.util.logging.Handler: void setErrorManager(java.util.logging.ErrorManager)>(v);
return;
}
public void setLevel(java.util.logging.Level) throws java.lang.SecurityException
{
org.jboss.logmanager.ExtHandler v;
java.util.logging.Level v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.util.logging.Level;
specialinvoke v.<java.util.logging.Handler: void setLevel(java.util.logging.Level)>(v);
return;
}
public boolean isCallerCalculationRequired()
{
java.util.logging.Handler[] v;
java.util.logging.Formatter v, v;
int v, v;
org.jboss.logmanager.ExtHandler v;
java.util.logging.Handler v;
boolean v, v, v, v;
v := @this: org.jboss.logmanager.ExtHandler;
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: java.util.logging.Formatter getFormatter()>();
v = staticinvoke <org.jboss.logmanager.ExtHandler: boolean formatterRequiresCallerCalculation(java.util.logging.Formatter)>(v);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: java.util.logging.Handler[] getHandlers()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof org.jboss.logmanager.ExtHandler;
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.logmanager.ExtHandler: boolean isCallerCalculationRequired()>();
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.util.logging.Handler: java.util.logging.Formatter getFormatter()>();
v = staticinvoke <org.jboss.logmanager.ExtHandler: boolean formatterRequiresCallerCalculation(java.util.logging.Formatter)>(v);
if v == 0 goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
protected void reportError(java.lang.String, java.lang.Exception, int)
{
int v;
org.jboss.logmanager.ExtHandler v;
java.lang.String v;
java.lang.Exception v;
v := @this: org.jboss.logmanager.ExtHandler;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Exception;
v := @parameter: int;
specialinvoke v.<java.util.logging.Handler: void reportError(java.lang.String,java.lang.Exception,int)>(v, v, v);
return;
}
public static void reportError(java.util.logging.Handler, java.lang.String, java.lang.Exception, int)
{
java.io.PrintStream v;
int v;
java.util.logging.ErrorManager v;
java.lang.String v;
java.util.logging.Handler v;
java.lang.Exception v, v;
v := @parameter: java.util.logging.Handler;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Exception;
v := @parameter: int;
if v == null goto label;
v = virtualinvoke v.<java.util.logging.Handler: java.util.logging.ErrorManager getErrorManager()>();
if v == null goto label;
label:
virtualinvoke v.<java.util.logging.ErrorManager: void error(java.lang.String,java.lang.Exception,int)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream err>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("Handler.reportError caught:");
virtualinvoke v.<java.lang.Exception: void printStackTrace()>();
label:
return;
catch java.lang.Exception from label to label with label;
}
private static boolean formatterRequiresCallerCalculation(java.util.logging.Formatter)
{
java.util.logging.Formatter v;
boolean v, v, v;
v := @parameter: java.util.logging.Formatter;
if v == null goto label;
v = v instanceof org.jboss.logmanager.ExtFormatter;
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.logmanager.ExtFormatter: boolean isCallerCalculationRequired()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
org.jboss.logmanager.AtomicArray v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.errormanager.OnlyOnceErrorManager v;
v = new org.jboss.logmanager.errormanager.OnlyOnceErrorManager;
specialinvoke v.<org.jboss.logmanager.errormanager.OnlyOnceErrorManager: void <init>()>();
<org.jboss.logmanager.ExtHandler: java.util.logging.ErrorManager DEFAULT_ERROR_MANAGER> = v;
v = staticinvoke <java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class,java.lang.Class,java.lang.String)>(class "Lorg/jboss/logmanager/ExtHandler;", class "[Ljava/util/logging/Handler;", "handlers");
v = staticinvoke <org.jboss.logmanager.AtomicArray: org.jboss.logmanager.AtomicArray create(java.util.concurrent.atomic.AtomicReferenceFieldUpdater,java.lang.Class)>(v, class "Ljava/util/logging/Handler;");
<org.jboss.logmanager.ExtHandler: org.jboss.logmanager.AtomicArray handlersUpdater> = v;
return;
}
}