public class org.apache.catalina.servlets.CGIServlet$CGIRunner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.catalina.servlets.CGIServlet$CGIRunner
super_class: java.lang.Object
{
private final java.lang.String command;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Hashtable<java.lang.String, java.lang.String> env;
descriptor: Ljava/util/Hashtable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
private final java.io.File wd;
descriptor: Ljava/io/File;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<java.lang.String> params;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private java.io.InputStream stdin;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private jakarta.servlet.http.HttpServletResponse response;
descriptor: Ljakarta/servlet/http/HttpServletResponse;
flags: (0x0002) ACC_PRIVATE
private boolean readyToRun;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final org.apache.catalina.servlets.CGIServlet this$0;
descriptor: Lorg/apache/catalina/servlets/CGIServlet;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
protected void <init>(java.lang.String, java.util.Hashtable<java.lang.String, java.lang.String>, java.io.File, java.util.ArrayList<java.lang.String>);
descriptor: (Lorg/apache/catalina/servlets/CGIServlet;Ljava/lang/String;Ljava/util/Hashtable;Ljava/io/File;Ljava/util/ArrayList;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=6, args_size=6
start local 0 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.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$CGIRunner.stdin:Ljava/io/InputStream;
3: aload 0
aconst_null
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
4: aload 0
iconst_0
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.readyToRun:Z
5: aload 0
aload 2
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
6: aload 0
aload 3
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.env:Ljava/util/Hashtable;
7: aload 0
aload 4
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.wd:Ljava/io/File;
8: aload 0
aload 5
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.params:Ljava/util/ArrayList;
9: aload 0
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.updateReadyStatus:()V
10: return
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 11 2 command Ljava/lang/String;
0 11 3 env Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
0 11 4 wd Ljava/io/File;
0 11 5 params Ljava/util/ArrayList<Ljava/lang/String;>;
Signature: (Ljava/lang/String;Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;Ljava/io/File;Ljava/util/ArrayList<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
this$0 final
command
env
wd
params
protected void updateReadyStatus();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
ifnull 7
1: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.env:Ljava/util/Hashtable;
ifnull 7
2: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.wd:Ljava/io/File;
ifnull 7
3: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.params:Ljava/util/ArrayList;
ifnull 7
4: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
ifnull 7
5: aload 0
iconst_1
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.readyToRun:Z
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.readyToRun:Z
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
protected boolean isReady();
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$CGIRunner.readyToRun:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
protected void setResponse(jakarta.servlet.http.HttpServletResponse);
descriptor: (Ljakarta/servlet/http/HttpServletResponse;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
1: aload 0
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.updateReadyStatus:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 3 1 response Ljakarta/servlet/http/HttpServletResponse;
MethodParameters:
Name Flags
response
protected void setInput(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.apache.catalina.servlets.CGIServlet$CGIRunner.stdin:Ljava/io/InputStream;
1: aload 0
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.updateReadyStatus:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 3 1 stdin Ljava/io/InputStream;
MethodParameters:
Name Flags
stdin
protected java.lang.String[] hashToStringArray(java.util.Hashtable<java.lang.String, ?>);
descriptor: (Ljava/util/Hashtable;)[Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
astore 2
start local 2 1: aload 1
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 3
start local 3 2: goto 5
3: StackMap locals: java.util.Vector java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 2
new java.lang.StringBuilder
dup
aload 4
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 1
aload 4
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.Vector.add:(Ljava/lang/Object;)Z
pop
end local 4 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
6: aload 2
invokevirtual java.util.Vector.size:()I
anewarray java.lang.String
astore 4
start local 4 7: aload 2
aload 4
invokevirtual java.util.Vector.copyInto:([Ljava/lang/Object;)V
8: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 9 1 h Ljava/util/Hashtable<Ljava/lang/String;*>;
1 9 2 v Ljava/util/Vector<Ljava/lang/String;>;
2 9 3 e Ljava/util/Enumeration<Ljava/lang/String;>;
4 5 4 k Ljava/lang/String;
7 9 4 strArr [Ljava/lang/String;
Exceptions:
throws java.lang.NullPointerException
Signature: (Ljava/util/Hashtable<Ljava/lang/String;*>;)[Ljava/lang/String;
MethodParameters:
Name Flags
h
protected void run();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=21, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.isReady:()Z
ifne 2
1: new java.io.IOException
dup
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": not ready to run."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: 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 4
3: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "envp: ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.env:Ljava/util/Hashtable;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "], command: ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
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;
invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
new java.lang.StringBuilder
dup
getstatic java.io.File.separator:Ljava/lang/String;
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;
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 7
5: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
new java.lang.StringBuilder
dup
getstatic java.io.File.separator:Ljava/lang/String;
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 7
6: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc ".."
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 12
7: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: ldc "Illegal Character in CGI command "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "path ('.' or '..') detected. Not "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: ldc "running CGI ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
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;
11: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 13: aconst_null
astore 2
start local 2 14: aconst_null
astore 3
start local 3 15: aconst_null
astore 4
start local 4 16: aconst_null
astore 5
start local 5 17: aconst_null
astore 6
start local 6 18: aconst_null
astore 7
start local 7 19: iconst_m1
istore 8
start local 8 20: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 9
start local 9 21: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiExecutable:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifeq 23
22: aload 9
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiExecutable:Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.Runtime java.io.BufferedReader java.io.InputStream java.io.BufferedReader java.lang.Thread java.io.BufferedOutputStream java.lang.Process int java.util.List
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiExecutableArgs:Ljava/util/List;
ifnull 25
24: aload 9
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.cgiExecutableArgs:Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
25: StackMap locals:
StackMap stack:
aload 9
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.command:Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
26: aload 9
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.params:Ljava/util/ArrayList;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
27: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
astore 1
28: aload 1
29: aload 9
iconst_0
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
30: aload 0
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.env:Ljava/util/Hashtable;
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.hashToStringArray:(Ljava/util/Hashtable;)[Ljava/lang/String;
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.wd:Ljava/io/File;
31: invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;
astore 7
32: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.env:Ljava/util/Hashtable;
ldc "CONTENT_LENGTH"
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 33: ldc ""
aload 10
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 38
34: new java.io.BufferedOutputStream
dup
aload 7
invokevirtual java.lang.Process.getOutputStream:()Ljava/io/OutputStream;
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 6
35: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.stdin:Ljava/io/InputStream;
aload 6
invokestatic org.apache.catalina.util.IOTools.flow:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
36: aload 6
invokevirtual java.io.BufferedOutputStream.flush:()V
37: aload 6
invokevirtual java.io.BufferedOutputStream.close:()V
38: StackMap locals: java.lang.String
StackMap stack:
iconst_1
istore 11
start local 11 39: new java.io.BufferedReader
dup
40: new java.io.InputStreamReader
dup
aload 7
invokevirtual java.lang.Process.getErrorStream:()Ljava/io/InputStream;
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
41: invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 4
42: aload 4
astore 12
start local 12 43: new java.lang.Thread
dup
aload 0
aload 12
invokedynamic run(Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;Ljava/io/BufferedReader;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
org/apache/catalina/servlets/CGIServlet$CGIRunner.lambda$0(Ljava/io/BufferedReader;)V (7)
()V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
astore 5
44: aload 5
invokevirtual java.lang.Thread.start:()V
45: new org.apache.catalina.servlets.CGIServlet$HTTPHeaderInputStream
dup
aload 7
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
invokespecial org.apache.catalina.servlets.CGIServlet$HTTPHeaderInputStream.<init>:(Ljava/io/InputStream;)V
46: astore 13
start local 13 47: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 13
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
48: astore 2
49: iconst_0
istore 14
start local 14 50: goto 92
51: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.Runtime java.io.BufferedReader java.io.InputStream java.io.BufferedReader java.lang.Thread java.io.BufferedOutputStream java.lang.Process int java.util.List java.lang.String int java.io.BufferedReader java.io.InputStream int
StackMap stack:
aconst_null
astore 15
start local 15 52: goto 69
53: StackMap locals: java.lang.String
StackMap stack:
getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 55
54: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "addHeader(\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 15
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;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
55: StackMap locals:
StackMap stack:
aload 15
ldc "HTTP"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 58
56: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
aload 0
aload 15
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.getSCFromHttpStatusLine:(Ljava/lang/String;)I
invokevirtual org.apache.catalina.servlets.CGIServlet.setStatus:(Ljakarta/servlet/http/HttpServletResponse;I)Z
istore 14
57: goto 69
StackMap locals:
StackMap stack:
58: aload 15
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
iflt 68
59: aload 15
iconst_0
aload 15
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
60: astore 16
start local 16 61: aload 15
aload 15
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.String.trim:()Ljava/lang/String;
62: astore 17
start local 17 63: aload 16
ldc "status"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 66
64: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
aload 0
aload 17
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.getSCFromCGIStatusHeader:(Ljava/lang/String;)I
invokevirtual org.apache.catalina.servlets.CGIServlet.setStatus:(Ljakarta/servlet/http/HttpServletResponse;I)Z
istore 14
65: goto 69
66: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
aload 16
aload 17
invokeinterface jakarta.servlet.http.HttpServletResponse.addHeader:(Ljava/lang/String;Ljava/lang/String;)V
end local 17 end local 16 67: goto 69
68: StackMap locals:
StackMap stack:
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.runBadHeader"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 15
aastore
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.info:(Ljava/lang/Object;)V
69: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 15
ifnull 70
aload 15
invokevirtual java.lang.String.isEmpty:()Z
ifeq 53
70: StackMap locals:
StackMap stack:
sipush 2048
newarray 8
astore 16
start local 16 71: aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.response:Ljakarta/servlet/http/HttpServletResponse;
invokeinterface jakarta.servlet.http.HttpServletResponse.getOutputStream:()Ljakarta/servlet/ServletOutputStream;
astore 17
start local 17 72: aload 7
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
astore 3
73: goto 77
74: StackMap locals: byte[] java.io.OutputStream
StackMap stack:
getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
invokeinterface org.apache.juli.logging.Log.isTraceEnabled:()Z
ifeq 76
75: getstatic org.apache.catalina.servlets.CGIServlet.log:Lorg/apache/juli/logging/Log;
new java.lang.StringBuilder
dup
ldc "output "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes of data"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.trace:(Ljava/lang/Object;)V
76: StackMap locals:
StackMap stack:
aload 17
aload 16
iconst_0
iload 8
invokevirtual java.io.OutputStream.write:([BII)V
77: StackMap locals:
StackMap stack:
iload 14
ifne 83
aload 3
aload 16
invokevirtual java.io.InputStream.read:([B)I
dup
istore 8
iconst_m1
if_icmpne 74
78: goto 83
StackMap locals:
StackMap stack: java.lang.Throwable
79: astore 18
80: iload 8
iconst_m1
if_icmpeq 82
81: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
aload 16
invokevirtual java.io.InputStream.read:([B)I
dup
istore 8
iconst_m1
if_icmpne 81
82: StackMap locals:
StackMap stack:
aload 18
athrow
83: StackMap locals:
StackMap stack:
iload 8
iconst_m1
if_icmpeq 85
84: StackMap locals:
StackMap stack:
aload 3
aload 16
invokevirtual java.io.InputStream.read:([B)I
dup
istore 8
iconst_m1
if_icmpne 84
85: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.Process.exitValue:()I
pop
86: iconst_0
istore 11
end local 17 end local 16 end local 15 87: goto 92
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.Runtime java.io.BufferedReader java.io.InputStream java.io.BufferedReader java.lang.Thread java.io.BufferedOutputStream java.lang.Process int java.util.List java.lang.String int java.io.BufferedReader java.io.InputStream int
StackMap stack: java.lang.IllegalThreadStateException
88: pop
89: ldc 500
invokestatic java.lang.Thread.sleep:(J)V
90: goto 92
StackMap locals:
StackMap stack: java.lang.InterruptedException
91: pop
92: StackMap locals:
StackMap stack:
iload 11
ifne 51
end local 14 end local 13 end local 12 end local 11 end local 10 93: goto 117
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.Runtime java.io.BufferedReader java.io.InputStream java.io.BufferedReader java.lang.Thread java.io.BufferedOutputStream java.lang.Process int java.util.List
StackMap stack: java.io.IOException
94: astore 10
start local 10 95: 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.runFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 10
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
96: aload 10
athrow
end local 10 97: StackMap locals:
StackMap stack: java.lang.Throwable
astore 19
98: aload 2
ifnull 103
99: aload 2
invokevirtual java.io.BufferedReader.close:()V
100: goto 103
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.Runtime java.io.BufferedReader java.io.InputStream java.io.BufferedReader java.lang.Thread java.io.BufferedOutputStream java.lang.Process int java.util.List top top top top top top top top top java.lang.Throwable
StackMap stack: java.io.IOException
101: astore 20
start local 20 102: 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.runHeaderReaderFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 20
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 20 103: StackMap locals:
StackMap stack:
aload 3
ifnull 108
104: aload 3
invokevirtual java.io.InputStream.close:()V
105: goto 108
StackMap locals:
StackMap stack: java.io.IOException
106: astore 20
start local 20 107: 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.runOutputStreamFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 20
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 20 108: StackMap locals:
StackMap stack:
aload 5
ifnull 113
109: aload 5
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.stderrTimeout:J
invokevirtual java.lang.Thread.join:(J)V
110: goto 113
StackMap locals:
StackMap stack: java.lang.InterruptedException
111: pop
112: 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.runReaderInterrupt"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
113: StackMap locals:
StackMap stack:
aload 7
ifnull 116
114: aload 7
invokevirtual java.lang.Process.destroy:()V
115: aconst_null
astore 7
116: StackMap locals:
StackMap stack:
aload 19
athrow
117: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.Runtime java.io.BufferedReader java.io.InputStream java.io.BufferedReader java.lang.Thread java.io.BufferedOutputStream java.lang.Process int java.util.List
StackMap stack:
aload 2
ifnull 122
118: aload 2
invokevirtual java.io.BufferedReader.close:()V
119: goto 122
StackMap locals:
StackMap stack: java.io.IOException
120: astore 20
start local 20 121: 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.runHeaderReaderFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 20
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 20 122: StackMap locals:
StackMap stack:
aload 3
ifnull 127
123: aload 3
invokevirtual java.io.InputStream.close:()V
124: goto 127
StackMap locals:
StackMap stack: java.io.IOException
125: astore 20
start local 20 126: 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.runOutputStreamFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 20
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 20 127: StackMap locals:
StackMap stack:
aload 5
ifnull 132
128: aload 5
aload 0
getfield org.apache.catalina.servlets.CGIServlet$CGIRunner.this$0:Lorg/apache/catalina/servlets/CGIServlet;
getfield org.apache.catalina.servlets.CGIServlet.stderrTimeout:J
invokevirtual java.lang.Thread.join:(J)V
129: goto 132
StackMap locals:
StackMap stack: java.lang.InterruptedException
130: pop
131: 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.runReaderInterrupt"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
132: StackMap locals:
StackMap stack:
aload 7
ifnull 135
133: aload 7
invokevirtual java.lang.Process.destroy:()V
134: aconst_null
astore 7
135: StackMap locals:
StackMap stack:
return
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 136 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
13 136 1 rt Ljava/lang/Runtime;
14 136 2 cgiHeaderReader Ljava/io/BufferedReader;
15 136 3 cgiOutput Ljava/io/InputStream;
16 136 4 commandsStdErr Ljava/io/BufferedReader;
17 136 5 errReaderThread Ljava/lang/Thread;
18 136 6 commandsStdIn Ljava/io/BufferedOutputStream;
19 136 7 proc Ljava/lang/Process;
20 136 8 bufRead I
21 136 9 cmdAndArgs Ljava/util/List<Ljava/lang/String;>;
33 93 10 sContentLength Ljava/lang/String;
39 93 11 isRunning Z
43 93 12 stdErrRdr Ljava/io/BufferedReader;
47 93 13 cgiHeaderStream Ljava/io/InputStream;
50 93 14 skipBody Z
52 87 15 line Ljava/lang/String;
61 67 16 header Ljava/lang/String;
63 67 17 value Ljava/lang/String;
71 87 16 bBuf [B
72 87 17 out Ljava/io/OutputStream;
95 97 10 e Ljava/io/IOException;
102 103 20 ioe Ljava/io/IOException;
121 122 20 ioe Ljava/io/IOException;
107 108 20 ioe Ljava/io/IOException;
126 127 20 ioe Ljava/io/IOException;
Exception table:
from to target type
73 79 79 any
51 87 88 Class java.lang.IllegalThreadStateException
89 90 91 Class java.lang.InterruptedException
27 93 94 Class java.io.IOException
27 97 97 any
99 100 101 Class java.io.IOException
104 105 106 Class java.io.IOException
109 110 111 Class java.lang.InterruptedException
118 119 120 Class java.io.IOException
123 124 125 Class java.io.IOException
128 129 130 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
private int getSCFromHttpStatusLine(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 1
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
istore 2
start local 2 1: iload 2
iconst_1
if_icmplt 2
aload 1
invokevirtual java.lang.String.length:()I
iload 2
iconst_3
iadd
if_icmpge 4
2: StackMap locals: int
StackMap stack:
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.runInvalidStatus"
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
3: sipush 500
ireturn
4: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 2
iconst_3
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 5: aload 3
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 4
start local 4 6: goto 10
end local 4 StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.String int java.lang.String
StackMap stack: java.lang.NumberFormatException
7: pop
8: 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.runInvalidStatus"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
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
9: sipush 500
ireturn
start local 4 10: StackMap locals: int
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 11 1 line Ljava/lang/String;
1 11 2 statusStart I
5 11 3 status Ljava/lang/String;
6 7 4 statusCode I
10 11 4 statusCode I
Exception table:
from to target type
5 6 7 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
line
private int (java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.String.length:()I
iconst_3
if_icmpge 3
1: 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.runInvalidStatus"
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
2: sipush 500
ireturn
3: StackMap locals:
StackMap stack:
aload 1
iconst_0
iconst_3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
start local 2 4: aload 2
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 5: goto 9
end local 3 StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.lang.String java.lang.String
StackMap stack: java.lang.NumberFormatException
6: pop
7: 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.runInvalidStatus"
iconst_1
anewarray java.lang.Object
dup
iconst_0
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.warn:(Ljava/lang/Object;)V
8: sipush 500
ireturn
start local 3 9: StackMap locals: int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 10 1 value Ljava/lang/String;
4 10 2 status Ljava/lang/String;
5 6 3 statusCode I
9 10 3 statusCode I
Exception table:
from to target type
4 5 6 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
value
private void sendToLog(java.io.BufferedReader);
descriptor: (Ljava/io/BufferedReader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: java.lang.String int
StackMap stack:
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.runStdErr"
iconst_1
anewarray java.lang.Object
dup
iconst_0
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.warn:(Ljava/lang/Object;)V
4: iinc 3 1
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 2
ifnonnull 3
6: goto 20
StackMap locals:
StackMap stack: java.io.IOException
7: astore 4
start local 4 8: 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.runStdErrFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 4
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 4 9: aload 1
invokevirtual java.io.BufferedReader.close:()V
10: goto 24
StackMap locals:
StackMap stack: java.io.IOException
11: astore 6
start local 6 12: 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.runStdErrFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 6 13: goto 24
14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
15: aload 1
invokevirtual java.io.BufferedReader.close:()V
16: goto 19
StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.io.BufferedReader java.lang.String int top java.lang.Throwable
StackMap stack: java.io.IOException
17: astore 6
start local 6 18: 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.runStdErrFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 6 19: StackMap locals:
StackMap stack:
aload 5
athrow
20: StackMap locals: org.apache.catalina.servlets.CGIServlet$CGIRunner java.io.BufferedReader java.lang.String int
StackMap stack:
aload 1
invokevirtual java.io.BufferedReader.close:()V
21: goto 24
StackMap locals:
StackMap stack: java.io.IOException
22: astore 6
start local 6 23: 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.runStdErrFail"
invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 6 24: StackMap locals:
StackMap stack:
iload 3
ifle 26
25: 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.runStdErrCount"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
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
26: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
0 27 1 rdr Ljava/io/BufferedReader;
1 27 2 line Ljava/lang/String;
2 27 3 lineCount I
8 9 4 e Ljava/io/IOException;
12 13 6 e Ljava/io/IOException;
18 19 6 e Ljava/io/IOException;
23 24 6 e Ljava/io/IOException;
Exception table:
from to target type
2 6 7 Class java.io.IOException
9 10 11 Class java.io.IOException
2 9 14 any
15 16 17 Class java.io.IOException
20 21 22 Class java.io.IOException
MethodParameters:
Name Flags
rdr
private void lambda$0(java.io.BufferedReader);
descriptor: (Ljava/io/BufferedReader;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
invokevirtual org.apache.catalina.servlets.CGIServlet$CGIRunner.sendToLog:(Ljava/io/BufferedReader;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/catalina/servlets/CGIServlet$CGIRunner;
}
SourceFile: "CGIServlet.java"
NestHost: org.apache.catalina.servlets.CGIServlet
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
protected CGIRunner = org.apache.catalina.servlets.CGIServlet$CGIRunner of org.apache.catalina.servlets.CGIServlet
protected HTTPHeaderInputStream = org.apache.catalina.servlets.CGIServlet$HTTPHeaderInputStream of org.apache.catalina.servlets.CGIServlet