public class org.eclipse.jetty.http.pathmap.ServletPathSpec extends org.eclipse.jetty.http.pathmap.PathSpec
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.http.pathmap.ServletPathSpec
super_class: org.eclipse.jetty.http.pathmap.PathSpec
{
private static volatile int[] $SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public static java.lang.String normalize(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.eclipse.jetty.util.StringUtil.isNotBlank:(Ljava/lang/String;)Z
ifeq 2
aload 0
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 2
aload 0
ldc "*"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 2
1: new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 pathSpec Ljava/lang/String;
MethodParameters:
Name Flags
pathSpec
public static boolean match(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.match:(Ljava/lang/String;Ljava/lang/String;Z)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 pathSpec Ljava/lang/String;
0 1 1 path Ljava/lang/String;
MethodParameters:
Name Flags
pathSpec
path
public static boolean match(java.lang.String, java.lang.String, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.String.length:()I
ifne 2
1: ldc "/"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 3: iload 3
bipush 47
if_icmpne 9
4: iload 2
ifne 5
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpeq 6
StackMap locals: int
StackMap stack:
5: aload 0
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
6: StackMap locals:
StackMap stack:
iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.isPathWildcardMatch:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 13
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
iload 3
bipush 42
if_icmpne 13
10: aload 1
aload 1
invokevirtual java.lang.String.length:()I
aload 0
invokevirtual java.lang.String.length:()I
isub
iconst_1
iadd
11: aload 0
iconst_1
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
12: invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
ireturn
13: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 pathSpec Ljava/lang/String;
0 14 1 path Ljava/lang/String;
0 14 2 noDefault Z
3 14 3 c C
MethodParameters:
Name Flags
pathSpec
path
noDefault
private static boolean isPathWildcardMatch(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.String.length:()I
iconst_2
isub
istore 2
start local 2 1: aload 0
ldc "/*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
aload 1
iconst_0
aload 0
iconst_0
iload 2
invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
ifeq 4
2: aload 1
invokevirtual java.lang.String.length:()I
iload 2
if_icmpeq 3
bipush 47
aload 1
iload 2
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 4
3: StackMap locals: int
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 pathSpec Ljava/lang/String;
0 5 1 path Ljava/lang/String;
1 5 2 cpl I
MethodParameters:
Name Flags
pathSpec
path
public static java.lang.String pathMatch(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 1: iload 2
bipush 47
if_icmpne 8
2: aload 0
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 4
3: aload 1
areturn
4: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: aload 1
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.isPathWildcardMatch:(Ljava/lang/String;Ljava/lang/String;)Z
ifeq 14
7: aload 1
iconst_0
aload 0
invokevirtual java.lang.String.length:()I
iconst_2
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
8: StackMap locals:
StackMap stack:
iload 2
bipush 42
if_icmpne 14
9: aload 1
aload 1
invokevirtual java.lang.String.length:()I
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
isub
10: aload 0
iconst_1
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
11: invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
12: ifeq 14
13: aload 1
areturn
14: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 pathSpec Ljava/lang/String;
0 15 1 path Ljava/lang/String;
1 15 2 c C
MethodParameters:
Name Flags
pathSpec
path
public static java.lang.String pathInfo(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: ldc ""
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 3: iload 2
bipush 47
if_icmpne 13
4: aload 0
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 6
5: aconst_null
areturn
6: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.isPathWildcardMatch:(Ljava/lang/String;Ljava/lang/String;)Z
istore 3
start local 3 7: aload 0
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
iload 3
ifne 9
8: aconst_null
areturn
9: StackMap locals: int
StackMap stack:
iload 3
ifeq 13
10: aload 1
invokevirtual java.lang.String.length:()I
aload 0
invokevirtual java.lang.String.length:()I
iconst_2
isub
if_icmpne 12
11: aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 1
aload 0
invokevirtual java.lang.String.length:()I
iconst_2
isub
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
end local 3 13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 pathSpec Ljava/lang/String;
0 14 1 path Ljava/lang/String;
3 14 2 c C
7 13 3 wildcard Z
MethodParameters:
Name Flags
pathSpec
path
public static java.lang.String relativePath(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.pathInfo:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aload 2
astore 3
3: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
4: aload 3
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
5: StackMap locals:
StackMap stack:
aload 0
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 9
6: aload 3
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 8
7: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
goto 12
8: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
goto 12
9: StackMap locals:
StackMap stack:
aload 3
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 11
10: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
goto 12
11: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
12: 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 13 0 base Ljava/lang/String;
0 13 1 pathSpec Ljava/lang/String;
0 13 2 path Ljava/lang/String;
1 13 3 info Ljava/lang/String;
MethodParameters:
Name Flags
base
pathSpec
path
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.eclipse.jetty.http.pathmap.PathSpec.<init>:()V
1: aload 1
ifnonnull 3
2: ldc ""
astore 1
3: StackMap locals: org.eclipse.jetty.http.pathmap.ServletPathSpec java.lang.String
StackMap stack:
aload 1
ldc "servlet|"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
4: aload 1
ldc "servlet|"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.eclipse.jetty.http.pathmap.ServletPathSpec.assertValidServletPathSpec:(Ljava/lang/String;)V
6: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 12
7: aload 0
ldc ""
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathSpec:Ljava/lang/String;
8: aload 0
iconst_m1
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathDepth:I
9: aload 0
iconst_1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
10: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.ROOT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
11: return
12: StackMap locals:
StackMap stack:
ldc "/"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 18
13: aload 0
ldc "/"
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathSpec:Ljava/lang/String;
14: aload 0
iconst_m1
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathDepth:I
15: aload 0
iconst_1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
16: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.DEFAULT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
17: return
18: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.lang.String.length:()I
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
19: aload 0
iconst_0
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathDepth:I
20: aload 1
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
istore 2
start local 2 21: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 25
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_1
if_icmple 25
iload 2
bipush 42
if_icmpne 25
22: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.PREFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
23: aload 0
aload 1
iconst_0
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_2
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.prefix:Ljava/lang/String;
24: goto 31
25: StackMap locals: int
StackMap stack:
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 42
if_icmpne 29
26: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.SUFFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
27: aload 0
aload 1
iconst_2
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.suffix:Ljava/lang/String;
28: goto 31
29: StackMap locals:
StackMap stack:
aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.EXACT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
30: aload 0
aload 1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec.prefix:Ljava/lang/String;
31: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 32: goto 40
33: StackMap locals: int
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.codePointAt:(I)I
istore 4
start local 4 34: iload 4
sipush 128
if_icmpge 39
35: iload 4
i2c
istore 5
start local 5 36: iload 5
tableswitch { // 47 - 47
47: 37
default: 39
}
37: StackMap locals: int int
StackMap stack:
aload 0
dup
getfield org.eclipse.jetty.http.pathmap.PathSpec.pathDepth:I
iconst_1
iadd
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathDepth:I
38: goto 39
end local 5 end local 4 39: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
40: iload 3
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
if_icmplt 33
end local 3 41: aload 0
aload 1
putfield org.eclipse.jetty.http.pathmap.PathSpec.pathSpec:Ljava/lang/String;
42: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 43 1 servletPathSpec Ljava/lang/String;
21 43 2 lastChar C
32 41 3 i I
34 39 4 cp I
36 39 5 c C
MethodParameters:
Name Flags
servletPathSpec
private void assertValidServletPathSpec(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 3: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 13
4: iload 2
iconst_1
if_icmpne 6
5: return
6: StackMap locals: int
StackMap stack:
aload 1
bipush 42
invokevirtual java.lang.String.indexOf:(I)I
istore 3
start local 3 7: iload 3
ifge 9
8: return
9: StackMap locals: int
StackMap stack:
iload 3
iload 2
iconst_1
isub
if_icmpeq 11
10: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Servlet Spec 12.2 violation: glob '*' can only exist at end of prefix based matches: bad spec \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
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
11: StackMap locals:
StackMap stack:
iload 3
iconst_1
if_icmplt 12
aload 1
iload 3
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 21
12: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Servlet Spec 12.2 violation: suffix glob '*' can only exist after '/': bad spec \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
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 3 13: StackMap locals:
StackMap stack:
aload 1
ldc "*."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 20
14: aload 1
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
istore 3
start local 3 15: iload 3
iflt 17
16: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Servlet Spec 12.2 violation: suffix based path spec cannot have path separators: bad spec \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
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
17: StackMap locals: int
StackMap stack:
aload 1
bipush 42
iconst_2
invokevirtual java.lang.String.indexOf:(II)I
istore 3
18: iload 3
iconst_1
if_icmplt 21
19: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Servlet Spec 12.2 violation: suffix based path spec cannot have multiple glob '*': bad spec \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
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 3 20: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Servlet Spec 12.2 violation: path spec must start with \"/\" or \"*.\": bad spec \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
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
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 22 1 servletPathSpec Ljava/lang/String;
3 22 2 len I
7 13 3 idx I
15 20 3 idx I
MethodParameters:
Name Flags
servletPathSpec
public java.lang.String getPathInfo(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.PREFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
if_acmpne 4
1: aload 1
invokevirtual java.lang.String.length:()I
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_2
isub
if_icmpne 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_2
isub
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 5 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
public java.lang.String getPathMatch(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.$SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup:()[I
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iaload
tableswitch { // 2 - 6
2: 1
3: 11
4: 4
5: 7
6: 10
default: 11
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.pathSpec:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: aload 1
areturn
3: StackMap locals:
StackMap stack:
aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.eclipse.jetty.http.pathmap.ServletPathSpec.isWildcardMatch:(Ljava/lang/String;)Z
ifeq 6
5: aload 1
iconst_0
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_2
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
6: StackMap locals:
StackMap stack:
aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.lang.String.length:()I
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_1
isub
isub
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.pathSpec:Ljava/lang/String;
iconst_1
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_1
isub
invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
ifeq 9
8: aload 1
areturn
9: StackMap locals:
StackMap stack:
aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 1
areturn
11: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 12 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
public java.lang.String getRelativePath(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.eclipse.jetty.http.pathmap.ServletPathSpec.getPathInfo:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aload 2
astore 3
3: StackMap locals: java.lang.String
StackMap stack:
aload 3
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 5
4: aload 3
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
5: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 11
6: aload 3
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
7: 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
aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
8: goto 15
9: StackMap locals:
StackMap stack:
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
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
10: goto 15
11: StackMap locals:
StackMap stack:
aload 3
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
12: 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
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
13: goto 15
14: StackMap locals:
StackMap stack:
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 "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
15: 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 16 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 16 1 base Ljava/lang/String;
0 16 2 path Ljava/lang/String;
1 16 3 info Ljava/lang/String;
MethodParameters:
Name Flags
base
path
private boolean isWildcardMatch(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_2
isub
istore 2
start local 2 1: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.PREFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
if_acmpne 4
aload 1
iconst_0
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.pathSpec:Ljava/lang/String;
iconst_0
iload 2
invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
ifeq 4
2: aload 1
invokevirtual java.lang.String.length:()I
iload 2
if_icmpeq 3
bipush 47
aload 1
iload 2
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 4
3: StackMap locals: int
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 5 1 path Ljava/lang/String;
1 5 2 cpl I
MethodParameters:
Name Flags
path
public boolean matches(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.$SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup:()[I
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 4
2: 1
3: 6
4: 2
5: 3
6: 5
default: 6
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.pathSpec:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.eclipse.jetty.http.pathmap.ServletPathSpec.isWildcardMatch:(Ljava/lang/String;)Z
ireturn
3: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.lang.String.length:()I
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
isub
iconst_1
iadd
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.pathSpec:Ljava/lang/String;
iconst_1
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec.specLength:I
iconst_1
isub
invokevirtual java.lang.String.regionMatches:(ILjava/lang/String;II)Z
ireturn
4: StackMap locals:
StackMap stack:
ldc "/"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 7 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
static int[] $SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.eclipse.jetty.http.pathmap.ServletPathSpec.$SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.eclipse.jetty.http.pathmap.PathSpecGroup.values:()[Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.DEFAULT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
bipush 6
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.EXACT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.MIDDLE_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.PREFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.ROOT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.SUFFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
invokevirtual org.eclipse.jetty.http.pathmap.PathSpecGroup.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic org.eclipse.jetty.http.pathmap.ServletPathSpec.$SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
}
SourceFile: "ServletPathSpec.java"