public class org.apache.catalina.valves.rewrite.Substitution
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.valves.rewrite.Substitution
super_class: java.lang.Object
{
protected org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement[] elements;
descriptor: [Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
flags: (0x0004) ACC_PROTECTED
protected java.lang.String sub;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
private boolean escapeBackReferences;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield org.apache.catalina.valves.rewrite.Substitution.elements:[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
2: aload 0
aconst_null
putfield org.apache.catalina.valves.rewrite.Substitution.sub:Ljava/lang/String;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
public java.lang.String getSub();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.valves.rewrite.Substitution.sub:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
public void setSub(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.valves.rewrite.Substitution.sub:Ljava/lang/String;
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 1 1 sub Ljava/lang/String;
MethodParameters:
Name Flags
sub
void setEscapeBackReferences(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.valves.rewrite.Substitution.escapeBackReferences:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 2 1 escapeBackReferences Z
MethodParameters:
Name Flags
escapeBackReferences
public void parse(java.util.Map<java.lang.String, org.apache.catalina.valves.rewrite.RewriteMap>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 0
getfield org.apache.catalina.valves.rewrite.Substitution.sub:Ljava/lang/String;
aload 1
invokevirtual org.apache.catalina.valves.rewrite.Substitution.parseSubstitution:(Ljava/lang/String;Ljava/util/Map;)[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
putfield org.apache.catalina.valves.rewrite.Substitution.elements:[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 2 1 maps Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/valves/rewrite/RewriteMap;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/valves/rewrite/RewriteMap;>;)V
MethodParameters:
Name Flags
maps
private org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement[] parseSubstitution(java.lang.String, java.util.Map<java.lang.String, org.apache.catalina.valves.rewrite.RewriteMap>);
descriptor: (Ljava/lang/String;Ljava/util/Map;)[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=15, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 105
6: StackMap locals: org.apache.catalina.valves.rewrite.Substitution java.lang.String java.util.Map java.util.List int int int int
StackMap stack:
aload 1
bipush 37
iload 4
invokevirtual java.lang.String.indexOf:(II)I
istore 5
7: aload 1
bipush 36
iload 4
invokevirtual java.lang.String.indexOf:(II)I
istore 6
8: aload 1
bipush 92
iload 4
invokevirtual java.lang.String.indexOf:(II)I
istore 7
9: iload 5
iconst_m1
if_icmpne 15
iload 6
iconst_m1
if_icmpne 15
iload 7
iconst_m1
if_icmpne 15
10: new org.apache.catalina.valves.rewrite.Substitution$StaticElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$StaticElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 11: aload 8
aload 1
iload 4
aload 1
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$StaticElement.value:Ljava/lang/String;
12: aload 1
invokevirtual java.lang.String.length:()I
istore 4
13: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 14: goto 105
StackMap locals:
StackMap stack:
15: aload 0
iload 7
iconst_2
newarray 10
dup
iconst_0
iload 6
iastore
dup
iconst_1
iload 5
iastore
invokevirtual org.apache.catalina.valves.rewrite.Substitution.isFirstPos:(I[I)Z
ifeq 23
16: iload 7
iconst_1
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpne 18
17: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
new org.apache.catalina.valves.rewrite.Substitution$StaticElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$StaticElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 19: aload 8
new java.lang.StringBuilder
dup
aload 1
iload 4
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 7
iconst_1
iadd
iload 7
iconst_2
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$StaticElement.value:Ljava/lang/String;
20: iload 7
iconst_2
iadd
istore 4
21: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 22: goto 105
StackMap locals:
StackMap stack:
23: aload 0
iload 6
iconst_1
newarray 10
dup
iconst_0
iload 5
iastore
invokevirtual org.apache.catalina.valves.rewrite.Substitution.isFirstPos:(I[I)Z
ifeq 64
24: iload 6
iconst_1
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpne 26
25: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
iload 4
iload 6
if_icmpge 31
27: new org.apache.catalina.valves.rewrite.Substitution$StaticElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$StaticElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 28: aload 8
aload 1
iload 4
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$StaticElement.value:Ljava/lang/String;
29: iload 6
istore 4
30: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 31: StackMap locals:
StackMap stack:
aload 1
iload 6
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isDigit:(C)Z
ifeq 37
32: new org.apache.catalina.valves.rewrite.Substitution$RewriteRuleBackReferenceElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$RewriteRuleBackReferenceElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 33: aload 8
aload 1
iload 6
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 10
invokestatic java.lang.Character.digit:(CI)I
putfield org.apache.catalina.valves.rewrite.Substitution$RewriteRuleBackReferenceElement.n:I
34: iload 6
iconst_2
iadd
istore 4
35: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 36: goto 105
StackMap locals:
StackMap stack:
37: aload 1
iload 6
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 123
if_icmpne 63
38: new org.apache.catalina.valves.rewrite.Substitution$MapElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$MapElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 39: aload 1
bipush 123
iload 6
invokevirtual java.lang.String.indexOf:(II)I
istore 9
start local 9 40: iconst_1
aload 1
iload 9
invokestatic org.apache.catalina.valves.rewrite.Substitution.findMatchingColonOrBar:(ZLjava/lang/String;I)I
istore 10
start local 10 41: iconst_0
aload 1
iload 9
invokestatic org.apache.catalina.valves.rewrite.Substitution.findMatchingColonOrBar:(ZLjava/lang/String;I)I
istore 11
start local 11 42: aload 1
iload 9
invokestatic org.apache.catalina.valves.rewrite.Substitution.findMatchingBrace:(Ljava/lang/String;I)I
istore 12
start local 12 43: iconst_m1
iload 9
if_icmpge 44
iload 9
iload 10
if_icmpge 44
iload 10
iload 12
if_icmplt 45
44: StackMap locals: org.apache.catalina.valves.rewrite.Substitution java.lang.String java.util.Map java.util.List int int int int org.apache.catalina.valves.rewrite.Substitution$MapElement int int int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals:
StackMap stack:
aload 8
aload 2
aload 1
iload 9
iconst_1
iadd
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.catalina.valves.rewrite.RewriteMap
putfield org.apache.catalina.valves.rewrite.Substitution$MapElement.map:Lorg/apache/catalina/valves/rewrite/RewriteMap;
46: aload 8
getfield org.apache.catalina.valves.rewrite.Substitution$MapElement.map:Lorg/apache/catalina/valves/rewrite/RewriteMap;
ifnonnull 48
47: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": No map: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
iload 9
iconst_1
iadd
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
48: StackMap locals:
StackMap stack:
aconst_null
astore 13
start local 13 49: aconst_null
astore 14
start local 14 50: iload 11
iconst_m1
if_icmple 56
51: iload 10
iload 11
if_icmpge 52
iload 11
iload 12
if_icmplt 53
52: StackMap locals: java.lang.String java.lang.String
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
53: StackMap locals:
StackMap stack:
aload 1
iload 10
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 13
54: aload 1
iload 11
iconst_1
iadd
iload 12
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 14
55: goto 57
56: StackMap locals:
StackMap stack:
aload 1
iload 10
iconst_1
iadd
iload 12
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 13
57: StackMap locals:
StackMap stack:
aload 8
aload 0
aload 13
aload 2
invokevirtual org.apache.catalina.valves.rewrite.Substitution.parseSubstitution:(Ljava/lang/String;Ljava/util/Map;)[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
putfield org.apache.catalina.valves.rewrite.Substitution$MapElement.key:[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
58: aload 14
ifnull 60
59: aload 8
aload 0
aload 14
aload 2
invokevirtual org.apache.catalina.valves.rewrite.Substitution.parseSubstitution:(Ljava/lang/String;Ljava/util/Map;)[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
putfield org.apache.catalina.valves.rewrite.Substitution$MapElement.defaultValue:[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
60: StackMap locals:
StackMap stack:
iload 12
iconst_1
iadd
istore 4
61: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 62: goto 105
63: StackMap locals: org.apache.catalina.valves.rewrite.Substitution java.lang.String java.util.Map java.util.List int int int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": missing digit or curly brace."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
64: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
aload 1
invokevirtual java.lang.String.length:()I
if_icmpne 66
65: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
66: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmpge 71
67: new org.apache.catalina.valves.rewrite.Substitution$StaticElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$StaticElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 68: aload 8
aload 1
iload 4
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$StaticElement.value:Ljava/lang/String;
69: iload 5
istore 4
70: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 71: StackMap locals:
StackMap stack:
aload 1
iload 5
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isDigit:(C)Z
ifeq 77
72: new org.apache.catalina.valves.rewrite.Substitution$RewriteCondBackReferenceElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$RewriteCondBackReferenceElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
start local 8 73: aload 8
aload 1
iload 5
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 10
invokestatic java.lang.Character.digit:(CI)I
putfield org.apache.catalina.valves.rewrite.Substitution$RewriteCondBackReferenceElement.n:I
74: iload 5
iconst_2
iadd
istore 4
75: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 76: goto 105
StackMap locals:
StackMap stack:
77: aload 1
iload 5
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 123
if_icmpne 104
78: aconst_null
astore 8
start local 8 79: aload 1
bipush 123
iload 5
invokevirtual java.lang.String.indexOf:(II)I
istore 9
start local 9 80: iconst_1
aload 1
iload 9
invokestatic org.apache.catalina.valves.rewrite.Substitution.findMatchingColonOrBar:(ZLjava/lang/String;I)I
istore 10
start local 10 81: aload 1
iload 9
invokestatic org.apache.catalina.valves.rewrite.Substitution.findMatchingBrace:(Ljava/lang/String;I)I
istore 11
start local 11 82: iconst_m1
iload 9
if_icmpge 83
iload 9
iload 11
if_icmplt 84
83: StackMap locals: org.apache.catalina.valves.rewrite.Substitution java.lang.String java.util.Map java.util.List int int int int org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement int int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
84: StackMap locals:
StackMap stack:
iload 10
iconst_m1
if_icmple 99
iload 9
iload 10
if_icmpge 99
iload 10
iload 11
if_icmpge 99
85: aload 1
iload 9
iconst_1
iadd
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 12
start local 12 86: aload 12
ldc "ENV"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 90
87: new org.apache.catalina.valves.rewrite.Substitution$ServerVariableEnvElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$ServerVariableEnvElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
88: aload 8
checkcast org.apache.catalina.valves.rewrite.Substitution$ServerVariableEnvElement
aload 1
iload 10
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$ServerVariableEnvElement.key:Ljava/lang/String;
89: goto 101
StackMap locals: java.lang.String
StackMap stack:
90: aload 12
ldc "SSL"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 94
91: new org.apache.catalina.valves.rewrite.Substitution$ServerVariableSslElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$ServerVariableSslElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
92: aload 8
checkcast org.apache.catalina.valves.rewrite.Substitution$ServerVariableSslElement
aload 1
iload 10
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$ServerVariableSslElement.key:Ljava/lang/String;
93: goto 101
StackMap locals:
StackMap stack:
94: aload 12
ldc "HTTP"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 98
95: new org.apache.catalina.valves.rewrite.Substitution$ServerVariableHttpElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$ServerVariableHttpElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
96: aload 8
checkcast org.apache.catalina.valves.rewrite.Substitution$ServerVariableHttpElement
aload 1
iload 10
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$ServerVariableHttpElement.key:Ljava/lang/String;
97: goto 101
98: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": Bad type: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 12 99: StackMap locals:
StackMap stack:
new org.apache.catalina.valves.rewrite.Substitution$ServerVariableElement
dup
aload 0
invokespecial org.apache.catalina.valves.rewrite.Substitution$ServerVariableElement.<init>:(Lorg/apache/catalina/valves/rewrite/Substitution;)V
astore 8
100: aload 8
checkcast org.apache.catalina.valves.rewrite.Substitution$ServerVariableElement
aload 1
iload 9
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.apache.catalina.valves.rewrite.Substitution$ServerVariableElement.key:Ljava/lang/String;
101: StackMap locals:
StackMap stack:
iload 11
iconst_1
iadd
istore 4
102: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 10 end local 9 end local 8 103: goto 105
104: StackMap locals: org.apache.catalina.valves.rewrite.Substitution java.lang.String java.util.Map java.util.List int int int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": missing digit or curly brace."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
105: StackMap locals:
StackMap stack:
iload 4
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 6
106: aload 3
iconst_0
anewarray org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement[]
areturn
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 107 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 107 1 sub Ljava/lang/String;
0 107 2 maps Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/valves/rewrite/RewriteMap;>;
1 107 3 elements Ljava/util/List<Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;>;
2 107 4 pos I
3 107 5 percentPos I
4 107 6 dollarPos I
5 107 7 backslashPos I
11 14 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$StaticElement;
19 22 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$StaticElement;
28 31 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$StaticElement;
33 36 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$RewriteRuleBackReferenceElement;
39 62 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$MapElement;
40 62 9 open I
41 62 10 colon I
42 62 11 def I
43 62 12 close I
49 62 13 key Ljava/lang/String;
50 62 14 defaultValue Ljava/lang/String;
68 71 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$StaticElement;
73 76 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$RewriteCondBackReferenceElement;
79 103 8 newElement Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
80 103 9 open I
81 103 10 colon I
82 103 11 close I
86 99 12 type Ljava/lang/String;
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/valves/rewrite/RewriteMap;>;)[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
MethodParameters:
Name Flags
sub
maps
private static int findMatchingBrace(java.lang.String, int);
descriptor: (Ljava/lang/String;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: iconst_1
istore 2
start local 2 1: iload 1
iconst_1
iadd
istore 3
start local 3 2: goto 14
3: StackMap locals: int int
StackMap stack:
aload 0
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 4: iload 4
bipush 123
if_icmpne 9
5: aload 0
iload 3
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 6: iload 5
bipush 36
if_icmpeq 7
iload 5
bipush 37
if_icmpne 13
7: StackMap locals: int int
StackMap stack:
iinc 2 1
end local 5 8: goto 13
StackMap locals:
StackMap stack:
9: iload 4
bipush 125
if_icmpne 13
10: iinc 2 -1
11: iload 2
ifne 13
12: iload 3
ireturn
end local 4 13: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 3 15: iconst_m1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 sub Ljava/lang/String;
0 16 1 start I
1 16 2 nesting I
2 15 3 i I
4 13 4 c C
6 8 5 previousChar C
MethodParameters:
Name Flags
sub
start
private static int findMatchingColonOrBar(boolean, java.lang.String, int);
descriptor: (ZLjava/lang/String;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, 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
iadd
istore 4
start local 4 2: goto 17
3: StackMap locals: int int
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 4: iload 5
bipush 123
if_icmpne 9
5: aload 1
iload 4
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 6: iload 6
bipush 36
if_icmpeq 7
iload 6
bipush 37
if_icmpne 16
7: StackMap locals: int int
StackMap stack:
iinc 3 1
end local 6 8: goto 16
StackMap locals:
StackMap stack:
9: iload 5
bipush 125
if_icmpne 12
10: iinc 3 -1
11: goto 16
StackMap locals:
StackMap stack:
12: iload 0
ifeq 13
iload 5
bipush 58
if_icmpne 16
goto 14
StackMap locals:
StackMap stack:
13: iload 5
bipush 124
if_icmpne 16
14: StackMap locals:
StackMap stack:
iload 3
ifne 16
15: iload 4
ireturn
end local 5 16: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 4 18: iconst_m1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 colon Z
0 19 1 sub Ljava/lang/String;
0 19 2 start I
1 19 3 nesting I
2 18 4 i I
4 16 5 c C
6 8 6 previousChar C
MethodParameters:
Name Flags
colon
sub
start
public java.lang.String evaluate(java.util.regex.Matcher, java.util.regex.Matcher, org.apache.catalina.valves.rewrite.Resolver);
descriptor: (Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;Lorg/apache/catalina/valves/rewrite/Resolver;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 0
getfield org.apache.catalina.valves.rewrite.Substitution.elements:[Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
aload 1
aload 2
aload 3
invokevirtual org.apache.catalina.valves.rewrite.Substitution.evaluateSubstitution:([Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;Lorg/apache/catalina/valves/rewrite/Resolver;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 1 1 rule Ljava/util/regex/Matcher;
0 1 2 cond Ljava/util/regex/Matcher;
0 1 3 resolver Lorg/apache/catalina/valves/rewrite/Resolver;
MethodParameters:
Name Flags
rule
cond
resolver
private java.lang.String evaluateSubstitution(org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement[], java.util.regex.Matcher, java.util.regex.Matcher, org.apache.catalina.valves.rewrite.Resolver);
descriptor: ([Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;Lorg/apache/catalina/valves/rewrite/Resolver;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 1: aload 1
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 5
StackMap locals: org.apache.catalina.valves.rewrite.Substitution org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement[] java.util.regex.Matcher java.util.regex.Matcher org.apache.catalina.valves.rewrite.Resolver java.lang.StringBuilder top int int org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement[]
StackMap stack:
2: aload 9
iload 7
aaload
astore 6
start local 6 3: aload 5
aload 6
aload 2
aload 3
aload 4
invokevirtual org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement.evaluate:(Ljava/util/regex/Matcher;Ljava/util/regex/Matcher;Lorg/apache/catalina/valves/rewrite/Resolver;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 6 4: iinc 7 1
StackMap locals:
StackMap stack:
5: iload 7
iload 8
if_icmplt 2
6: aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 7 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 7 1 elements [Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
0 7 2 rule Ljava/util/regex/Matcher;
0 7 3 cond Ljava/util/regex/Matcher;
0 7 4 resolver Lorg/apache/catalina/valves/rewrite/Resolver;
1 7 5 buf Ljava/lang/StringBuilder;
3 4 6 element Lorg/apache/catalina/valves/rewrite/Substitution$SubstitutionElement;
MethodParameters:
Name Flags
elements
rule
cond
resolver
private boolean isFirstPos(int, int[]);
descriptor: (I[I)Z
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifge 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: org.apache.catalina.valves.rewrite.Substitution int int[] top int int int[]
StackMap stack:
3: aload 6
iload 4
iaload
istore 3
start local 3 4: iload 3
iflt 6
iload 3
iload 1
if_icmpge 6
5: iconst_0
ireturn
end local 3 6: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 3
8: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/catalina/valves/rewrite/Substitution;
0 9 1 testPos I
0 9 2 others [I
4 6 3 other I
MethodParameters:
Name Flags
testPos
others
}
SourceFile: "Substitution.java"
NestMembers:
org.apache.catalina.valves.rewrite.Substitution$MapElement org.apache.catalina.valves.rewrite.Substitution$RewriteCondBackReferenceElement org.apache.catalina.valves.rewrite.Substitution$RewriteRuleBackReferenceElement org.apache.catalina.valves.rewrite.Substitution$ServerVariableElement org.apache.catalina.valves.rewrite.Substitution$ServerVariableEnvElement org.apache.catalina.valves.rewrite.Substitution$ServerVariableHttpElement org.apache.catalina.valves.rewrite.Substitution$ServerVariableSslElement org.apache.catalina.valves.rewrite.Substitution$StaticElement org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement
InnerClasses:
public MapElement = org.apache.catalina.valves.rewrite.Substitution$MapElement of org.apache.catalina.valves.rewrite.Substitution
public RewriteCondBackReferenceElement = org.apache.catalina.valves.rewrite.Substitution$RewriteCondBackReferenceElement of org.apache.catalina.valves.rewrite.Substitution
public RewriteRuleBackReferenceElement = org.apache.catalina.valves.rewrite.Substitution$RewriteRuleBackReferenceElement of org.apache.catalina.valves.rewrite.Substitution
public ServerVariableElement = org.apache.catalina.valves.rewrite.Substitution$ServerVariableElement of org.apache.catalina.valves.rewrite.Substitution
public ServerVariableEnvElement = org.apache.catalina.valves.rewrite.Substitution$ServerVariableEnvElement of org.apache.catalina.valves.rewrite.Substitution
public ServerVariableHttpElement = org.apache.catalina.valves.rewrite.Substitution$ServerVariableHttpElement of org.apache.catalina.valves.rewrite.Substitution
public ServerVariableSslElement = org.apache.catalina.valves.rewrite.Substitution$ServerVariableSslElement of org.apache.catalina.valves.rewrite.Substitution
public StaticElement = org.apache.catalina.valves.rewrite.Substitution$StaticElement of org.apache.catalina.valves.rewrite.Substitution
public abstract SubstitutionElement = org.apache.catalina.valves.rewrite.Substitution$SubstitutionElement of org.apache.catalina.valves.rewrite.Substitution