public class org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement implements org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement
super_class: java.lang.Object
{
private static final java.lang.String requestStartPrefix;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "begin"
private static final java.lang.String responseEndPrefix;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "end"
private static final java.lang.String prefixSeparator;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: ":"
private static final java.lang.String secFormat;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "sec"
private static final java.lang.String msecFormat;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "msec"
private static final java.lang.String msecFractionFormat;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "msec_frac"
private static final java.lang.String msecPattern;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "{#}"
private static final java.lang.String tripleMsecPattern;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "{#}{#}{#}"
private final java.lang.String format;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean usesBegin;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.catalina.valves.AbstractAccessLogValve$FormatType type;
descriptor: Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean usesMsecs;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final org.apache.catalina.valves.AbstractAccessLogValve this$0;
descriptor: Lorg/apache/catalina/valves/AbstractAccessLogValve;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
protected void <init>(org.apache.catalina.valves.AbstractAccessLogValve);
descriptor: (Lorg/apache/catalina/valves/AbstractAccessLogValve;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
aconst_null
invokespecial org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.<init>:(Lorg/apache/catalina/valves/AbstractAccessLogValve;Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/AbstractAccessLogValve$DateAndTimeElement;
MethodParameters:
Name Flags
this$0 final
private java.lang.String tidyFormat(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 2: aload 1
invokevirtual java.lang.String.length:()I
istore 4
start local 4 3: iconst_0
istore 6
start local 6 4: goto 16
5: StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement java.lang.String int java.lang.StringBuilder int top int
StackMap stack:
aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 6: iload 2
ifne 7
iload 5
bipush 83
if_icmpeq 9
7: StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement java.lang.String int java.lang.StringBuilder int int int
StackMap stack:
aload 3
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
8: goto 11
9: StackMap locals:
StackMap stack:
aload 3
ldc "{#}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
iconst_1
putfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.usesMsecs:Z
11: StackMap locals:
StackMap stack:
iload 5
bipush 39
if_icmpne 15
12: iload 2
ifeq 13
iconst_0
goto 14
StackMap locals:
StackMap stack:
13: iconst_1
StackMap locals:
StackMap stack: int
14: istore 2
15: StackMap locals:
StackMap stack:
iinc 6 1
end local 5 StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement java.lang.String int java.lang.StringBuilder int top int
StackMap stack:
16: iload 6
iload 4
if_icmplt 5
end local 6 17: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/catalina/valves/AbstractAccessLogValve$DateAndTimeElement;
0 18 1 format Ljava/lang/String;
1 18 2 escape Z
2 18 3 result Ljava/lang/StringBuilder;
3 18 4 len I
6 16 5 x C
4 17 6 i I
MethodParameters:
Name Flags
format
protected void <init>(org.apache.catalina.valves.AbstractAccessLogValve, java.lang.String);
descriptor: (Lorg/apache/catalina/valves/AbstractAccessLogValve;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=6, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.this$0:Lorg/apache/catalina/valves/AbstractAccessLogValve;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.usesMsecs:Z
2: aload 2
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.CLF:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
astore 5
start local 5 5: aload 3
ifnull 35
6: aload 3
ldc "begin"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
7: iconst_1
istore 4
8: ldc ""
astore 3
9: goto 21
StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement org.apache.catalina.valves.AbstractAccessLogValve java.lang.String java.lang.String int org.apache.catalina.valves.AbstractAccessLogValve$FormatType
StackMap stack:
10: aload 3
ldc "begin:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
11: iconst_1
istore 4
12: aload 3
bipush 6
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
13: goto 21
StackMap locals:
StackMap stack:
14: aload 3
ldc "end"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
15: iconst_0
istore 4
16: ldc ""
astore 3
17: goto 21
StackMap locals:
StackMap stack:
18: aload 3
ldc "end:"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
19: iconst_0
istore 4
20: aload 3
iconst_4
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
21: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.String.length:()I
ifne 24
22: getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.CLF:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
astore 5
23: goto 35
StackMap locals:
StackMap stack:
24: aload 3
ldc "sec"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
25: getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.SEC:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
astore 5
26: goto 35
StackMap locals:
StackMap stack:
27: aload 3
ldc "msec"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 30
28: getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.MSEC:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
astore 5
29: goto 35
StackMap locals:
StackMap stack:
30: aload 3
ldc "msec_frac"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 33
31: getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.MSEC_FRAC:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
astore 5
32: goto 35
33: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.SDF:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
astore 5
34: aload 0
aload 3
invokevirtual org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.tidyFormat:(Ljava/lang/String;)Ljava/lang/String;
astore 3
35: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.format:Ljava/lang/String;
36: aload 0
iload 4
putfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.usesBegin:Z
37: aload 0
aload 5
putfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.type:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
38: return
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/apache/catalina/valves/AbstractAccessLogValve$DateAndTimeElement;
0 39 2 header Ljava/lang/String;
3 39 3 format Ljava/lang/String;
4 39 4 usesBegin Z
5 39 5 type Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
MethodParameters:
Name Flags
this$0 final
header
public void addElement(java.io.CharArrayWriter, java.util.Date, org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, long);
descriptor: (Ljava/io/CharArrayWriter;Ljava/util/Date;Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokevirtual java.util.Date.getTime:()J
lstore 7
start local 7 1: aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.usesBegin:Z
ifne 3
2: lload 7
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 5
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
ladd
lstore 7
3: StackMap locals: long
StackMap stack:
aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.type:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.CLF:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
if_acmpne 6
4: aload 1
getstatic org.apache.catalina.valves.AbstractAccessLogValve.localDateCache:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache
lload 7
invokevirtual org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache.getFormat:(J)Ljava/lang/String;
invokevirtual java.io.CharArrayWriter.append:(Ljava/lang/CharSequence;)Ljava/io/CharArrayWriter;
pop
5: goto 36
StackMap locals:
StackMap stack:
6: aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.type:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.SEC:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
if_acmpne 9
7: aload 1
lload 7
ldc 1000
ldiv
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual java.io.CharArrayWriter.append:(Ljava/lang/CharSequence;)Ljava/io/CharArrayWriter;
pop
8: goto 36
StackMap locals:
StackMap stack:
9: aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.type:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.MSEC:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
if_acmpne 12
10: aload 1
lload 7
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual java.io.CharArrayWriter.append:(Ljava/lang/CharSequence;)Ljava/io/CharArrayWriter;
pop
11: goto 36
StackMap locals:
StackMap stack:
12: aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.type:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
getstatic org.apache.catalina.valves.AbstractAccessLogValve$FormatType.MSEC_FRAC:Lorg/apache/catalina/valves/AbstractAccessLogValve$FormatType;
if_acmpne 22
13: lload 7
ldc 1000
lrem
lstore 9
start local 9 14: lload 9
ldc 100
lcmp
ifge 20
15: lload 9
ldc 10
lcmp
ifge 19
16: aload 1
bipush 48
invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
pop
17: aload 1
bipush 48
invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
pop
18: goto 20
19: StackMap locals: long
StackMap stack:
aload 1
bipush 48
invokevirtual java.io.CharArrayWriter.append:(C)Ljava/io/CharArrayWriter;
pop
20: StackMap locals:
StackMap stack:
aload 1
lload 9
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual java.io.CharArrayWriter.append:(Ljava/lang/CharSequence;)Ljava/io/CharArrayWriter;
pop
21: goto 36
end local 9 22: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.valves.AbstractAccessLogValve.localDateCache:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache
aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.format:Ljava/lang/String;
aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.this$0:Lorg/apache/catalina/valves/AbstractAccessLogValve;
getfield org.apache.catalina.valves.AbstractAccessLogValve.locale:Ljava/util/Locale;
lload 7
invokevirtual org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache.getFormat:(Ljava/lang/String;Ljava/util/Locale;J)Ljava/lang/String;
astore 11
start local 11 23: aload 0
getfield org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement.usesMsecs:Z
ifeq 35
24: lload 7
ldc 1000
lrem
lstore 9
start local 9 25: new java.lang.StringBuilder
dup
iconst_4
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 12
start local 12 26: lload 9
ldc 100
lcmp
ifge 32
27: lload 9
ldc 10
lcmp
ifge 31
28: aload 12
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
29: aload 12
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
30: goto 32
31: StackMap locals: long java.lang.String java.lang.StringBuilder
StackMap stack:
aload 12
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
32: StackMap locals:
StackMap stack:
aload 12
lload 9
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
33: aload 11
ldc "{#}{#}{#}"
aload 12
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 11
34: aload 11
ldc "{#}"
lload 9
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 11
end local 12 end local 9 35: StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement java.io.CharArrayWriter java.util.Date org.apache.catalina.connector.Request org.apache.catalina.connector.Response long long top top java.lang.String
StackMap stack:
aload 1
aload 11
invokevirtual java.io.CharArrayWriter.append:(Ljava/lang/CharSequence;)Ljava/io/CharArrayWriter;
pop
end local 11 36: StackMap locals: org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement java.io.CharArrayWriter java.util.Date org.apache.catalina.connector.Request org.apache.catalina.connector.Response long long
StackMap stack:
return
end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/apache/catalina/valves/AbstractAccessLogValve$DateAndTimeElement;
0 37 1 buf Ljava/io/CharArrayWriter;
0 37 2 date Ljava/util/Date;
0 37 3 request Lorg/apache/catalina/connector/Request;
0 37 4 response Lorg/apache/catalina/connector/Response;
0 37 5 time J
1 37 7 timestamp J
14 22 9 frac J
25 35 9 frac J
23 36 11 temp Ljava/lang/String;
26 35 12 tripleMsec Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
buf
date
request
response
time
}
SourceFile: "AbstractAccessLogValve.java"
NestHost: org.apache.catalina.valves.AbstractAccessLogValve
InnerClasses:
protected abstract AccessLogElement = org.apache.catalina.valves.AbstractAccessLogValve$AccessLogElement of org.apache.catalina.valves.AbstractAccessLogValve
protected DateAndTimeElement = org.apache.catalina.valves.AbstractAccessLogValve$DateAndTimeElement of org.apache.catalina.valves.AbstractAccessLogValve
protected DateFormatCache = org.apache.catalina.valves.AbstractAccessLogValve$DateFormatCache of org.apache.catalina.valves.AbstractAccessLogValve
private final FormatType = org.apache.catalina.valves.AbstractAccessLogValve$FormatType of org.apache.catalina.valves.AbstractAccessLogValve