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 void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
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 Lio/undertow/util/URLUtils$QueryStringParser;
void 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)V
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: aconst_null
astore 8
start local 8 3: iconst_0
istore 9
start local 9 4: goto 21
5: StackMap locals: io.undertow.util.URLUtils$QueryStringParser java.lang.String io.undertow.server.HttpServerExchange java.lang.String int int int int java.lang.String int
StackMap stack:
aload 1
iload 9
invokevirtual java.lang.String.charAt:(I)C
istore 10
start local 10 6: iload 10
bipush 61
if_icmpne 10
aload 8
ifnonnull 10
7: aload 1
iload 7
iload 9
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 8
8: iload 9
iconst_1
iadd
istore 7
9: goto 20
StackMap locals: int
StackMap stack:
10: iload 10
bipush 38
if_icmpne 20
11: aload 8
ifnull 15
12: aload 0
aload 2
aload 0
aload 3
aload 8
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 7
iload 9
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 7
iload 9
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 9
iconst_1
iadd
istore 7
19: aconst_null
astore 8
end local 10 20: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
21: iload 9
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 5
end local 9 22: aload 8
ifnull 26
23: aload 0
aload 2
aload 0
aload 3
aload 8
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 7
aload 1
invokevirtual java.lang.String.length:()I
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
24: iinc 6 1
iload 6
iload 5
if_icmple 32
25: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 5
invokeinterface io.undertow.UndertowMessages.tooManyParameters:(I)Lio/undertow/util/ParameterLimitException;
athrow
26: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
iload 7
if_icmpeq 32
27: aload 0
aload 2
aload 0
aload 3
aload 1
iload 7
aload 1
invokevirtual java.lang.String.length:()I
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
28: iinc 6 1
iload 6
iload 5
if_icmple 32
29: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
iload 5
invokeinterface io.undertow.UndertowMessages.tooManyParameters:(I)Lio/undertow/util/ParameterLimitException;
athrow
end local 8 end local 7 30: StackMap locals: io.undertow.util.URLUtils$QueryStringParser java.lang.String io.undertow.server.HttpServerExchange java.lang.String int int int
StackMap stack: java.io.UnsupportedEncodingException
astore 7
start local 7 31: new java.lang.RuntimeException
dup
aload 7
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 32: StackMap locals:
StackMap stack:
return
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 33 0 this Lio/undertow/util/URLUtils$QueryStringParser;
0 33 1 string Ljava/lang/String;
0 33 2 exchange Lio/undertow/server/HttpServerExchange;
0 33 3 charset Ljava/lang/String;
0 33 4 doDecode Z
0 33 5 max I
1 33 6 count I
2 30 7 stringStart I
3 30 8 attrName Ljava/lang/String;
4 22 9 i I
6 20 10 c C
31 32 7 e Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
1 30 30 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