public class org.apache.logging.log4j.core.pattern.ThrowablePatternConverter extends org.apache.logging.log4j.core.pattern.LogEventPatternConverter
{
protected final java.util.List formatters;
private java.lang.String rawOption;
private final boolean subShortOption;
private final boolean nonStandardLineSeparator;
protected final org.apache.logging.log4j.core.impl.ThrowableFormatOptions options;
protected void <init>(java.lang.String, java.lang.String, java.lang.String[])
{
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.String[] v;
java.lang.String v, v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
specialinvoke v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: void <init>(java.lang.String,java.lang.String,java.lang.String[],org.apache.logging.log4j.core.config.Configuration)>(v, v, v, null);
return;
}
protected void <init>(java.lang.String, java.lang.String, java.lang.String[], org.apache.logging.log4j.core.config.Configuration)
{
org.apache.logging.log4j.core.config.Configuration v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v;
org.apache.logging.log4j.core.pattern.PatternParser v;
java.lang.String[] v;
java.util.ArrayList v;
int v;
org.apache.logging.log4j.core.impl.ThrowableFormatOptions v, v, v, v;
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v;
java.lang.Object v, v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
v := @parameter: org.apache.logging.log4j.core.config.Configuration;
specialinvoke v.<org.apache.logging.log4j.core.pattern.LogEventPatternConverter: void <init>(java.lang.String,java.lang.String)>(v, v);
v = staticinvoke <org.apache.logging.log4j.core.impl.ThrowableFormatOptions: org.apache.logging.log4j.core.impl.ThrowableFormatOptions newInstance(java.lang.String[])>(v);
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options> = v;
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = v[0];
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption> = v;
label:
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: java.lang.String getSuffix()>();
if v == null goto label;
v = staticinvoke <org.apache.logging.log4j.core.layout.PatternLayout: org.apache.logging.log4j.core.pattern.PatternParser createPatternParser(org.apache.logging.log4j.core.config.Configuration)>(v);
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: java.lang.String getSuffix()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.pattern.PatternParser: java.util.List parse(java.lang.String)>(v);
v = 0;
v = interfaceinvoke v.<java.util.List: 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 = virtualinvoke v.<org.apache.logging.log4j.core.pattern.PatternFormatter: boolean handlesThrowable()>();
if v == 0 goto label;
v = 1;
goto label;
label:
if v != 0 goto label;
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.util.List formatters> = v;
goto label;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.List: 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 = virtualinvoke v.<org.apache.logging.log4j.core.pattern.PatternFormatter: boolean handlesThrowable()>();
if v != 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.util.List formatters> = v;
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.util.List formatters> = v;
label:
v = "short.message";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
v = "short.localizedMessage";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
v = "short.fileName";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
v = "short.lineNumber";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
v = "short.methodName";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
v = "short.className";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: boolean subShortOption> = v;
v = <org.apache.logging.log4j.util.Strings: java.lang.String LINE_SEPARATOR>;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: java.lang.String getSeparator()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: boolean nonStandardLineSeparator> = v;
return;
}
public static org.apache.logging.log4j.core.pattern.ThrowablePatternConverter newInstance(org.apache.logging.log4j.core.config.Configuration, java.lang.String[])
{
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.String[] v;
org.apache.logging.log4j.core.config.Configuration v;
v := @parameter: org.apache.logging.log4j.core.config.Configuration;
v := @parameter: java.lang.String[];
v = new org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
specialinvoke v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: void <init>(java.lang.String,java.lang.String,java.lang.String[],org.apache.logging.log4j.core.config.Configuration)>("Throwable", "throwable", v, v);
return v;
}
public void format(org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder)
{
java.lang.Throwable v;
org.apache.logging.log4j.core.LogEvent v;
org.apache.logging.log4j.core.impl.ThrowableFormatOptions v;
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.StringBuilder v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v := @parameter: java.lang.StringBuilder;
v = interfaceinvoke v.<org.apache.logging.log4j.core.LogEvent: java.lang.Throwable getThrown()>();
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: boolean subShortOption>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String getSuffix(org.apache.logging.log4j.core.LogEvent)>(v);
specialinvoke v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: void formatSubShortOption(java.lang.Throwable,java.lang.String,java.lang.StringBuilder)>(v, v, v);
goto label;
label:
if v == null goto label;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: boolean anyLines()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String getSuffix(org.apache.logging.log4j.core.LogEvent)>(v);
specialinvoke v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: void formatOption(java.lang.Throwable,java.lang.String,java.lang.StringBuilder)>(v, v, v);
label:
return;
}
private void formatSubShortOption(java.lang.Throwable, java.lang.String, java.lang.StringBuilder)
{
boolean v, v, v, v, v, v, v, v;
java.lang.StackTraceElement[] v;
java.lang.StringBuilder v;
java.lang.Throwable v;
int v, v, v, v;
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.StackTraceElement v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v := @parameter: java.lang.Throwable;
v := @parameter: java.lang.String;
v := @parameter: java.lang.StringBuilder;
v = null;
if v == null goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.StackTraceElement[] getStackTrace()>();
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = v[0];
label:
if v == null goto label;
if v == null goto label;
v = "";
v = "short.className";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StackTraceElement: java.lang.String getClassName()>();
goto label;
label:
v = "short.methodName";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StackTraceElement: java.lang.String getMethodName()>();
goto label;
label:
v = "short.lineNumber";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StackTraceElement: int getLineNumber()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
goto label;
label:
v = "short.message";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
goto label;
label:
v = "short.localizedMessage";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getLocalizedMessage()>();
goto label;
label:
v = "short.fileName";
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.lang.String rawOption>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.StackTraceElement: java.lang.String getFileName()>();
label:
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v <= 0 goto label;
v = v - 1;
v = virtualinvoke v.<java.lang.StringBuilder: char charAt(int)>(v);
v = staticinvoke <java.lang.Character: boolean isWhitespace(char)>(v);
if v != 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(32);
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = staticinvoke <org.apache.logging.log4j.util.Strings: boolean isNotBlank(java.lang.String)>(v);
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(32);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
return;
}
private void formatOption(java.lang.Throwable, java.lang.String, java.lang.StringBuilder)
{
java.lang.Throwable v;
java.lang.String[] v;
org.apache.logging.log4j.core.util.StringBuilderWriter v;
int v, v, v, v, v, v;
org.apache.logging.log4j.core.impl.ThrowableFormatOptions v, v, v;
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v;
java.io.PrintWriter v, v;
java.io.StringWriter v;
char v;
java.lang.StringBuilder v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v := @parameter: java.lang.Throwable;
v := @parameter: java.lang.String;
v := @parameter: java.lang.StringBuilder;
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v <= 0 goto label;
v = v - 1;
v = virtualinvoke v.<java.lang.StringBuilder: char charAt(int)>(v);
v = staticinvoke <java.lang.Character: boolean isWhitespace(char)>(v);
if v != 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(32);
label:
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: boolean allLines()>();
if v == 0 goto label;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: boolean nonStandardLineSeparator>;
if v != 0 goto label;
v = staticinvoke <org.apache.logging.log4j.util.Strings: boolean isNotBlank(java.lang.String)>(v);
if v == 0 goto label;
label:
v = new java.io.StringWriter;
specialinvoke v.<java.io.StringWriter: void <init>()>();
v = new java.io.PrintWriter;
specialinvoke v.<java.io.PrintWriter: void <init>(java.io.Writer)>(v);
virtualinvoke v.<java.lang.Throwable: void printStackTrace(java.io.PrintWriter)>(v);
v = virtualinvoke v.<java.io.StringWriter: java.lang.String toString()>();
v = <org.apache.logging.log4j.util.Strings: java.lang.String LINE_SEPARATOR>;
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(v);
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = lengthof v;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: int minLines(int)>(v);
v = v - 1;
v = staticinvoke <org.apache.logging.log4j.util.Strings: boolean isNotBlank(java.lang.String)>(v);
v = 0;
label:
if v > v goto label;
v = v[v];
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(32);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
if v >= v goto label;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.ThrowableFormatOptions: java.lang.String getSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
label:
v = v + 1;
goto label;
label:
v = new java.io.PrintWriter;
v = new org.apache.logging.log4j.core.util.StringBuilderWriter;
specialinvoke v.<org.apache.logging.log4j.core.util.StringBuilderWriter: void <init>(java.lang.StringBuilder)>(v);
specialinvoke v.<java.io.PrintWriter: void <init>(java.io.Writer)>(v);
virtualinvoke v.<java.lang.Throwable: void printStackTrace(java.io.PrintWriter)>(v);
label:
return;
}
public boolean handlesThrowable()
{
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
return 1;
}
protected java.lang.String getSuffix(org.apache.logging.log4j.core.LogEvent)
{
org.apache.logging.log4j.core.LogEvent v;
java.util.List v, v, v;
int v, v;
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
java.lang.Object v;
java.lang.StringBuilder v;
java.lang.String v;
boolean v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.util.List formatters>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
return "";
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.util.List formatters>;
v = interfaceinvoke v.<java.util.List: int size()>();
label:
if v >= v goto label;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: java.util.List formatters>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
virtualinvoke v.<org.apache.logging.log4j.core.pattern.PatternFormatter: void format(org.apache.logging.log4j.core.LogEvent,java.lang.StringBuilder)>(v, v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public org.apache.logging.log4j.core.impl.ThrowableFormatOptions getOptions()
{
org.apache.logging.log4j.core.impl.ThrowableFormatOptions v;
org.apache.logging.log4j.core.pattern.ThrowablePatternConverter v;
v := @this: org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
v = v.<org.apache.logging.log4j.core.pattern.ThrowablePatternConverter: org.apache.logging.log4j.core.impl.ThrowableFormatOptions options>;
return v;
}
}