public final class org.apache.logging.log4j.core.pattern.DatePatternConverter extends org.apache.logging.log4j.core.pattern.LogEventPatternConverter implements org.apache.logging.log4j.core.pattern.ArrayPatternConverter
{
private static final java.lang.String UNIX_FORMAT;
private static final java.lang.String UNIX_MILLIS_FORMAT;
private final java.lang.String[] options;
private final java.lang.ThreadLocal threadLocalMutableInstant;
private final java.lang.ThreadLocal threadLocalFormatter;
private final java.util.concurrent.atomic.AtomicReference cachedTime;
private final org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter formatter;
private void <init>(java.lang.String[])
{
java.lang.ThreadLocal v, v;
java.lang.Object[] v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.String[] v;
long v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime v;
java.util.concurrent.atomic.AtomicReference v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter v;
int v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: java.lang.String[];
specialinvoke v.<org.apache.logging.log4j.core.pattern.LogEventPatternConverter: void <init>(java.lang.String,java.lang.String)>("Date", "date");
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.ThreadLocal threadLocalMutableInstant> = v;
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.ThreadLocal threadLocalFormatter> = v;
if v == null goto label;
v = lengthof v;
v = staticinvoke <java.util.Arrays: java.lang.Object[] copyOf(java.lang.Object[],int)>(v, v);
label:
v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.String[] options> = v;
v = specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createFormatter(java.lang.String[])>(v);
v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter formatter> = v;
v = new java.util.concurrent.atomic.AtomicReference;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime fromEpochMillis(long)>(v);
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.util.concurrent.atomic.AtomicReference cachedTime> = v;
return;
}
private org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime fromEpochMillis(long)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
org.apache.logging.log4j.core.time.MutableInstant v;
long v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: long;
v = new org.apache.logging.log4j.core.time.MutableInstant;
specialinvoke v.<org.apache.logging.log4j.core.time.MutableInstant: void <init>()>();
virtualinvoke v.<org.apache.logging.log4j.core.time.MutableInstant: void initFromEpochMilli(long,int)>(v, 0);
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime: void <init>(org.apache.logging.log4j.core.pattern.DatePatternConverter,org.apache.logging.log4j.core.time.Instant)>(v, v);
return v;
}
private org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createFormatter(java.lang.String[])
{
org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter v, v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.String[] v;
org.apache.logging.log4j.core.util.datetime.FixedDateFormat v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: java.lang.String[];
v = staticinvoke <org.apache.logging.log4j.core.util.datetime.FixedDateFormat: org.apache.logging.log4j.core.util.datetime.FixedDateFormat createIfSupported(java.lang.String[])>(v);
if v == null goto label;
v = staticinvoke <org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createFixedFormatter(org.apache.logging.log4j.core.util.datetime.FixedDateFormat)>(v);
return v;
label:
v = staticinvoke <org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createNonFixedFormatter(java.lang.String[])>(v);
return v;
}
public static org.apache.logging.log4j.core.pattern.DatePatternConverter newInstance(java.lang.String[])
{
java.lang.String[] v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
v := @parameter: java.lang.String[];
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void <init>(java.lang.String[])>(v);
return v;
}
private static org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createFixedFormatter(org.apache.logging.log4j.core.util.datetime.FixedDateFormat)
{
org.apache.logging.log4j.core.util.datetime.FixedDateFormat v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$FixedFormatter v;
v := @parameter: org.apache.logging.log4j.core.util.datetime.FixedDateFormat;
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter$FixedFormatter;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$FixedFormatter: void <init>(org.apache.logging.log4j.core.util.datetime.FixedDateFormat)>(v);
return v;
}
private static org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createNonFixedFormatter(java.lang.String[])
{
org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat v, v;
java.lang.String[] v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$PatternFormatter v;
org.apache.logging.log4j.core.util.datetime.FastDateFormat v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$UnixMillisFormatter v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter v;
java.util.Locale v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
org.apache.logging.log4j.core.util.datetime.FixedDateFormat v;
boolean v, v;
java.util.TimeZone v;
java.lang.IllegalArgumentException v, v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$UnixFormatter v;
org.apache.logging.log4j.Logger v;
v := @parameter: java.lang.String[];
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = lengthof v;
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Options array must have at least one element");
throw v;
label:
v = v[0];
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = v[0];
v = "UNIX";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter$UnixFormatter;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$UnixFormatter: void <init>()>();
return v;
label:
v = "UNIX_MILLIS";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter$UnixMillisFormatter;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$UnixMillisFormatter: void <init>()>();
return v;
label:
v = staticinvoke <org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat: org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat lookup(java.lang.String)>(v);
if v != null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat: java.lang.String getPattern()>();
label:
v = v;
v = null;
v = lengthof v;
if v <= 1 goto label;
v = v[1];
if v == null goto label;
v = v[1];
v = staticinvoke <java.util.TimeZone: java.util.TimeZone getTimeZone(java.lang.String)>(v);
label:
v = null;
v = lengthof v;
if v <= 2 goto label;
v = v[2];
if v == null goto label;
v = v[2];
v = staticinvoke <java.util.Locale: java.util.Locale forLanguageTag(java.lang.String)>(v);
label:
v = staticinvoke <org.apache.logging.log4j.core.util.datetime.FastDateFormat: org.apache.logging.log4j.core.util.datetime.FastDateFormat getInstance(java.lang.String,java.util.TimeZone,java.util.Locale)>(v, v, v);
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter$PatternFormatter;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$PatternFormatter: void <init>(org.apache.logging.log4j.core.util.datetime.FastDateFormat)>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.Logger LOGGER>;
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[])>("Could not instantiate FastDateFormat with pattern \u0001");
interfaceinvoke v.<org.apache.logging.log4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
v = <org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat: org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat DEFAULT>;
v = staticinvoke <org.apache.logging.log4j.core.util.datetime.FixedDateFormat: org.apache.logging.log4j.core.util.datetime.FixedDateFormat create(org.apache.logging.log4j.core.util.datetime.FixedDateFormat$FixedFormat,java.util.TimeZone)>(v, v);
v = staticinvoke <org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createFixedFormatter(org.apache.logging.log4j.core.util.datetime.FixedDateFormat)>(v);
return v;
catch java.lang.IllegalArgumentException from label to label with label;
}
public void format(java.util.Date, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.util.Date v;
java.lang.StringBuilder v;
long v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: java.util.Date;
v := @parameter: java.lang.StringBuilder;
v = virtualinvoke v.<java.util.Date: long getTime()>();
virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void format(long,java.lang.StringBuilder)>(v, v);
return;
}
public void format(org.apache.logging.log4j.core.LogEvent, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.StringBuilder v;
org.apache.logging.log4j.core.time.Instant v;
org.apache.logging.log4j.core.LogEvent v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: org.apache.logging.log4j.core.LogEvent;
v := @parameter: java.lang.StringBuilder;
v = interfaceinvoke v.<org.apache.logging.log4j.core.LogEvent: org.apache.logging.log4j.core.time.Instant getInstant()>();
virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void format(org.apache.logging.log4j.core.time.Instant,java.lang.StringBuilder)>(v, v);
return;
}
public void format(long, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
org.apache.logging.log4j.core.time.MutableInstant v;
java.lang.StringBuilder v;
long v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: long;
v := @parameter: java.lang.StringBuilder;
v = specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.time.MutableInstant getMutableInstant()>();
virtualinvoke v.<org.apache.logging.log4j.core.time.MutableInstant: void initFromEpochMilli(long,int)>(v, 0);
virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void format(org.apache.logging.log4j.core.time.Instant,java.lang.StringBuilder)>(v, v);
return;
}
private org.apache.logging.log4j.core.time.MutableInstant getMutableInstant()
{
java.lang.ThreadLocal v, v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
org.apache.logging.log4j.core.time.MutableInstant v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v = <org.apache.logging.log4j.core.util.Constants: boolean ENABLE_THREADLOCALS>;
if v == 0 goto label;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.ThreadLocal threadLocalMutableInstant>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v != null goto label;
v = new org.apache.logging.log4j.core.time.MutableInstant;
specialinvoke v.<org.apache.logging.log4j.core.time.MutableInstant: void <init>()>();
v = v;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.ThreadLocal threadLocalMutableInstant>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
label:
return v;
label:
v = new org.apache.logging.log4j.core.time.MutableInstant;
specialinvoke v.<org.apache.logging.log4j.core.time.MutableInstant: void <init>()>();
return v;
}
public void format(org.apache.logging.log4j.core.time.Instant, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.StringBuilder v;
org.apache.logging.log4j.core.time.Instant v;
boolean v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: org.apache.logging.log4j.core.time.Instant;
v := @parameter: java.lang.StringBuilder;
v = <org.apache.logging.log4j.core.util.Constants: boolean ENABLE_THREADLOCALS>;
if v == 0 goto label;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void formatWithoutAllocation(org.apache.logging.log4j.core.time.Instant,java.lang.StringBuilder)>(v, v);
goto label;
label:
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void formatWithoutThreadLocals(org.apache.logging.log4j.core.time.Instant,java.lang.StringBuilder)>(v, v);
label:
return;
}
private void formatWithoutAllocation(org.apache.logging.log4j.core.time.Instant, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.StringBuilder v;
org.apache.logging.log4j.core.time.Instant v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: org.apache.logging.log4j.core.time.Instant;
v := @parameter: java.lang.StringBuilder;
v = specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter getThreadLocalFormatter()>();
virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter: void formatToBuffer(org.apache.logging.log4j.core.time.Instant,java.lang.StringBuilder)>(v, v);
return;
}
private org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter getThreadLocalFormatter()
{
java.lang.ThreadLocal v, v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.Object v;
java.lang.String[] v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.ThreadLocal threadLocalFormatter>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v != null goto label;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.String[] options>;
v = specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter createFormatter(java.lang.String[])>(v);
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.lang.ThreadLocal threadLocalFormatter>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
label:
return v;
}
private void formatWithoutThreadLocals(org.apache.logging.log4j.core.time.Instant, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
long v, v;
org.apache.logging.log4j.core.time.Instant v;
org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime v, v;
java.util.concurrent.atomic.AtomicReference v, v;
byte v;
int v, v;
java.lang.Object v;
java.lang.StringBuilder v;
java.lang.String v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: org.apache.logging.log4j.core.time.Instant;
v := @parameter: java.lang.StringBuilder;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.util.concurrent.atomic.AtomicReference cachedTime>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = interfaceinvoke v.<org.apache.logging.log4j.core.time.Instant: long getEpochSecond()>();
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime: long epochSecond>;
v = v cmp v;
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.logging.log4j.core.time.Instant: int getNanoOfSecond()>();
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime: int nanoOfSecond>;
if v == v goto label;
label:
v = new org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime;
specialinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime: void <init>(org.apache.logging.log4j.core.pattern.DatePatternConverter,org.apache.logging.log4j.core.time.Instant)>(v, v);
v = v;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: java.util.concurrent.atomic.AtomicReference cachedTime>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v;
label:
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$CachedTime: java.lang.String formatted>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
return;
}
public void format(java.lang.Object, java.lang.StringBuilder)
{
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.lang.Object v;
java.lang.StringBuilder v;
boolean v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.StringBuilder;
v = v instanceof java.util.Date;
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void format(java.util.Date,java.lang.StringBuilder)>(v, v);
label:
specialinvoke v.<org.apache.logging.log4j.core.pattern.LogEventPatternConverter: void format(java.lang.Object,java.lang.StringBuilder)>(v, v);
return;
}
public transient void format(java.lang.StringBuilder, java.lang.Object[])
{
java.lang.Object[] v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
int v, v;
java.lang.Object v;
java.lang.StringBuilder v;
boolean v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v := @parameter: java.lang.StringBuilder;
v := @parameter: java.lang.Object[];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof java.util.Date;
if v == 0 goto label;
virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: void format(java.lang.Object,java.lang.StringBuilder)>(v, v);
goto label;
label:
v = v + 1;
goto label;
label:
return;
}
public java.lang.String getPattern()
{
org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter v;
java.lang.String v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter formatter>;
v = virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter: java.lang.String toPattern()>();
return v;
}
public java.util.TimeZone getTimeZone()
{
org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter v;
org.apache.logging.log4j.core.pattern.DatePatternConverter v;
java.util.TimeZone v;
v := @this: org.apache.logging.log4j.core.pattern.DatePatternConverter;
v = v.<org.apache.logging.log4j.core.pattern.DatePatternConverter: org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter formatter>;
v = virtualinvoke v.<org.apache.logging.log4j.core.pattern.DatePatternConverter$Formatter: java.util.TimeZone getTimeZone()>();
return v;
}
}