public class org.apache.tomcat.util.buf.StringCache
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.buf.StringCache
super_class: java.lang.Object
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected static boolean byteEnabled;
descriptor: Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static boolean charEnabled;
descriptor: Z
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static int trainThreshold;
descriptor: I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static int cacheSize;
descriptor: I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static final int maxStringSize;
descriptor: I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected static final java.util.HashMap<org.apache.tomcat.util.buf.StringCache$ByteEntry, int[]> bcStats;
descriptor: Ljava/util/HashMap;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/HashMap<Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;[I>;
protected static int bcCount;
descriptor: I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static volatile org.apache.tomcat.util.buf.StringCache$ByteEntry[] bcCache;
descriptor: [Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
flags: (0x004c) ACC_PROTECTED, ACC_STATIC, ACC_VOLATILE
protected static final java.util.HashMap<org.apache.tomcat.util.buf.StringCache$CharEntry, int[]> ccStats;
descriptor: Ljava/util/HashMap;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/HashMap<Lorg/apache/tomcat/util/buf/StringCache$CharEntry;[I>;
protected static int ccCount;
descriptor: I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static volatile org.apache.tomcat.util.buf.StringCache$CharEntry[] ccCache;
descriptor: [Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
flags: (0x004c) ACC_PROTECTED, ACC_STATIC, ACC_VOLATILE
protected static int accessCount;
descriptor: I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
protected static int hitCount;
descriptor: I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lorg/apache/tomcat/util/buf/StringCache;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.tomcat.util.buf.StringCache.log:Lorg/apache/juli/logging/Log;
1: ldc "true"
2: ldc "tomcat.util.buf.StringCache.byte.enabled"
ldc "false"
3: invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putstatic org.apache.tomcat.util.buf.StringCache.byteEnabled:Z
4: ldc "true"
5: ldc "tomcat.util.buf.StringCache.char.enabled"
ldc "false"
6: invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
putstatic org.apache.tomcat.util.buf.StringCache.charEnabled:Z
7: ldc "tomcat.util.buf.StringCache.trainThreshold"
ldc "20000"
8: invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
putstatic org.apache.tomcat.util.buf.StringCache.trainThreshold:I
9: ldc "tomcat.util.buf.StringCache.cacheSize"
ldc "200"
10: invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
putstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
11: ldc "tomcat.util.buf.StringCache.maxStringSize"
ldc "128"
12: invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
13: putstatic org.apache.tomcat.util.buf.StringCache.maxStringSize:I
14: new java.util.HashMap
dup
getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
invokespecial java.util.HashMap.<init>:(I)V
15: putstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
16: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.bcCount:I
17: aconst_null
putstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
18: new java.util.HashMap
dup
getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
invokespecial java.util.HashMap.<init>:(I)V
19: putstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
20: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.ccCount:I
21: aconst_null
putstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
22: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
23: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public int getCacheSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public void setCacheSize(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
putstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/buf/StringCache;
0 2 1 cacheSize I
MethodParameters:
Name Flags
cacheSize
public boolean getByteEnabled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.byteEnabled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public void setByteEnabled(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
putstatic org.apache.tomcat.util.buf.StringCache.byteEnabled:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/buf/StringCache;
0 2 1 byteEnabled Z
MethodParameters:
Name Flags
byteEnabled
public boolean getCharEnabled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.charEnabled:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public void setCharEnabled(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
putstatic org.apache.tomcat.util.buf.StringCache.charEnabled:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/buf/StringCache;
0 2 1 charEnabled Z
MethodParameters:
Name Flags
charEnabled
public int getTrainThreshold();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.trainThreshold:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public void setTrainThreshold(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
putstatic org.apache.tomcat.util.buf.StringCache.trainThreshold:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/tomcat/util/buf/StringCache;
0 2 1 trainThreshold I
MethodParameters:
Name Flags
trainThreshold
public int getAccessCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public int getHitCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/buf/StringCache;
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
1: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
2: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
dup
astore 1
monitorenter
3: aconst_null
putstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
4: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.bcCount:I
5: aload 1
monitorexit
6: goto 9
StackMap locals: org.apache.tomcat.util.buf.StringCache java.util.HashMap
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
dup
astore 1
monitorenter
10: aconst_null
putstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
11: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.ccCount:I
12: aload 1
monitorexit
13: goto 16
StackMap locals: org.apache.tomcat.util.buf.StringCache java.util.HashMap
StackMap stack: java.lang.Throwable
14: aload 1
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/tomcat/util/buf/StringCache;
Exception table:
from to target type
3 6 7 any
7 8 7 any
10 13 14 any
14 15 14 any
public static java.lang.String toString(org.apache.tomcat.util.buf.ByteChunk);
descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=15, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
ifnonnull 84
1: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.toStringInternal:()Ljava/lang/String;
astore 1
start local 1 2: getstatic org.apache.tomcat.util.buf.StringCache.byteEnabled:Z
ifeq 83
aload 1
invokevirtual java.lang.String.length:()I
getstatic org.apache.tomcat.util.buf.StringCache.maxStringSize:I
if_icmpge 83
3: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
dup
astore 2
monitorenter
4: getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
ifnull 7
5: aload 1
aload 2
monitorexit
6: areturn
7: StackMap locals: java.lang.String java.util.HashMap
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.bcCount:I
getstatic org.apache.tomcat.util.buf.StringCache.trainThreshold:I
if_icmple 62
8: invokestatic java.lang.System.currentTimeMillis:()J
lstore 3
start local 3 9: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
10: astore 5
start local 5 11: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 21
StackMap locals: org.apache.tomcat.util.buf.ByteChunk java.lang.String java.util.HashMap long java.util.TreeMap top java.util.Iterator
StackMap stack:
12: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 13: aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.tomcat.util.buf.StringCache$ByteEntry
astore 8
start local 8 14: aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast int[]
astore 9
start local 9 15: aload 9
iconst_0
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 10
start local 10 16: aload 5
aload 10
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.ArrayList
astore 11
start local 11 17: aload 11
ifnonnull 20
18: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
19: aload 5
aload 10
aload 11
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: StackMap locals: org.apache.tomcat.util.buf.ByteChunk java.lang.String java.util.HashMap long java.util.TreeMap java.util.Map$Entry java.util.Iterator org.apache.tomcat.util.buf.StringCache$ByteEntry int[] java.lang.Integer java.util.ArrayList
StackMap stack:
aload 11
aload 8
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 9 end local 8 end local 6 21: StackMap locals: org.apache.tomcat.util.buf.ByteChunk java.lang.String java.util.HashMap long java.util.TreeMap top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
22: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
invokevirtual java.util.HashMap.size:()I
istore 6
start local 6 23: iload 6
getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
if_icmple 25
24: getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
istore 6
25: StackMap locals: org.apache.tomcat.util.buf.ByteChunk java.lang.String java.util.HashMap long java.util.TreeMap int
StackMap stack:
iload 6
anewarray org.apache.tomcat.util.buf.StringCache$ByteEntry
astore 7
start local 7 26: new org.apache.tomcat.util.buf.ByteChunk
dup
invokespecial org.apache.tomcat.util.buf.ByteChunk.<init>:()V
astore 8
start local 8 27: iconst_0
istore 9
start local 9 28: goto 52
29: StackMap locals: org.apache.tomcat.util.buf.StringCache$ByteEntry[] org.apache.tomcat.util.buf.ByteChunk int
StackMap stack:
aload 5
invokevirtual java.util.TreeMap.lastKey:()Ljava/lang/Object;
astore 10
start local 10 30: aload 5
aload 10
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.ArrayList
astore 11
start local 11 31: iconst_0
istore 12
start local 12 32: goto 50
33: StackMap locals: java.lang.Object java.util.ArrayList int
StackMap stack:
aload 11
iload 12
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.apache.tomcat.util.buf.StringCache$ByteEntry
astore 13
start local 13 34: aload 8
aload 13
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
iconst_0
35: aload 13
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
arraylength
36: invokevirtual org.apache.tomcat.util.buf.ByteChunk.setBytes:([BII)V
37: aload 8
38: aload 7
iload 9
39: invokestatic org.apache.tomcat.util.buf.StringCache.findClosest:(Lorg/apache/tomcat/util/buf/ByteChunk;[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;I)I
istore 14
start local 14 40: iload 14
iload 9
if_icmpne 43
41: aload 7
iload 9
iconst_1
iadd
aload 13
aastore
42: goto 48
43: StackMap locals: org.apache.tomcat.util.buf.StringCache$ByteEntry int
StackMap stack:
aload 7
iload 14
iconst_1
iadd
44: aload 7
iload 14
iconst_2
iadd
45: iload 9
iload 14
isub
iconst_1
isub
46: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: aload 7
iload 14
iconst_1
iadd
aload 13
aastore
48: StackMap locals:
StackMap stack:
iinc 9 1
end local 14 end local 13 49: iinc 12 1
StackMap locals:
StackMap stack:
50: iload 12
aload 11
invokevirtual java.util.ArrayList.size:()I
if_icmpge 51
iload 9
iload 6
if_icmplt 33
end local 12 51: StackMap locals:
StackMap stack:
aload 5
aload 10
invokevirtual java.util.TreeMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 52: StackMap locals:
StackMap stack:
iload 9
iload 6
if_icmplt 29
53: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.bcCount:I
54: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
invokevirtual java.util.HashMap.clear:()V
55: aload 7
putstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
56: getstatic org.apache.tomcat.util.buf.StringCache.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 79
57: invokestatic java.lang.System.currentTimeMillis:()J
lstore 10
start local 10 58: getstatic org.apache.tomcat.util.buf.StringCache.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "ByteCache generation time: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
59: lload 10
lload 3
lsub
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "ms"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 61: goto 79
62: StackMap locals: org.apache.tomcat.util.buf.ByteChunk java.lang.String java.util.HashMap
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.bcCount:I
iconst_1
iadd
putstatic org.apache.tomcat.util.buf.StringCache.bcCount:I
63: new org.apache.tomcat.util.buf.StringCache$ByteEntry
dup
invokespecial org.apache.tomcat.util.buf.StringCache$ByteEntry.<init>:()V
astore 3
start local 3 64: aload 3
aload 1
putfield org.apache.tomcat.util.buf.StringCache$ByteEntry.value:Ljava/lang/String;
65: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
aload 3
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast int[]
astore 4
start local 4 66: aload 4
ifnonnull 78
67: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getEnd:()I
istore 5
start local 5 68: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
istore 6
start local 6 69: aload 3
aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
newarray 8
putfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
70: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
iload 6
aload 3
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
71: iconst_0
iload 5
iload 6
isub
72: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
73: aload 3
aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getCharset:()Ljava/nio/charset/Charset;
putfield org.apache.tomcat.util.buf.StringCache$ByteEntry.charset:Ljava/nio/charset/Charset;
74: iconst_1
newarray 10
astore 4
75: aload 4
iconst_0
iconst_1
iastore
76: getstatic org.apache.tomcat.util.buf.StringCache.bcStats:Ljava/util/HashMap;
aload 3
aload 4
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 77: goto 79
78: StackMap locals: org.apache.tomcat.util.buf.StringCache$ByteEntry int[]
StackMap stack:
aload 4
iconst_0
aload 4
iconst_0
iaload
iconst_1
iadd
iastore
end local 4 end local 3 79: StackMap locals:
StackMap stack:
aload 2
monitorexit
80: goto 83
StackMap locals:
StackMap stack: java.lang.Throwable
81: aload 2
monitorexit
82: athrow
83: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 84: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
iconst_1
iadd
putstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
85: aload 0
invokestatic org.apache.tomcat.util.buf.StringCache.find:(Lorg/apache/tomcat/util/buf/ByteChunk;)Ljava/lang/String;
astore 1
start local 1 86: aload 1
ifnonnull 88
87: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.toStringInternal:()Ljava/lang/String;
areturn
88: StackMap locals: java.lang.String
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
iconst_1
iadd
putstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
89: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 bc Lorg/apache/tomcat/util/buf/ByteChunk;
2 84 1 value Ljava/lang/String;
9 61 3 t1 J
11 61 5 tempMap Ljava/util/TreeMap<Ljava/lang/Integer;Ljava/util/ArrayList<Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;>;>;
13 21 6 item Ljava/util/Map$Entry<Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;[I>;
14 21 8 entry Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
15 21 9 countA [I
16 21 10 count Ljava/lang/Integer;
17 21 11 list Ljava/util/ArrayList<Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;>;
23 61 6 size I
26 61 7 tempbcCache [Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
27 61 8 tempChunk Lorg/apache/tomcat/util/buf/ByteChunk;
28 61 9 n I
30 52 10 key Ljava/lang/Object;
31 52 11 list Ljava/util/ArrayList<Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;>;
32 51 12 i I
34 49 13 entry Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
40 49 14 insertPos I
58 61 10 t2 J
64 79 3 entry Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
66 79 4 count [I
68 77 5 end I
69 77 6 start I
86 90 1 result Ljava/lang/String;
Exception table:
from to target type
4 6 81 any
7 80 81 any
81 82 81 any
MethodParameters:
Name Flags
bc
public static java.lang.String toString(org.apache.tomcat.util.buf.CharChunk);
descriptor: (Lorg/apache/tomcat/util/buf/CharChunk;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=15, args_size=1
start local 0 0: getstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
ifnonnull 83
1: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.toStringInternal:()Ljava/lang/String;
astore 1
start local 1 2: getstatic org.apache.tomcat.util.buf.StringCache.charEnabled:Z
ifeq 82
aload 1
invokevirtual java.lang.String.length:()I
getstatic org.apache.tomcat.util.buf.StringCache.maxStringSize:I
if_icmpge 82
3: getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
dup
astore 2
monitorenter
4: getstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
ifnull 7
5: aload 1
aload 2
monitorexit
6: areturn
7: StackMap locals: java.lang.String java.util.HashMap
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.ccCount:I
getstatic org.apache.tomcat.util.buf.StringCache.trainThreshold:I
if_icmple 62
8: invokestatic java.lang.System.currentTimeMillis:()J
lstore 3
start local 3 9: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
10: astore 5
start local 5 11: getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 21
StackMap locals: org.apache.tomcat.util.buf.CharChunk java.lang.String java.util.HashMap long java.util.TreeMap top java.util.Iterator
StackMap stack:
12: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 13: aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.tomcat.util.buf.StringCache$CharEntry
astore 8
start local 8 14: aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast int[]
astore 9
start local 9 15: aload 9
iconst_0
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 10
start local 10 16: aload 5
aload 10
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.ArrayList
astore 11
start local 11 17: aload 11
ifnonnull 20
18: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
19: aload 5
aload 10
aload 11
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: StackMap locals: org.apache.tomcat.util.buf.CharChunk java.lang.String java.util.HashMap long java.util.TreeMap java.util.Map$Entry java.util.Iterator org.apache.tomcat.util.buf.StringCache$CharEntry int[] java.lang.Integer java.util.ArrayList
StackMap stack:
aload 11
aload 8
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 9 end local 8 end local 6 21: StackMap locals: org.apache.tomcat.util.buf.CharChunk java.lang.String java.util.HashMap long java.util.TreeMap top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
22: getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
invokevirtual java.util.HashMap.size:()I
istore 6
start local 6 23: iload 6
getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
if_icmple 25
24: getstatic org.apache.tomcat.util.buf.StringCache.cacheSize:I
istore 6
25: StackMap locals: org.apache.tomcat.util.buf.CharChunk java.lang.String java.util.HashMap long java.util.TreeMap int
StackMap stack:
iload 6
anewarray org.apache.tomcat.util.buf.StringCache$CharEntry
astore 7
start local 7 26: new org.apache.tomcat.util.buf.CharChunk
dup
invokespecial org.apache.tomcat.util.buf.CharChunk.<init>:()V
astore 8
start local 8 27: iconst_0
istore 9
start local 9 28: goto 52
29: StackMap locals: org.apache.tomcat.util.buf.StringCache$CharEntry[] org.apache.tomcat.util.buf.CharChunk int
StackMap stack:
aload 5
invokevirtual java.util.TreeMap.lastKey:()Ljava/lang/Object;
astore 10
start local 10 30: aload 5
aload 10
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.ArrayList
astore 11
start local 11 31: iconst_0
istore 12
start local 12 32: goto 50
33: StackMap locals: java.lang.Object java.util.ArrayList int
StackMap stack:
aload 11
iload 12
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.apache.tomcat.util.buf.StringCache$CharEntry
astore 13
start local 13 34: aload 8
aload 13
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
iconst_0
35: aload 13
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
arraylength
36: invokevirtual org.apache.tomcat.util.buf.CharChunk.setChars:([CII)V
37: aload 8
38: aload 7
iload 9
39: invokestatic org.apache.tomcat.util.buf.StringCache.findClosest:(Lorg/apache/tomcat/util/buf/CharChunk;[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;I)I
istore 14
start local 14 40: iload 14
iload 9
if_icmpne 43
41: aload 7
iload 9
iconst_1
iadd
aload 13
aastore
42: goto 48
43: StackMap locals: org.apache.tomcat.util.buf.StringCache$CharEntry int
StackMap stack:
aload 7
iload 14
iconst_1
iadd
44: aload 7
iload 14
iconst_2
iadd
45: iload 9
iload 14
isub
iconst_1
isub
46: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
47: aload 7
iload 14
iconst_1
iadd
aload 13
aastore
48: StackMap locals:
StackMap stack:
iinc 9 1
end local 14 end local 13 49: iinc 12 1
StackMap locals:
StackMap stack:
50: iload 12
aload 11
invokevirtual java.util.ArrayList.size:()I
if_icmpge 51
iload 9
iload 6
if_icmplt 33
end local 12 51: StackMap locals:
StackMap stack:
aload 5
aload 10
invokevirtual java.util.TreeMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 52: StackMap locals:
StackMap stack:
iload 9
iload 6
if_icmplt 29
53: iconst_0
putstatic org.apache.tomcat.util.buf.StringCache.ccCount:I
54: getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
invokevirtual java.util.HashMap.clear:()V
55: aload 7
putstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
56: getstatic org.apache.tomcat.util.buf.StringCache.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 78
57: invokestatic java.lang.System.currentTimeMillis:()J
lstore 10
start local 10 58: getstatic org.apache.tomcat.util.buf.StringCache.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "CharCache generation time: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
59: lload 10
lload 3
lsub
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "ms"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
60: invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 61: goto 78
62: StackMap locals: org.apache.tomcat.util.buf.CharChunk java.lang.String java.util.HashMap
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.ccCount:I
iconst_1
iadd
putstatic org.apache.tomcat.util.buf.StringCache.ccCount:I
63: new org.apache.tomcat.util.buf.StringCache$CharEntry
dup
invokespecial org.apache.tomcat.util.buf.StringCache$CharEntry.<init>:()V
astore 3
start local 3 64: aload 3
aload 1
putfield org.apache.tomcat.util.buf.StringCache$CharEntry.value:Ljava/lang/String;
65: getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
aload 3
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast int[]
astore 4
start local 4 66: aload 4
ifnonnull 77
67: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getEnd:()I
istore 5
start local 5 68: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getStart:()I
istore 6
start local 6 69: aload 3
aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getLength:()I
newarray 5
putfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
70: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getBuffer:()[C
iload 6
aload 3
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
71: iconst_0
iload 5
iload 6
isub
72: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
73: iconst_1
newarray 10
astore 4
74: aload 4
iconst_0
iconst_1
iastore
75: getstatic org.apache.tomcat.util.buf.StringCache.ccStats:Ljava/util/HashMap;
aload 3
aload 4
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 end local 5 76: goto 78
77: StackMap locals: org.apache.tomcat.util.buf.StringCache$CharEntry int[]
StackMap stack:
aload 4
iconst_0
aload 4
iconst_0
iaload
iconst_1
iadd
iastore
end local 4 end local 3 78: StackMap locals:
StackMap stack:
aload 2
monitorexit
79: goto 82
StackMap locals:
StackMap stack: java.lang.Throwable
80: aload 2
monitorexit
81: athrow
82: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 83: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
iconst_1
iadd
putstatic org.apache.tomcat.util.buf.StringCache.accessCount:I
84: aload 0
invokestatic org.apache.tomcat.util.buf.StringCache.find:(Lorg/apache/tomcat/util/buf/CharChunk;)Ljava/lang/String;
astore 1
start local 1 85: aload 1
ifnonnull 87
86: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.toStringInternal:()Ljava/lang/String;
areturn
87: StackMap locals: java.lang.String
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
iconst_1
iadd
putstatic org.apache.tomcat.util.buf.StringCache.hitCount:I
88: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 89 0 cc Lorg/apache/tomcat/util/buf/CharChunk;
2 83 1 value Ljava/lang/String;
9 61 3 t1 J
11 61 5 tempMap Ljava/util/TreeMap<Ljava/lang/Integer;Ljava/util/ArrayList<Lorg/apache/tomcat/util/buf/StringCache$CharEntry;>;>;
13 21 6 item Ljava/util/Map$Entry<Lorg/apache/tomcat/util/buf/StringCache$CharEntry;[I>;
14 21 8 entry Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
15 21 9 countA [I
16 21 10 count Ljava/lang/Integer;
17 21 11 list Ljava/util/ArrayList<Lorg/apache/tomcat/util/buf/StringCache$CharEntry;>;
23 61 6 size I
26 61 7 tempccCache [Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
27 61 8 tempChunk Lorg/apache/tomcat/util/buf/CharChunk;
28 61 9 n I
30 52 10 key Ljava/lang/Object;
31 52 11 list Ljava/util/ArrayList<Lorg/apache/tomcat/util/buf/StringCache$CharEntry;>;
32 51 12 i I
34 49 13 entry Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
40 49 14 insertPos I
58 61 10 t2 J
64 78 3 entry Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
66 78 4 count [I
68 76 5 end I
69 76 6 start I
85 89 1 result Ljava/lang/String;
Exception table:
from to target type
4 6 80 any
7 79 80 any
80 81 80 any
MethodParameters:
Name Flags
cc
protected static final int compare(org.apache.tomcat.util.buf.ByteChunk, byte[]);
descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;[B)I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
astore 3
start local 3 2: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
istore 4
start local 4 3: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getEnd:()I
istore 5
start local 5 4: aload 1
arraylength
istore 6
start local 6 5: iload 5
iload 4
isub
iload 6
if_icmpge 7
6: iload 5
iload 4
isub
istore 6
7: StackMap locals: org.apache.tomcat.util.buf.ByteChunk byte[] int byte[] int int int
StackMap stack:
iconst_0
istore 7
start local 7 8: goto 15
9: StackMap locals: int
StackMap stack:
aload 3
iload 7
iload 4
iadd
baload
aload 1
iload 7
baload
if_icmple 12
10: iconst_1
istore 2
11: goto 14
StackMap locals:
StackMap stack:
12: aload 3
iload 7
iload 4
iadd
baload
aload 1
iload 7
baload
if_icmpge 14
13: iconst_m1
istore 2
14: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 6
if_icmpge 16
iload 2
ifeq 9
end local 7 16: StackMap locals:
StackMap stack:
iload 2
ifne 22
17: aload 1
arraylength
iload 5
iload 4
isub
if_icmple 20
18: iconst_m1
istore 2
19: goto 22
StackMap locals:
StackMap stack:
20: aload 1
arraylength
iload 5
iload 4
isub
if_icmpge 22
21: iconst_1
istore 2
22: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 6 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 23 0 name Lorg/apache/tomcat/util/buf/ByteChunk;
0 23 1 compareTo [B
1 23 2 result I
2 23 3 b [B
3 23 4 start I
4 23 5 end I
5 23 6 len I
8 16 7 i I
MethodParameters:
Name Flags
name
compareTo
protected static final java.lang.String find(org.apache.tomcat.util.buf.ByteChunk);
descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;)Ljava/lang/String;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
arraylength
invokestatic org.apache.tomcat.util.buf.StringCache.findClosest:(Lorg/apache/tomcat/util/buf/ByteChunk;[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;I)I
istore 1
start local 1 1: iload 1
iflt 3
aload 0
getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
iload 1
aaload
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/ByteChunk;[B)I
ifne 3
2: aload 0
invokevirtual org.apache.tomcat.util.buf.ByteChunk.getCharset:()Ljava/nio/charset/Charset;
getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
iload 1
aaload
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.charset:Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.equals:(Ljava/lang/Object;)Z
ifne 4
3: StackMap locals: int
StackMap stack:
aconst_null
areturn
4: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.bcCache:[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
iload 1
aaload
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.value:Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 name Lorg/apache/tomcat/util/buf/ByteChunk;
1 5 1 pos I
MethodParameters:
Name Flags
name
protected static final int findClosest(org.apache.tomcat.util.buf.ByteChunk, org.apache.tomcat.util.buf.StringCache$ByteEntry[], int);
descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;[Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;I)I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 2
iconst_1
isub
istore 4
start local 4 2: iload 4
iconst_m1
if_icmpne 4
3: iconst_m1
ireturn
4: StackMap locals: int int
StackMap stack:
aload 0
aload 1
iconst_0
aaload
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/ByteChunk;[B)I
ifge 6
5: iconst_m1
ireturn
6: StackMap locals:
StackMap stack:
iload 4
ifne 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 9: StackMap locals: int
StackMap stack:
iload 4
iload 3
iadd
iconst_1
iushr
istore 5
10: aload 0
aload 1
iload 5
aaload
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/ByteChunk;[B)I
istore 6
start local 6 11: iload 6
iconst_1
if_icmpne 14
12: iload 5
istore 3
13: goto 17
StackMap locals: int
StackMap stack:
14: iload 6
ifne 16
15: iload 5
ireturn
16: StackMap locals:
StackMap stack:
iload 5
istore 4
17: StackMap locals:
StackMap stack:
iload 4
iload 3
isub
iconst_1
if_icmpne 9
18: aload 0
aload 1
iload 4
aaload
getfield org.apache.tomcat.util.buf.StringCache$ByteEntry.name:[B
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/ByteChunk;[B)I
istore 7
start local 7 19: iload 7
ifge 21
20: iload 3
ireturn
21: StackMap locals: int
StackMap stack:
iload 4
ireturn
end local 7 end local 6 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 22 0 name Lorg/apache/tomcat/util/buf/ByteChunk;
0 22 1 array [Lorg/apache/tomcat/util/buf/StringCache$ByteEntry;
0 22 2 len I
1 22 3 a I
2 22 4 b I
9 22 5 i I
11 22 6 result I
19 22 7 result2 I
MethodParameters:
Name Flags
name
array
len
protected static final int compare(org.apache.tomcat.util.buf.CharChunk, char[]);
descriptor: (Lorg/apache/tomcat/util/buf/CharChunk;[C)I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getBuffer:()[C
astore 3
start local 3 2: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getStart:()I
istore 4
start local 4 3: aload 0
invokevirtual org.apache.tomcat.util.buf.CharChunk.getEnd:()I
istore 5
start local 5 4: aload 1
arraylength
istore 6
start local 6 5: iload 5
iload 4
isub
iload 6
if_icmpge 7
6: iload 5
iload 4
isub
istore 6
7: StackMap locals: org.apache.tomcat.util.buf.CharChunk char[] int char[] int int int
StackMap stack:
iconst_0
istore 7
start local 7 8: goto 15
9: StackMap locals: int
StackMap stack:
aload 3
iload 7
iload 4
iadd
caload
aload 1
iload 7
caload
if_icmple 12
10: iconst_1
istore 2
11: goto 14
StackMap locals:
StackMap stack:
12: aload 3
iload 7
iload 4
iadd
caload
aload 1
iload 7
caload
if_icmpge 14
13: iconst_m1
istore 2
14: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 6
if_icmpge 16
iload 2
ifeq 9
end local 7 16: StackMap locals:
StackMap stack:
iload 2
ifne 22
17: aload 1
arraylength
iload 5
iload 4
isub
if_icmple 20
18: iconst_m1
istore 2
19: goto 22
StackMap locals:
StackMap stack:
20: aload 1
arraylength
iload 5
iload 4
isub
if_icmpge 22
21: iconst_1
istore 2
22: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 6 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 23 0 name Lorg/apache/tomcat/util/buf/CharChunk;
0 23 1 compareTo [C
1 23 2 result I
2 23 3 c [C
3 23 4 start I
4 23 5 end I
5 23 6 len I
8 16 7 i I
MethodParameters:
Name Flags
name
compareTo
protected static final java.lang.String find(org.apache.tomcat.util.buf.CharChunk);
descriptor: (Lorg/apache/tomcat/util/buf/CharChunk;)Ljava/lang/String;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
getstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
arraylength
invokestatic org.apache.tomcat.util.buf.StringCache.findClosest:(Lorg/apache/tomcat/util/buf/CharChunk;[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;I)I
istore 1
start local 1 1: iload 1
iflt 2
aload 0
getstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
iload 1
aaload
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/CharChunk;[C)I
ifeq 3
2: StackMap locals: int
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.buf.StringCache.ccCache:[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
iload 1
aaload
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.value:Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 name Lorg/apache/tomcat/util/buf/CharChunk;
1 4 1 pos I
MethodParameters:
Name Flags
name
protected static final int findClosest(org.apache.tomcat.util.buf.CharChunk, org.apache.tomcat.util.buf.StringCache$CharEntry[], int);
descriptor: (Lorg/apache/tomcat/util/buf/CharChunk;[Lorg/apache/tomcat/util/buf/StringCache$CharEntry;I)I
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 2
iconst_1
isub
istore 4
start local 4 2: iload 4
iconst_m1
if_icmpne 4
3: iconst_m1
ireturn
4: StackMap locals: int int
StackMap stack:
aload 0
aload 1
iconst_0
aaload
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/CharChunk;[C)I
ifge 6
5: iconst_m1
ireturn
6: StackMap locals:
StackMap stack:
iload 4
ifne 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 9: StackMap locals: int
StackMap stack:
iload 4
iload 3
iadd
iconst_1
iushr
istore 5
10: aload 0
aload 1
iload 5
aaload
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/CharChunk;[C)I
istore 6
start local 6 11: iload 6
iconst_1
if_icmpne 14
12: iload 5
istore 3
13: goto 17
StackMap locals: int
StackMap stack:
14: iload 6
ifne 16
15: iload 5
ireturn
16: StackMap locals:
StackMap stack:
iload 5
istore 4
17: StackMap locals:
StackMap stack:
iload 4
iload 3
isub
iconst_1
if_icmpne 9
18: aload 0
aload 1
iload 4
aaload
getfield org.apache.tomcat.util.buf.StringCache$CharEntry.name:[C
invokestatic org.apache.tomcat.util.buf.StringCache.compare:(Lorg/apache/tomcat/util/buf/CharChunk;[C)I
istore 7
start local 7 19: iload 7
ifge 21
20: iload 3
ireturn
21: StackMap locals: int
StackMap stack:
iload 4
ireturn
end local 7 end local 6 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 22 0 name Lorg/apache/tomcat/util/buf/CharChunk;
0 22 1 array [Lorg/apache/tomcat/util/buf/StringCache$CharEntry;
0 22 2 len I
1 22 3 a I
2 22 4 b I
9 22 5 i I
11 22 6 result I
19 22 7 result2 I
MethodParameters:
Name Flags
name
array
len
}
SourceFile: "StringCache.java"
NestMembers:
org.apache.tomcat.util.buf.StringCache$ByteEntry org.apache.tomcat.util.buf.StringCache$CharEntry
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
private ByteEntry = org.apache.tomcat.util.buf.StringCache$ByteEntry of org.apache.tomcat.util.buf.StringCache
private CharEntry = org.apache.tomcat.util.buf.StringCache$CharEntry of org.apache.tomcat.util.buf.StringCache