public class org.apache.catalina.servlets.CGIServlet$CGIEnvironment
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.servlets.CGIServlet$CGIEnvironment
super_class: java.lang.Object
{
private jakarta.servlet.ServletContext context;
descriptor: Ljakarta/servlet/ServletContext;
flags: (0x0002) ACC_PRIVATE
private java.lang.String contextPath;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String servletPath;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String pathInfo;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String webAppRootDir;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.io.File tmpDir;
descriptor: Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
private java.util.Hashtable<java.lang.String, java.lang.String> env;
descriptor: Ljava/util/Hashtable;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
private java.lang.String command;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private final java.io.File workingDirectory;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<java.lang.String> cmdLineParameters;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private final boolean valid;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.apache.catalina.servlets.CGIServlet this$0;
descriptor: Lorg/apache/catalina/servlets/CGIServlet;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
protected void <init>(org.apache.catalina.servlets.CGIServlet, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.ServletContext);
descriptor: (Lorg/apache/catalina/servlets/CGIServlet;Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/ServletContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.context:Ljakarta/servlet/ServletContext;
3: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.contextPath:Ljava/lang/String;
4: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.servletPath:Ljava/lang/String;
5: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
6: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.webAppRootDir:Ljava/lang/String;
7: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.tmpDir:Ljava/io/File;
8: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.env:Ljava/util/Hashtable;
9: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
10: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.cmdLineParameters:Ljava/util/ArrayList;
11: aload 0
aload 3
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.setupFromContext:(Ljakarta/servlet/ServletContext;)V
12: aload 0
aload 2
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.setupFromRequest:(Ljakarta/servlet/http/HttpServletRequest;)Z
istore 4
start local 4 13: iload 4
ifeq 15
14: aload 0
aload 2
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.setCGIEnvironment:(Ljakarta/servlet/http/HttpServletRequest;)Z
istore 4
15: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment org.apache.catalina.servlets.CGIServlet jakarta.servlet.http.HttpServletRequest jakarta.servlet.ServletContext int
StackMap stack:
iload 4
ifeq 20
16: aload 0
new java.io.File
dup
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
iconst_0
17: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
18: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.workingDirectory:Ljava/io/File;
19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.workingDirectory:Ljava/io/File;
21: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.valid:Z
22: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 23 2 req Ljakarta/servlet/http/HttpServletRequest;
0 23 3 context Ljakarta/servlet/ServletContext;
13 23 4 valid Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
this$0 final
req
context
protected void setupFromContext(jakarta.servlet.ServletContext);
descriptor: (Ljakarta/servlet/ServletContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.context:Ljakarta/servlet/ServletContext;
1: aload 0
aload 1
ldc "/"
invokeinterface jakarta.servlet.ServletContext.getRealPath:(Ljava/lang/String;)Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.webAppRootDir:Ljava/lang/String;
2: aload 0
aload 1
ldc "jakarta.servlet.context.tempdir"
invokeinterface jakarta.servlet.ServletContext.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.io.File
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.tmpDir:Ljava/io/File;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 4 1 context Ljakarta/servlet/ServletContext;
MethodParameters:
Name Flags
context
protected boolean setupFromRequest(jakarta.servlet.http.HttpServletRequest);
descriptor: (Ljakarta/servlet/http/HttpServletRequest;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
2: ldc "jakarta.servlet.include.request_uri"
3: invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
ifnull 5
4: iconst_1
istore 2
5: StackMap locals: int
StackMap stack:
iload 2
ifeq 16
6: aload 0
aload 1
7: ldc "jakarta.servlet.include.context_path"
8: invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.contextPath:Ljava/lang/String;
9: aload 0
aload 1
10: ldc "jakarta.servlet.include.servlet_path"
11: invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.servletPath:Ljava/lang/String;
12: aload 0
aload 1
13: ldc "jakarta.servlet.include.path_info"
14: invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
15: goto 19
16: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getContextPath:()Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.contextPath:Ljava/lang/String;
17: aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getServletPath:()Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.servletPath:Ljava/lang/String;
18: aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getPathInfo:()Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
19: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
ifnonnull 21
20: aload 0
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.servletPath:Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
21: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.enableCmdLineArguments:Z
ifeq 49
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
ldc "GET"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
22: aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
ldc "POST"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
ldc "HEAD"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 49
23: StackMap locals:
StackMap stack:
iload 2
ifeq 28
24: aload 1
25: ldc "jakarta.servlet.include.query_string"
26: invokeinterface jakarta.servlet.http.HttpServletRequest.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 27: goto 29
end local 3 28: StackMap locals:
StackMap stack:
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getQueryString:()Ljava/lang/String;
astore 3
start local 3 29: StackMap locals: java.lang.String
StackMap stack:
aload 3
ifnull 49
aload 3
bipush 61
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 49
30: new java.util.StringTokenizer
dup
aload 3
ldc "+"
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 4
start local 4 31: goto 48
32: StackMap locals: java.util.StringTokenizer
StackMap stack:
aload 4
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 5
start local 5 33: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cmdLineArgumentsEncodedPattern:Ljava/util/regex/Pattern;
aload 5
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 39
34: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 38
35: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.invalidArgumentEncoded"
iconst_2
anewarray java.lang.Object
dup
iconst_0
36: aload 5
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cmdLineArgumentsEncodedPattern:Ljava/util/regex/Pattern;
invokevirtual java.util.regex.Pattern.toString:()Ljava/lang/String;
aastore
37: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
38: StackMap locals: java.lang.String
StackMap stack:
iconst_0
ireturn
39: StackMap locals:
StackMap stack:
aload 5
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.parameterEncoding:Ljava/lang/String;
invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 40: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cmdLineArgumentsDecodedPattern:Ljava/util/regex/Pattern;
ifnull 47
41: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cmdLineArgumentsDecodedPattern:Ljava/util/regex/Pattern;
aload 6
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifne 47
42: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 46
43: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.invalidArgumentDecoded"
iconst_2
anewarray java.lang.Object
dup
iconst_0
44: aload 6
aastore
dup
iconst_1
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cmdLineArgumentsDecodedPattern:Ljava/util/regex/Pattern;
invokevirtual java.util.regex.Pattern.toString:()Ljava/lang/String;
aastore
45: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
46: StackMap locals: java.lang.String
StackMap stack:
iconst_0
ireturn
47: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.cmdLineParameters:Ljava/util/ArrayList;
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 48: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 32
end local 4 end local 3 49: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 50 1 req Ljakarta/servlet/http/HttpServletRequest;
1 50 2 isIncluded Z
27 28 3 qs Ljava/lang/String;
29 49 3 qs Ljava/lang/String;
31 49 4 qsTokens Ljava/util/StringTokenizer;
33 48 5 encodedArgument Ljava/lang/String;
40 48 6 decodedArgument Ljava/lang/String;
Exceptions:
throws java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
req
protected java.lang.String[] findCGI(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aconst_null
astore 6
start local 6 1: aconst_null
astore 7
start local 7 2: aconst_null
astore 8
start local 8 3: aload 2
ifnull 6
4: aload 2
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
aload 2
invokevirtual java.lang.String.length:()I
iconst_1
isub
if_icmpne 6
5: aload 2
iconst_0
aload 2
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
6: StackMap locals: java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 5
ifnull 8
7: new java.lang.StringBuilder
dup
aload 2
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
8: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 10
9: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.find.path"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
10: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 2
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 9
start local 9 11: new java.util.StringTokenizer
dup
aload 1
ldc "/"
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 10
start local 10 12: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 16
13: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.find.location"
iconst_1
anewarray java.lang.Object
dup
iconst_0
14: aload 9
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
15: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
16: StackMap locals: java.io.File java.util.StringTokenizer
StackMap stack:
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 11
start local 11 17: goto 25
18: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 10
invokevirtual java.util.StringTokenizer.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 12
start local 12 19: new java.io.File
dup
aload 9
aload 12
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 9
20: aload 11
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 25
22: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.find.location"
iconst_1
anewarray java.lang.Object
dup
iconst_0
23: aload 9
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
24: invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
end local 12 25: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.io.File.isFile:()Z
ifne 26
aload 10
invokevirtual java.util.StringTokenizer.hasMoreElements:()Z
ifne 18
26: StackMap locals:
StackMap stack:
aload 11
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 12
start local 12 27: aload 9
invokevirtual java.io.File.isFile:()Z
ifne 29
28: iconst_4
anewarray java.lang.String
areturn
29: StackMap locals: java.lang.String
StackMap stack:
aload 9
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
astore 6
30: aload 9
invokevirtual java.io.File.getName:()Ljava/lang/String;
astore 7
31: aload 4
aload 12
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 34
32: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
33: goto 35
34: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
35: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 37
36: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.find.found"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 7
aastore
dup
iconst_1
aload 6
aastore
dup
iconst_2
aload 8
aastore
dup
iconst_3
aload 12
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
37: StackMap locals:
StackMap stack:
iconst_4
anewarray java.lang.String
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 8
aastore
dup
iconst_2
aload 12
aastore
dup
iconst_3
aload 7
aastore
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 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 38 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 38 1 pathInfo Ljava/lang/String;
0 38 2 webAppRootDir Ljava/lang/String;
0 38 3 contextPath Ljava/lang/String;
0 38 4 servletPath Ljava/lang/String;
0 38 5 cgiPathPrefix Ljava/lang/String;
1 38 6 path Ljava/lang/String;
2 38 7 name Ljava/lang/String;
3 38 8 scriptname Ljava/lang/String;
11 38 9 currentLocation Ljava/io/File;
12 38 10 dirWalker Ljava/util/StringTokenizer;
17 38 11 cginameBuilder Ljava/lang/StringBuilder;
19 25 12 nextElement Ljava/lang/String;
27 38 12 cginame Ljava/lang/String;
MethodParameters:
Name Flags
pathInfo
webAppRootDir
contextPath
servletPath
cgiPathPrefix
protected boolean setCGIEnvironment(jakarta.servlet.http.HttpServletRequest);
descriptor: (Ljakarta/servlet/http/HttpServletRequest;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=19, args_size=2
start local 0 start local 1 0: new java.util.Hashtable
dup
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.shellEnv:Ljava/util/Hashtable;
invokespecial java.util.Hashtable.<init>:(Ljava/util/Map;)V
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: aconst_null
astore 7
start local 7 6: aconst_null
astore 8
start local 8 7: aconst_null
astore 9
start local 9 8: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
astore 3
9: aload 3
ifnonnull 10
ldc ""
goto 11
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment jakarta.servlet.http.HttpServletRequest java.util.Hashtable java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
StackMap stack:
10: aload 3
StackMap locals:
StackMap stack: java.lang.String
11: astore 3
12: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.webAppRootDir:Ljava/lang/String;
ifnonnull 15
13: aload 0
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.tmpDir:Ljava/io/File;
invokevirtual java.io.File.toString:()Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.webAppRootDir:Ljava/lang/String;
14: aload 0
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.expandCGIScript:()V
15: StackMap locals:
StackMap stack:
aload 0
aload 3
16: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.webAppRootDir:Ljava/lang/String;
17: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.contextPath:Ljava/lang/String;
18: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.servletPath:Ljava/lang/String;
19: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiPathPrefix:Ljava/lang/String;
20: invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.findCGI:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
astore 10
start local 10 21: aload 10
iconst_0
aaload
astore 6
22: aload 10
iconst_1
aaload
astore 7
23: aload 10
iconst_2
aaload
astore 8
24: aload 10
iconst_3
aaload
astore 9
25: aload 6
ifnull 29
26: aload 7
ifnull 29
27: aload 8
ifnull 29
28: aload 9
ifnonnull 30
29: StackMap locals: java.lang.String[]
StackMap stack:
iconst_0
ireturn
30: StackMap locals:
StackMap stack:
aload 2
ldc "SERVER_SOFTWARE"
ldc "TOMCAT"
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
31: aload 2
ldc "SERVER_NAME"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getServerName:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
32: aload 2
ldc "GATEWAY_INTERFACE"
ldc "CGI/1.1"
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
33: aload 2
ldc "SERVER_PROTOCOL"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getProtocol:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
34: aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getServerPort:()I
istore 11
start local 11 35: iload 11
ifne 36
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
goto 37
StackMap locals: int
StackMap stack:
36: iload 11
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
37: StackMap locals:
StackMap stack: java.lang.Integer
astore 12
start local 12 38: aload 2
ldc "SERVER_PORT"
aload 12
invokevirtual java.lang.Integer.toString:()Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
39: aload 2
ldc "REQUEST_METHOD"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getMethod:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
40: aload 2
ldc "REQUEST_URI"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getRequestURI:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
41: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
ifnull 43
42: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
aload 8
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifgt 45
43: StackMap locals: java.lang.Integer
StackMap stack:
ldc ""
astore 4
44: goto 46
45: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
aload 8
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
46: StackMap locals:
StackMap stack:
aload 2
ldc "PATH_INFO"
aload 4
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
47: aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifne 49
48: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.context:Ljakarta/servlet/ServletContext;
aload 4
invokeinterface jakarta.servlet.ServletContext.getRealPath:(Ljava/lang/String;)Ljava/lang/String;
astore 5
49: StackMap locals:
StackMap stack:
aload 5
ifnull 51
ldc ""
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 51
50: aload 2
ldc "PATH_TRANSLATED"
aload 0
aload 5
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
51: StackMap locals:
StackMap stack:
aload 2
ldc "SCRIPT_NAME"
aload 0
aload 7
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
52: aload 2
ldc "QUERY_STRING"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getQueryString:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
53: aload 2
ldc "REMOTE_HOST"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getRemoteHost:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
54: aload 2
ldc "REMOTE_ADDR"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getRemoteAddr:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
55: aload 2
ldc "AUTH_TYPE"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getAuthType:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
56: aload 2
ldc "REMOTE_USER"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getRemoteUser:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
57: aload 2
ldc "REMOTE_IDENT"
ldc ""
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
58: aload 2
ldc "CONTENT_TYPE"
aload 0
aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getContentType:()Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
59: aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getContentLengthLong:()J
lstore 13
start local 13 60: lload 13
lconst_0
lcmp
ifgt 61
ldc ""
goto 62
61: StackMap locals: long
StackMap stack:
lload 13
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
62: StackMap locals:
StackMap stack: java.lang.String
astore 15
start local 15 63: aload 2
ldc "CONTENT_LENGTH"
aload 15
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
64: aload 1
invokeinterface jakarta.servlet.http.HttpServletRequest.getHeaderNames:()Ljava/util/Enumeration;
astore 16
start local 16 65: aconst_null
astore 17
start local 17 66: goto 71
67: StackMap locals: java.lang.String java.util.Enumeration java.lang.String
StackMap stack:
aconst_null
astore 17
68: aload 16
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
astore 17
69: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.envHttpHeadersPattern:Ljava/util/regex/Pattern;
aload 17
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 71
70: aload 2
new java.lang.StringBuilder
dup
ldc "HTTP_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 17
bipush 45
bipush 95
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
aload 17
invokeinterface jakarta.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
71: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 67
72: new java.io.File
dup
aload 6
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 18
start local 18 73: aload 0
aload 18
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
74: aload 2
ldc "X_TOMCAT_SCRIPT_PATH"
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
75: aload 2
ldc "SCRIPT_FILENAME"
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
76: aload 0
aload 2
putfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.env:Ljava/util/Hashtable;
77: iconst_1
ireturn
end local 18 end local 17 end local 16 end local 15 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 78 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 78 1 req Ljakarta/servlet/http/HttpServletRequest;
1 78 2 envp Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
2 78 3 sPathInfoOrig Ljava/lang/String;
3 78 4 sPathInfoCGI Ljava/lang/String;
4 78 5 sPathTranslatedCGI Ljava/lang/String;
5 78 6 sCGIFullPath Ljava/lang/String;
6 78 7 sCGIScriptName Ljava/lang/String;
7 78 8 sCGIFullName Ljava/lang/String;
8 78 9 sCGIName Ljava/lang/String;
21 78 10 sCGINames [Ljava/lang/String;
35 78 11 port I
38 78 12 iPort Ljava/lang/Integer;
60 78 13 contentLength J
63 78 15 sContentLength Ljava/lang/String;
65 78 16 headers Ljava/util/Enumeration<Ljava/lang/String;>;
66 78 17 header Ljava/lang/String;
73 78 18 fCGIFullPath Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
req
protected void expandCGIScript();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=9, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiPathPrefix:Ljava/lang/String;
ifnonnull 9
4: aload 1
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.context:Ljakarta/servlet/ServletContext;
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface jakarta.servlet.ServletContext.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 3
6: aload 2
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.tmpDir:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
7: aload 2
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: goto 20
9: StackMap locals: java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream
StackMap stack:
aload 1
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiPathPrefix:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: new java.util.StringTokenizer
dup
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.pathInfo:Ljava/lang/String;
ldc "/"
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
11: astore 4
start local 4 12: goto 16
13: StackMap locals: java.util.StringTokenizer
StackMap stack:
aload 1
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: aload 1
aload 4
invokevirtual java.util.StringTokenizer.nextElement:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
15: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.context:Ljakarta/servlet/ServletContext;
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface jakarta.servlet.ServletContext.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
astore 3
16: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.StringTokenizer.hasMoreElements:()Z
ifeq 17
aload 3
ifnull 13
17: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.tmpDir:Ljava/io/File;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
18: aload 2
bipush 47
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
19: aload 2
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
pop
end local 4 20: StackMap locals:
StackMap stack:
aload 3
ifnonnull 23
21: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandNotFound"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
22: return
23: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 4
start local 4 24: aload 4
invokevirtual java.io.File.exists:()Z
ifeq 30
25: aload 3
invokevirtual java.io.InputStream.close:()V
26: goto 29
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream java.io.File
StackMap stack: java.io.IOException
27: astore 8
start local 8 28: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCloseFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 29: StackMap locals:
StackMap stack:
return
30: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 5
start local 5 31: aload 5
invokevirtual java.io.File.mkdirs:()Z
ifne 38
aload 5
invokevirtual java.io.File.isDirectory:()Z
ifne 38
32: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCreateDirFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
33: aload 3
invokevirtual java.io.InputStream.close:()V
34: goto 37
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream java.io.File java.io.File
StackMap stack: java.io.IOException
35: astore 8
start local 8 36: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCloseFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 37: StackMap locals:
StackMap stack:
return
38: StackMap locals:
StackMap stack:
getstatic org.apache.catalina.servlets.CGIServlet.expandFileLock:Ljava/lang/Object;
dup
astore 6
monitorenter
39: aload 4
invokevirtual java.io.File.exists:()Z
ifeq 46
40: aload 6
monitorexit
41: aload 3
invokevirtual java.io.InputStream.close:()V
42: goto 45
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream java.io.File java.io.File java.lang.Object
StackMap stack: java.io.IOException
43: astore 8
start local 8 44: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCloseFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 StackMap locals:
StackMap stack:
45: return
46: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.File.createNewFile:()Z
ifne 53
47: aload 6
monitorexit
48: aload 3
invokevirtual java.io.InputStream.close:()V
49: goto 52
StackMap locals:
StackMap stack: java.io.IOException
50: astore 8
start local 8 51: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCloseFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 StackMap locals:
StackMap stack:
52: return
53: StackMap locals:
StackMap stack:
aload 3
aload 4
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
54: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
ifeq 56
55: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandOk"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
56: StackMap locals:
StackMap stack:
aload 6
monitorexit
57: goto 72
StackMap locals:
StackMap stack: java.lang.Throwable
58: aload 6
monitorexit
59: athrow
60: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream java.io.File java.io.File
StackMap stack: java.io.IOException
astore 6
start local 6 61: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandFail"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 6
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
62: aload 4
invokevirtual java.io.File.exists:()Z
ifeq 72
63: aload 4
invokevirtual java.io.File.delete:()Z
ifne 72
64: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandDeleteFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
end local 6 end local 5 end local 4 65: goto 72
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream
StackMap stack: java.lang.Throwable
66: astore 7
67: aload 3
invokevirtual java.io.InputStream.close:()V
68: goto 71
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream top top top java.lang.Throwable
StackMap stack: java.io.IOException
69: astore 8
start local 8 70: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCloseFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 71: StackMap locals:
StackMap stack:
aload 7
athrow
72: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder java.lang.StringBuilder java.io.InputStream
StackMap stack:
aload 3
invokevirtual java.io.InputStream.close:()V
73: goto 76
StackMap locals:
StackMap stack: java.io.IOException
74: astore 8
start local 8 75: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
getstatic org.apache.catalina.servlets.CGIServlet.sm:Lorg/apache/tomcat/util/res/StringManager;
ldc "cgiServlet.expandCloseFail"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 8
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 8 76: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 77 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
1 77 1 srcPath Ljava/lang/StringBuilder;
2 77 2 destPath Ljava/lang/StringBuilder;
3 77 3 is Ljava/io/InputStream;
12 20 4 pathWalker Ljava/util/StringTokenizer;
24 65 4 f Ljava/io/File;
31 65 5 dir Ljava/io/File;
61 65 6 ioe Ljava/io/IOException;
28 29 8 e Ljava/io/IOException;
36 37 8 e Ljava/io/IOException;
44 45 8 e Ljava/io/IOException;
51 52 8 e Ljava/io/IOException;
70 71 8 e Ljava/io/IOException;
75 76 8 e Ljava/io/IOException;
Exception table:
from to target type
25 26 27 Class java.io.IOException
33 34 35 Class java.io.IOException
41 42 43 Class java.io.IOException
48 49 50 Class java.io.IOException
39 41 58 any
46 48 58 any
53 57 58 any
58 59 58 any
38 41 60 Class java.io.IOException
46 48 60 Class java.io.IOException
53 60 60 Class java.io.IOException
23 25 66 any
30 33 66 any
38 41 66 any
46 48 66 any
53 66 66 any
67 68 69 Class java.io.IOException
72 73 74 Class java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "CGIEnvironment Info:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.isValid:()Z
ifeq 36
4: aload 1
ldc "Validity: [true]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: aload 1
ldc "Environment values:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.env:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 16
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder top java.util.Iterator
StackMap stack:
9: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 10: aload 1
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 1
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 1
ldc ": ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 1
aload 0
aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String
ldc "will be set to blank"
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.blanksToString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
15: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 16: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
17: aload 1
ldc "Derived Command :["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 1
aload 0
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToBlanks:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
20: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: aload 1
ldc "Working Directory: ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.workingDirectory:Ljava/io/File;
ifnull 24
23: aload 1
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.workingDirectory:Ljava/io/File;
invokevirtual java.io.File.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder
StackMap stack:
aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
25: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 1
ldc "Command Line Params:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.cmdLineParameters:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 34
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder top java.util.Iterator
StackMap stack:
29: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 30: aload 1
ldc " ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: aload 1
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
33: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 34: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
35: goto 46
36: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIEnvironment java.lang.StringBuilder
StackMap stack:
aload 1
ldc "Validity: [false]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
37: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
38: aload 1
ldc "CGI script not found or not specified."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
39: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
40: aload 1
ldc "Check the HttpServletRequest pathInfo property to see if it is what "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
41: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
42: aload 1
ldc "you meant it to be. You must specify an existent and executable file "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
43: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
44: aload 1
ldc "as part of the path-info."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
45: aload 1
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
46: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
1 47 1 sb Ljava/lang/StringBuilder;
10 16 2 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
30 34 2 param Ljava/lang/String;
protected java.lang.String getCommand();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.command:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
protected java.io.File getWorkingDirectory();
descriptor: ()Ljava/io/File;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.workingDirectory:Ljava/io/File;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
protected java.util.Hashtable<java.lang.String, java.lang.String> getEnvironment();
descriptor: ()Ljava/util/Hashtable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.env:Ljava/util/Hashtable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
Signature: ()Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
protected java.util.ArrayList<java.lang.String> getParameters();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.cmdLineParameters:Ljava/util/ArrayList;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
Signature: ()Ljava/util/ArrayList<Ljava/lang/String;>;
protected boolean isValid();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIEnvironment.valid:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
protected java.lang.String nullsToBlanks(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc ""
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIEnvironment.nullsToString:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 1 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
protected java.lang.String nullsToString(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 1
aload 2
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 3 1 couldBeNull Ljava/lang/String;
0 3 2 subForNulls Ljava/lang/String;
MethodParameters:
Name Flags
couldBeNull
subForNulls
protected java.lang.String blanksToString(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
aload 2
goto 3
2: StackMap locals:
StackMap stack:
aload 1
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIEnvironment;
0 4 1 couldBeBlank Ljava/lang/String;
0 4 2 subForBlanks Ljava/lang/String;
MethodParameters:
Name Flags
couldBeBlank
subForBlanks
}
SourceFile: "CGIServlet.java"
NestHost: org.apache.catalina.servlets.CGIServlet
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
protected CGIEnvironment = org.apache.catalina.servlets.CGIServlet$CGIEnvironment of org.apache.catalina.servlets.CGIServlet