public class org.eclipse.jetty.http.pathmap.ServletPathSpec extends org.eclipse.jetty.http.pathmap.AbstractPathSpec
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.AbstractPathSpec
{
private static final org.slf4j.Logger LOG;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String _declaration;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.eclipse.jetty.http.pathmap.PathSpecGroup _group;
descriptor: Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int _pathDepth;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int _specLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String _prefix;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String _suffix;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$org$eclipse$jetty$http$pathmap$PathSpecGroup;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.eclipse.jetty.http.pathmap.ServletPathSpec.LOG:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
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=4, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.eclipse.jetty.http.pathmap.AbstractPathSpec.<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 1
invokestatic org.eclipse.jetty.http.pathmap.ServletPathSpec.assertValidServletPathSpec:(Ljava/lang/String;)V
6: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 14
7: aload 0
ldc ""
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._declaration:Ljava/lang/String;
8: 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;
9: aload 0
iconst_m1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._pathDepth:I
10: aload 0
iconst_1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._specLength:I
11: aload 0
aconst_null
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._prefix:Ljava/lang/String;
12: aload 0
aconst_null
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._suffix:Ljava/lang/String;
13: return
14: StackMap locals:
StackMap stack:
ldc "/"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 22
15: aload 0
ldc "/"
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._declaration:Ljava/lang/String;
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: aload 0
iconst_m1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._pathDepth:I
18: aload 0
iconst_1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._specLength:I
19: aload 0
aconst_null
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._prefix:Ljava/lang/String;
20: aload 0
aconst_null
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._suffix:Ljava/lang/String;
21: return
22: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 23: aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 28
aload 1
ldc "/*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 28
24: getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.PREFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
astore 3
start local 3 25: aload 1
iconst_0
iload 2
iconst_2
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 4
start local 4 26: aconst_null
astore 5
start local 5 27: goto 40
end local 5 end local 4 end local 3 28: StackMap locals: int
StackMap stack:
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 42
if_icmpne 33
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
if_icmple 33
29: getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.SUFFIX_GLOB:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
astore 3
start local 3 30: aconst_null
astore 4
start local 4 31: aload 1
iconst_2
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 5
start local 5 32: goto 40
end local 5 end local 4 end local 3 33: StackMap locals:
StackMap stack:
getstatic org.eclipse.jetty.http.pathmap.PathSpecGroup.EXACT:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
astore 3
start local 3 34: aload 1
astore 4
start local 4 35: aconst_null
astore 5
start local 5 36: aload 1
ldc "*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 40
37: getstatic org.eclipse.jetty.http.pathmap.ServletPathSpec.LOG:Lorg/slf4j/Logger;
ldc "Suspicious URL pattern: '{}'; see sections 12.1 and 12.2 of the Servlet specification"
38: aload 1
39: invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
40: StackMap locals: org.eclipse.jetty.http.pathmap.PathSpecGroup java.lang.String java.lang.String
StackMap stack:
iconst_0
istore 6
start local 6 41: iconst_0
istore 7
start local 7 42: goto 49
43: StackMap locals: int int
StackMap stack:
aload 1
iload 7
invokevirtual java.lang.String.codePointAt:(I)I
istore 8
start local 8 44: iload 8
sipush 128
if_icmpge 48
45: iload 8
i2c
istore 9
start local 9 46: iload 9
bipush 47
if_icmpne 48
47: iinc 6 1
end local 9 end local 8 48: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
49: iload 7
iload 2
if_icmplt 43
end local 7 50: aload 0
aload 1
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._declaration:Ljava/lang/String;
51: aload 0
aload 3
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
52: aload 0
iload 6
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._pathDepth:I
53: aload 0
iload 2
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._specLength:I
54: aload 0
aload 4
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._prefix:Ljava/lang/String;
55: aload 0
aload 5
putfield org.eclipse.jetty.http.pathmap.ServletPathSpec._suffix:Ljava/lang/String;
56: 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 57 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 57 1 servletPathSpec Ljava/lang/String;
23 57 2 specLength I
25 28 3 group Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
30 33 3 group Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
34 57 3 group Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
26 28 4 prefix Ljava/lang/String;
31 33 4 prefix Ljava/lang/String;
35 57 4 prefix Ljava/lang/String;
27 28 5 suffix Ljava/lang/String;
32 33 5 suffix Ljava/lang/String;
36 57 5 suffix Ljava/lang/String;
41 57 6 pathDepth I
42 50 7 i I
44 48 8 cp I
46 48 9 c C
MethodParameters:
Name Flags
servletPathSpec
private static void assertValidServletPathSpec(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
istore 1
start local 1 3: aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 11
4: iload 1
iconst_1
if_icmpne 6
5: return
6: StackMap locals: int
StackMap stack:
aload 0
bipush 42
invokevirtual java.lang.String.indexOf:(I)I
istore 2
start local 2 7: iload 2
ifge 9
8: return
9: StackMap locals: int
StackMap stack:
iload 2
iload 1
iconst_1
isub
if_icmpeq 19
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 0
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 2 11: StackMap locals:
StackMap stack:
aload 0
ldc "*."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 18
12: aload 0
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
istore 2
start local 2 13: iload 2
iflt 15
14: 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 0
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
15: StackMap locals: int
StackMap stack:
aload 0
bipush 42
iconst_2
invokevirtual java.lang.String.indexOf:(II)I
istore 2
16: iload 2
iconst_1
if_icmplt 19
17: 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 0
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 2 18: 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 0
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
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 servletPathSpec Ljava/lang/String;
3 20 1 len I
7 11 2 idx I
13 18 2 idx I
MethodParameters:
Name Flags
servletPathSpec
public int getSpecLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._specLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
public org.eclipse.jetty.http.pathmap.PathSpecGroup getGroup();
descriptor: ()Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._group:Lorg/eclipse/jetty/http/pathmap/PathSpecGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
public int getPathDepth();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._pathDepth:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/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: 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 - 4
1: 1
2: 5
3: 5
4: 2
default: 5
}
1: StackMap locals:
StackMap stack:
aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._specLength:I
iconst_2
isub
if_icmpne 4
3: aconst_null
areturn
4: 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
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 6 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 { // 1 - 6
1: 1
2: 2
3: 12
4: 5
5: 8
6: 11
default: 12
}
1: StackMap locals:
StackMap stack:
ldc ""
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._declaration:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 1
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.eclipse.jetty.http.pathmap.ServletPathSpec.isWildcardMatch:(Ljava/lang/String;)Z
ifeq 7
6: 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
7: StackMap locals:
StackMap stack:
aconst_null
areturn
8: 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._declaration: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 10
9: aload 1
areturn
10: StackMap locals:
StackMap stack:
aconst_null
areturn
11: StackMap locals:
StackMap stack:
aload 1
areturn
12: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
0 13 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
public java.lang.String getDeclaration();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._declaration:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
public java.lang.String getPrefix();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._prefix:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
public java.lang.String getSuffix();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.http.pathmap.ServletPathSpec._suffix:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/http/pathmap/ServletPathSpec;
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._declaration: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_icmpeq 3
iconst_0
ireturn
StackMap locals: int
StackMap stack:
3: 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._declaration: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._declaration: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"