public abstract class org.apache.catalina.webresources.AbstractFileResourceSet extends org.apache.catalina.webresources.AbstractResourceSet
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.catalina.webresources.AbstractFileResourceSet
super_class: org.apache.catalina.webresources.AbstractResourceSet
{
private static final org.apache.juli.logging.Log log;
descriptor: Lorg/apache/juli/logging/Log;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
protected static final java.lang.String[] EMPTY_STRING_ARRAY;
descriptor: [Ljava/lang/String;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
private java.io.File fileBase;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.lang.String absoluteBase;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String canonicalBase;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean readOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/catalina/webresources/AbstractFileResourceSet;
invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
putstatic org.apache.catalina.webresources.AbstractFileResourceSet.log:Lorg/apache/juli/logging/Log;
1: iconst_0
anewarray java.lang.String
putstatic org.apache.catalina.webresources.AbstractFileResourceSet.EMPTY_STRING_ARRAY:[Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.apache.catalina.webresources.AbstractResourceSet.<init>:()V
1: aload 0
iconst_0
putfield org.apache.catalina.webresources.AbstractFileResourceSet.readOnly:Z
2: aload 0
aload 1
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.setInternalPath:(Ljava/lang/String;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
0 4 1 internalPath Ljava/lang/String;
MethodParameters:
Name Flags
internalPath
protected final java.io.File getFileBase();
descriptor: ()Ljava/io/File;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.fileBase:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
public void setReadOnly(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.catalina.webresources.AbstractFileResourceSet.readOnly:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
0 2 1 readOnly Z
MethodParameters:
Name Flags
readOnly
public boolean isReadOnly();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.readOnly:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
protected final java.io.File file(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/io/File;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "/"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: ldc ""
astore 1
2: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.fileBase:Ljava/io/File;
aload 1
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 3
start local 3 3: aload 1
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 5
aload 3
invokevirtual java.io.File.isFile:()Z
ifeq 5
4: aconst_null
areturn
5: StackMap locals: java.io.File
StackMap stack:
iload 2
ifeq 7
aload 3
invokevirtual java.io.File.canRead:()Z
ifne 7
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getAllowLinking:()Z
ifeq 9
8: aload 3
areturn
9: StackMap locals:
StackMap stack:
getstatic org.apache.tomcat.util.compat.JrePlatform.IS_WINDOWS:Z
ifeq 11
aload 0
aload 1
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.isInvalidWindowsFilename:(Ljava/lang/String;)Z
ifeq 11
10: aconst_null
areturn
11: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 12: aload 3
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
astore 4
13: goto 15
StackMap locals: org.apache.catalina.webresources.AbstractFileResourceSet java.lang.String int java.io.File java.lang.String
StackMap stack: java.io.IOException
14: pop
15: StackMap locals:
StackMap stack:
aload 4
ifnull 16
aload 4
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.canonicalBase:Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 17
16: StackMap locals:
StackMap stack:
aconst_null
areturn
17: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.normalize:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 18: aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.absoluteBase:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
aload 5
invokevirtual java.lang.String.length:()I
if_icmple 20
19: aconst_null
areturn
20: StackMap locals: java.lang.String
StackMap stack:
aload 5
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.absoluteBase:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 5
21: aload 4
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.canonicalBase:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
22: aload 4
invokevirtual java.lang.String.length:()I
ifle 24
23: aload 0
aload 4
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.normalize:(Ljava/lang/String;)Ljava/lang/String;
astore 4
24: StackMap locals:
StackMap stack:
aload 4
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 34
25: aload 4
aload 5
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 33
26: getstatic org.apache.catalina.webresources.AbstractFileResourceSet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "abstractFileResourceSet.canonicalfileCheckFailed"
iconst_3
anewarray java.lang.Object
dup
iconst_0
27: aload 0
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
invokeinterface org.apache.catalina.Context.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 5
aastore
dup
iconst_2
aload 4
aastore
28: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 6
start local 6 29: aload 5
ldc "/META-INF/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 30
aload 5
ldc "/WEB-INF/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 32
30: StackMap locals: java.lang.String
StackMap stack:
getstatic org.apache.catalina.webresources.AbstractFileResourceSet.log:Lorg/apache/juli/logging/Log;
aload 6
invokeinterface org.apache.juli.logging.Log.error:(Ljava/lang/Object;)V
31: goto 33
32: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.webresources.AbstractFileResourceSet.log:Lorg/apache/juli/logging/Log;
aload 6
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 6 33: StackMap locals:
StackMap stack:
aconst_null
areturn
34: StackMap locals:
StackMap stack:
aload 3
areturn
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 35 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
0 35 1 name Ljava/lang/String;
0 35 2 mustExist Z
3 35 3 file Ljava/io/File;
12 35 4 canPath Ljava/lang/String;
18 35 5 absPath Ljava/lang/String;
29 33 6 msg Ljava/lang/String;
Exception table:
from to target type
12 13 14 Class java.io.IOException
MethodParameters:
Name Flags
name
mustExist
private boolean isInvalidWindowsFilename(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 1: iload 2
ifne 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
iconst_0
istore 3
start local 3 4: goto 9
5: StackMap locals: int
StackMap stack:
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 4
start local 4 6: iload 4
bipush 34
if_icmpeq 7
iload 4
bipush 60
if_icmpeq 7
iload 4
bipush 62
if_icmpeq 7
iload 4
bipush 58
if_icmpne 8
7: StackMap locals: int
StackMap stack:
iconst_1
ireturn
end local 4 8: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
iload 2
if_icmplt 5
end local 3 10: aload 1
iload 2
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 32
if_icmpne 12
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
0 13 1 name Ljava/lang/String;
1 13 2 len I
4 10 3 i I
6 8 4 c C
MethodParameters:
Name Flags
name
private java.lang.String normalize(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.io.File.separatorChar:C
bipush 92
if_icmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: org.apache.catalina.webresources.AbstractFileResourceSet java.lang.String
StackMap stack: java.lang.String int
2: invokestatic org.apache.tomcat.util.http.RequestUtil.normalize:(Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
0 3 1 path Ljava/lang/String;
MethodParameters:
Name Flags
path
public java.net.URL getBaseUrl();
descriptor: ()Ljava/net/URL;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.getFileBase:()Ljava/io/File;
invokevirtual java.io.File.toURI:()Ljava/net/URI;
invokevirtual java.net.URI.toURL:()Ljava/net/URL;
1: areturn
2: StackMap locals:
StackMap stack: java.net.MalformedURLException
pop
3: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
Exception table:
from to target type
0 1 2 Class java.net.MalformedURLException
public void gc();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
protected void initInternal();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
new java.io.File
dup
aload 0
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.getBase:()Ljava/lang/String;
aload 0
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.getInternalPath:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
putfield org.apache.catalina.webresources.AbstractFileResourceSet.fileBase:Ljava/io/File;
1: aload 0
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.fileBase:Ljava/io/File;
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.checkType:(Ljava/io/File;)V
2: aload 0
aload 0
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.fileBase:Ljava/io/File;
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
invokevirtual org.apache.catalina.webresources.AbstractFileResourceSet.normalize:(Ljava/lang/String;)Ljava/lang/String;
putfield org.apache.catalina.webresources.AbstractFileResourceSet.absoluteBase:Ljava/lang/String;
3: aload 0
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.fileBase:Ljava/io/File;
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
putfield org.apache.catalina.webresources.AbstractFileResourceSet.canonicalBase:Ljava/lang/String;
4: goto 7
StackMap locals:
StackMap stack: java.io.IOException
5: astore 1
start local 1 6: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 7: StackMap locals:
StackMap stack:
ldc "/"
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.absoluteBase:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
8: aload 0
ldc ""
putfield org.apache.catalina.webresources.AbstractFileResourceSet.absoluteBase:Ljava/lang/String;
9: StackMap locals:
StackMap stack:
ldc "/"
aload 0
getfield org.apache.catalina.webresources.AbstractFileResourceSet.canonicalBase:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
10: aload 0
ldc ""
putfield org.apache.catalina.webresources.AbstractFileResourceSet.canonicalBase:Ljava/lang/String;
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/catalina/webresources/AbstractFileResourceSet;
6 7 1 e Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.io.IOException
Exceptions:
throws org.apache.catalina.LifecycleException
protected abstract void checkType(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
file
}
SourceFile: "AbstractFileResourceSet.java"