public abstract class org.eclipse.jetty.http.CookieCutter
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.eclipse.jetty.http.CookieCutter
super_class: java.lang.Object
{
protected static final org.slf4j.Logger LOG;
descriptor: Lorg/slf4j/Logger;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected final org.eclipse.jetty.http.CookieCompliance _complianceMode;
descriptor: Lorg/eclipse/jetty/http/CookieCompliance;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final org.eclipse.jetty.http.ComplianceViolation$Listener _complianceListener;
descriptor: Lorg/eclipse/jetty/http/ComplianceViolation$Listener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/http/CookieCutter;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.eclipse.jetty.http.CookieCutter.LOG:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.eclipse.jetty.http.CookieCompliance, org.eclipse.jetty.http.ComplianceViolation$Listener);
descriptor: (Lorg/eclipse/jetty/http/CookieCompliance;Lorg/eclipse/jetty/http/ComplianceViolation$Listener;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.eclipse.jetty.http.CookieCutter._complianceMode:Lorg/eclipse/jetty/http/CookieCompliance;
2: aload 0
aload 2
putfield org.eclipse.jetty.http.CookieCutter._complianceListener:Lorg/eclipse/jetty/http/ComplianceViolation$Listener;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/eclipse/jetty/http/CookieCutter;
0 4 1 compliance Lorg/eclipse/jetty/http/CookieCompliance;
0 4 2 complianceListener Lorg/eclipse/jetty/http/ComplianceViolation$Listener;
MethodParameters:
Name Flags
compliance
complianceListener
protected void parseFields(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=25, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 160
StackMap locals: org.eclipse.jetty.http.CookieCutter java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: aconst_null
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: aconst_null
astore 7
start local 7 6: aconst_null
astore 8
start local 8 7: aconst_null
astore 9
start local 9 8: aconst_null
astore 10
start local 10 9: iconst_0
istore 11
start local 11 10: iconst_0
istore 12
start local 12 11: iconst_0
istore 13
start local 13 12: iconst_0
istore 14
start local 14 13: iconst_0
istore 15
start local 15 14: iconst_0
istore 16
start local 16 15: iconst_m1
istore 17
start local 17 16: iconst_m1
istore 18
start local 18 17: iconst_0
istore 19
start local 19 18: aload 3
invokevirtual java.lang.String.length:()I
istore 20
start local 20 19: goto 157
20: StackMap locals: org.eclipse.jetty.http.CookieCutter java.util.List java.lang.StringBuilder java.lang.String java.util.Iterator java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String int int int int int int int int int int
StackMap stack:
iload 19
iload 20
if_icmpne 21
iconst_0
goto 22
StackMap locals:
StackMap stack:
21: aload 3
iload 19
invokevirtual java.lang.String.charAt:(I)C
StackMap locals:
StackMap stack: int
22: istore 21
start local 21 23: iload 13
ifeq 47
24: iload 15
ifeq 32
25: iconst_0
istore 15
26: iload 21
ifle 28
27: aload 2
iload 21
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
goto 156
28: StackMap locals: int
StackMap stack:
aload 2
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
29: iconst_0
istore 13
30: iinc 19 -1
31: goto 156
32: StackMap locals:
StackMap stack:
iload 21
lookupswitch { // 3
0: 40
34: 33
92: 38
default: 44
}
33: StackMap locals:
StackMap stack:
iconst_0
istore 13
34: iconst_1
istore 14
35: iload 19
istore 17
36: iconst_m1
istore 18
37: goto 156
38: StackMap locals:
StackMap stack:
iconst_1
istore 15
39: goto 156
40: StackMap locals:
StackMap stack:
aload 2
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
41: iconst_0
istore 13
42: iinc 19 -1
43: goto 156
44: StackMap locals:
StackMap stack:
aload 2
iload 21
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
45: goto 156
46: StackMap locals:
StackMap stack:
goto 156
47: StackMap locals:
StackMap stack:
iload 12
ifeq 125
48: iload 21
lookupswitch { // 6
0: 61
9: 49
32: 49
34: 106
44: 50
59: 61
default: 112
}
49: StackMap locals:
StackMap stack:
goto 156
50: StackMap locals:
StackMap stack:
getstatic org.eclipse.jetty.http.CookieCompliance$Violation.COMMA_NOT_VALID_OCTET:Lorg/eclipse/jetty/http/CookieCompliance$Violation;
aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceMode:Lorg/eclipse/jetty/http/CookieCompliance;
invokevirtual org.eclipse.jetty.http.CookieCompliance$Violation.isAllowedBy:(Lorg/eclipse/jetty/http/ComplianceViolation$Mode;)Z
ifeq 52
51: aload 0
getstatic org.eclipse.jetty.http.CookieCompliance$Violation.COMMA_NOT_VALID_OCTET:Lorg/eclipse/jetty/http/CookieCompliance$Violation;
new java.lang.StringBuilder
dup
ldc "Cookie "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.eclipse.jetty.http.CookieCutter.reportComplianceViolation:(Lorg/eclipse/jetty/http/CookieCompliance$Violation;Ljava/lang/String;)V
goto 61
52: StackMap locals:
StackMap stack:
iload 14
ifeq 57
53: aload 2
aload 3
iload 17
iload 19
iinc 19 -1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
54: iconst_1
istore 13
55: iconst_0
istore 14
56: goto 156
57: StackMap locals:
StackMap stack:
iload 17
ifge 59
58: iload 19
istore 17
59: StackMap locals:
StackMap stack:
iload 19
istore 18
60: goto 156
61: StackMap locals:
StackMap stack:
iload 14
ifeq 66
62: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 22
start local 22 63: aload 2
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
64: iconst_0
istore 14
65: goto 72
end local 22 66: StackMap locals:
StackMap stack:
iload 17
iflt 71
67: iload 18
iload 17
if_icmplt 68
aload 3
iload 17
iload 18
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 69
StackMap locals:
StackMap stack:
68: aload 3
iload 17
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
69: astore 22
start local 22 70: goto 72
end local 22 71: StackMap locals:
StackMap stack:
ldc ""
astore 22
start local 22 72: StackMap locals: java.lang.String
StackMap stack:
aload 5
ldc "$"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 90
73: getstatic org.eclipse.jetty.http.CookieCompliance$Violation.RESERVED_NAMES_NOT_DOLLAR_PREFIXED:Lorg/eclipse/jetty/http/CookieCompliance$Violation;
aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceMode:Lorg/eclipse/jetty/http/CookieCompliance;
invokevirtual org.eclipse.jetty.http.CookieCompliance$Violation.isAllowedBy:(Lorg/eclipse/jetty/http/ComplianceViolation$Mode;)Z
ifeq 102
74: aload 0
getstatic org.eclipse.jetty.http.CookieCompliance$Violation.RESERVED_NAMES_NOT_DOLLAR_PREFIXED:Lorg/eclipse/jetty/http/CookieCompliance$Violation;
new java.lang.StringBuilder
dup
ldc "Cookie "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " field "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.eclipse.jetty.http.CookieCutter.reportComplianceViolation:(Lorg/eclipse/jetty/http/CookieCompliance$Violation;Ljava/lang/String;)V
75: aload 5
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 23
start local 23 76: aload 23
dup
astore 24
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
-1331729356: 77
36680265: 78
36693669: 79
559163880: 80
default: 89
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
77: aload 24
ldc "$version"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 87
goto 102
StackMap locals:
StackMap stack:
78: aload 24
ldc "$path"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 81
goto 102
StackMap locals:
StackMap stack:
79: aload 24
ldc "$port"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 85
goto 102
StackMap locals:
StackMap stack:
80: aload 24
ldc "$domain"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 83
goto 102
81: StackMap locals:
StackMap stack:
aload 22
astore 8
82: goto 102
83: StackMap locals:
StackMap stack:
aload 22
astore 9
84: goto 102
85: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "$port="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 22
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
86: goto 102
87: StackMap locals:
StackMap stack:
aload 22
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 11
88: goto 102
end local 23 89: StackMap locals:
StackMap stack:
goto 102
90: StackMap locals:
StackMap stack:
aload 6
ifnull 97
91: iload 16
ifne 94
92: aload 0
aload 6
aload 7
aload 9
aload 8
iload 11
aload 10
invokevirtual org.eclipse.jetty.http.CookieCutter.addCookie:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
93: iconst_0
istore 16
94: StackMap locals:
StackMap stack:
aconst_null
astore 9
95: aconst_null
astore 8
96: aconst_null
astore 10
97: StackMap locals:
StackMap stack:
aload 5
astore 6
98: aload 22
astore 7
99: goto 102
100: StackMap locals:
StackMap stack: java.lang.Exception
astore 23
start local 23 101: getstatic org.eclipse.jetty.http.CookieCutter.LOG:Lorg/slf4j/Logger;
ldc "Unable to process Cookie"
aload 23
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 23 102: StackMap locals:
StackMap stack:
aconst_null
astore 5
103: iconst_m1
istore 17
104: iconst_0
istore 12
105: goto 156
end local 22 106: StackMap locals:
StackMap stack:
iload 17
ifge 112
107: iload 19
istore 17
108: iconst_1
istore 13
109: aload 2
ifnonnull 156
110: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
111: goto 156
112: StackMap locals:
StackMap stack:
iload 14
ifeq 117
113: aload 2
aload 3
iload 17
iload 19
iinc 19 -1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
114: iconst_1
istore 13
115: iconst_0
istore 14
116: goto 156
117: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceMode:Lorg/eclipse/jetty/http/CookieCompliance;
getstatic org.eclipse.jetty.http.CookieCompliance.RFC6265:Lorg/eclipse/jetty/http/CookieCompliance;
if_acmpne 120
118: aload 0
iload 13
iload 21
invokevirtual org.eclipse.jetty.http.CookieCutter.isRFC6265RejectedCharacter:(ZC)Z
ifeq 120
119: iconst_1
istore 16
120: StackMap locals:
StackMap stack:
iload 17
ifge 122
121: iload 19
istore 17
122: StackMap locals:
StackMap stack:
iload 19
istore 18
123: goto 156
124: StackMap locals:
StackMap stack:
goto 156
125: StackMap locals:
StackMap stack:
iload 21
lookupswitch { // 6
0: 126
9: 126
32: 126
34: 127
59: 129
61: 133
default: 145
}
126: StackMap locals:
StackMap stack:
goto 156
127: StackMap locals:
StackMap stack:
iconst_1
istore 16
128: goto 156
129: StackMap locals:
StackMap stack:
iconst_m1
istore 17
130: iconst_0
istore 12
131: iconst_0
istore 16
132: goto 156
133: StackMap locals:
StackMap stack:
iload 14
ifeq 138
134: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
135: aload 2
iconst_0
invokevirtual java.lang.StringBuilder.setLength:(I)V
136: iconst_0
istore 14
137: goto 142
138: StackMap locals:
StackMap stack:
iload 17
iflt 142
139: iload 18
iload 17
if_icmplt 140
aload 3
iload 17
iload 18
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 141
StackMap locals:
StackMap stack:
140: aload 3
iload 17
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
141: astore 5
142: StackMap locals:
StackMap stack:
iconst_m1
istore 17
143: iconst_1
istore 12
144: goto 156
145: StackMap locals:
StackMap stack:
iload 14
ifeq 150
146: aload 2
aload 3
iload 17
iload 19
iinc 19 -1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
147: iconst_1
istore 13
148: iconst_0
istore 14
149: goto 156
150: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceMode:Lorg/eclipse/jetty/http/CookieCompliance;
getstatic org.eclipse.jetty.http.CookieCompliance.RFC6265:Lorg/eclipse/jetty/http/CookieCompliance;
if_acmpne 153
151: aload 0
iload 13
iload 21
invokevirtual org.eclipse.jetty.http.CookieCutter.isRFC6265RejectedCharacter:(ZC)Z
ifeq 153
152: iconst_1
istore 16
153: StackMap locals:
StackMap stack:
iload 17
ifge 155
154: iload 19
istore 17
155: StackMap locals:
StackMap stack:
iload 19
istore 18
end local 21 156: StackMap locals:
StackMap stack:
iinc 19 1
StackMap locals:
StackMap stack:
157: iload 19
iload 20
if_icmple 20
end local 20 end local 19 158: aload 6
ifnull 160
iload 16
ifne 160
159: aload 0
aload 6
aload 7
aload 9
aload 8
iload 11
aload 10
invokevirtual org.eclipse.jetty.http.CookieCutter.addCookie:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 160: StackMap locals: org.eclipse.jetty.http.CookieCutter java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
161: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 162 0 this Lorg/eclipse/jetty/http/CookieCutter;
0 162 1 rawFields Ljava/util/List<Ljava/lang/String;>;
1 162 2 unquoted Ljava/lang/StringBuilder;
3 160 3 hdr Ljava/lang/String;
4 160 5 name Ljava/lang/String;
5 160 6 cookieName Ljava/lang/String;
6 160 7 cookieValue Ljava/lang/String;
7 160 8 cookiePath Ljava/lang/String;
8 160 9 cookieDomain Ljava/lang/String;
9 160 10 cookieComment Ljava/lang/String;
10 160 11 cookieVersion I
11 160 12 invalue Z
12 160 13 inQuoted Z
13 160 14 quoted Z
14 160 15 escaped Z
15 160 16 reject Z
16 160 17 tokenstart I
17 160 18 tokenend I
18 158 19 i I
19 158 20 length I
23 156 21 c C
63 66 22 value Ljava/lang/String;
70 71 22 value Ljava/lang/String;
72 106 22 value Ljava/lang/String;
76 89 23 lowercaseName Ljava/lang/String;
101 102 23 e Ljava/lang/Exception;
Exception table:
from to target type
72 99 100 Class java.lang.Exception
Signature: (Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
rawFields
protected void reportComplianceViolation(org.eclipse.jetty.http.CookieCompliance$Violation, java.lang.String);
descriptor: (Lorg/eclipse/jetty/http/CookieCompliance$Violation;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceListener:Lorg/eclipse/jetty/http/ComplianceViolation$Listener;
ifnull 2
1: aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceListener:Lorg/eclipse/jetty/http/ComplianceViolation$Listener;
aload 0
getfield org.eclipse.jetty.http.CookieCutter._complianceMode:Lorg/eclipse/jetty/http/CookieCompliance;
aload 1
aload 2
invokeinterface org.eclipse.jetty.http.ComplianceViolation$Listener.onComplianceViolation:(Lorg/eclipse/jetty/http/ComplianceViolation$Mode;Lorg/eclipse/jetty/http/ComplianceViolation;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jetty/http/CookieCutter;
0 3 1 violation Lorg/eclipse/jetty/http/CookieCompliance$Violation;
0 3 2 reason Ljava/lang/String;
MethodParameters:
Name Flags
violation
reason
protected abstract void addCookie(java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
cookieName
cookieValue
cookieDomain
cookiePath
cookieVersion
cookieComment
protected boolean isRFC6265RejectedCharacter(boolean, char);
descriptor: (ZC)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 3
1: iload 2
invokestatic java.lang.Character.isISOControl:(C)Z
ifeq 9
2: iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iload 2
invokestatic java.lang.Character.isISOControl:(C)Z
ifne 8
4: iload 2
bipush 127
if_icmpgt 8
5: iload 2
bipush 44
if_icmpeq 8
6: iload 2
bipush 59
if_icmpeq 8
7: iconst_0
ireturn
StackMap locals:
StackMap stack:
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jetty/http/CookieCutter;
0 10 1 inQuoted Z
0 10 2 c C
MethodParameters:
Name Flags
inQuoted
c
}
SourceFile: "CookieCutter.java"
InnerClasses:
public abstract Listener = org.eclipse.jetty.http.ComplianceViolation$Listener of org.eclipse.jetty.http.ComplianceViolation
public abstract Mode = org.eclipse.jetty.http.ComplianceViolation$Mode of org.eclipse.jetty.http.ComplianceViolation
public final Violation = org.eclipse.jetty.http.CookieCompliance$Violation of org.eclipse.jetty.http.CookieCompliance