abstract class io.undertow.util.URLUtils$QueryStringParser
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: io.undertow.util.URLUtils$QueryStringParser
super_class: java.lang.Object
{
private final char separator;
descriptor: C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean parseUntilSeparator;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(char, boolean);
descriptor: (CZ)V
flags: (0x0000)
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
iload 1
putfield io.undertow.util.URLUtils$QueryStringParser.separator:C
2: aload 0
iload 2
putfield io.undertow.util.URLUtils$QueryStringParser.parseUntilSeparator:Z
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/util/URLUtils$QueryStringParser;
0 4 1 separator C
0 4 2 parseUntilSeparator Z
MethodParameters:
Name Flags
separator final
parseUntilSeparator final
int parse(java.lang.String, io.undertow.server.HttpServerExchange, java.lang.String, boolean, int);
descriptor: (Ljava/lang/String;Lio/undertow/server/HttpServerExchange;Ljava/lang/String;ZI)I
flags: (0x0000)
Code:
stack=8, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: iconst_0
istore 7
start local 7 2: iconst_0
istore 8
start local 8 3: aconst_null
astore 9
start local 9 4: iconst_0
istore 7
goto 24
5: StackMap locals: io.undertow.util.URLUtils$QueryStringParser java.lang.String io.undertow.server.HttpServerExchange java.lang.String int int int int int java.lang.String
StackMap stack:
aload 1
iload 7
invokevirtual java.lang.String.charAt:(I)C
istore 10
start local 10 6: iload 10
bipush 61
if_icmpne 10
aload 9
ifnonnull 10
7: aload 1
iload 8
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
8: iload 7
iconst_1
iadd
istore 8
9: goto 23
StackMap locals: int
StackMap stack:
10: iload 10
aload 0
getfield io.undertow.util.URLUtils$QueryStringParser.separator:C
if_icmpne 21
11: aload 9
ifnull 15
12: aload 0
aload 2
aload 0
aload 3
aload 9
iload 4
invokevirtual io.undertow.util.URLUtils$QueryStringParser.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
aload 0
aload 3
aload 1
iload 8
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
iload 4
invokevirtual io.undertow.util.URLUtils$QueryStringParser.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
invokevirtual io.undertow.util.URLUtils$QueryStringParser.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
13: iinc 6 1
iload 6
iload 5
if_icmple 18
14: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 5
invokeinterface io.undertow.UndertowMessages.tooManyParameters:(I)Lio/undertow/util/ParameterLimitException;
athrow
15: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 0
aload 3
aload 1
iload 8
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
iload 4
invokevirtual io.undertow.util.URLUtils$QueryStringParser.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
ldc ""
invokevirtual io.undertow.util.URLUtils$QueryStringParser.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
16: iinc 6 1
iload 6
iload 5
if_icmple 18
17: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 5
invokeinterface io.undertow.UndertowMessages.tooManyParameters:(I)Lio/undertow/util/ParameterLimitException;
athrow
18: StackMap locals:
StackMap stack:
iload 7
iconst_1
iadd
istore 8
19: aconst_null
astore 9
20: goto 23
StackMap locals:
StackMap stack:
21: aload 0
getfield io.undertow.util.URLUtils$QueryStringParser.parseUntilSeparator:Z
ifeq 23
iload 10
bipush 63
if_icmpeq 25
iload 10
bipush 47
if_icmpne 23
22: goto 25
end local 10 23: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
24: iload 7
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 5
25: StackMap locals:
StackMap stack:
aload 9
ifnull 29
26: aload 0
aload 2
aload 0
aload 3
aload 9
iload 4
invokevirtual io.undertow.util.URLUtils$QueryStringParser.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
aload 0
aload 3
aload 1
iload 8
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
iload 4
invokevirtual io.undertow.util.URLUtils$QueryStringParser.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
invokevirtual io.undertow.util.URLUtils$QueryStringParser.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
27: iinc 6 1
iload 6
iload 5
if_icmple 35
28: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 5
invokeinterface io.undertow.UndertowMessages.tooManyParameters:(I)Lio/undertow/util/ParameterLimitException;
athrow
29: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
iload 8
if_icmpeq 35
30: aload 0
aload 2
aload 0
aload 3
aload 1
iload 8
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
iload 4
invokevirtual io.undertow.util.URLUtils$QueryStringParser.decode:(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
ldc ""
invokevirtual io.undertow.util.URLUtils$QueryStringParser.handle:(Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
31: iinc 6 1
iload 6
iload 5
if_icmple 35
32: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 5
invokeinterface io.undertow.UndertowMessages.tooManyParameters:(I)Lio/undertow/util/ParameterLimitException;
athrow
end local 9 end local 8 33: StackMap locals: io.undertow.util.URLUtils$QueryStringParser java.lang.String io.undertow.server.HttpServerExchange java.lang.String int int int int
StackMap stack: java.io.UnsupportedEncodingException
astore 8
start local 8 34: new java.lang.RuntimeException
dup
aload 8
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 8 35: StackMap locals:
StackMap stack:
iload 7
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 36 0 this Lio/undertow/util/URLUtils$QueryStringParser;
0 36 1 string Ljava/lang/String;
0 36 2 exchange Lio/undertow/server/HttpServerExchange;
0 36 3 charset Ljava/lang/String;
0 36 4 doDecode Z
0 36 5 max I
1 36 6 count I
2 36 7 i I
3 33 8 stringStart I
4 33 9 attrName Ljava/lang/String;
6 23 10 c C
34 35 8 e Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
2 33 33 Class java.io.UnsupportedEncodingException
Exceptions:
throws io.undertow.util.ParameterLimitException
MethodParameters:
Name Flags
string final
exchange final
charset final
doDecode final
max
private java.lang.String decode(java.lang.String, java.lang.String, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 2
1: aload 2
aload 1
iconst_1
iconst_1
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
invokestatic io.undertow.util.URLUtils.decode:(Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/StringBuilder;)Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/util/URLUtils$QueryStringParser;
0 3 1 charset Ljava/lang/String;
0 3 2 attrName Ljava/lang/String;
0 3 3 doDecode Z
Exceptions:
throws java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
charset
attrName
doDecode final
abstract void handle(io.undertow.server.HttpServerExchange, java.lang.String, java.lang.String);
descriptor: (Lio/undertow/server/HttpServerExchange;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
exchange final
key final
value final
}
SourceFile: "URLUtils.java"
NestHost: io.undertow.util.URLUtils
InnerClasses:
private abstract QueryStringParser = io.undertow.util.URLUtils$QueryStringParser of io.undertow.util.URLUtils