public final class sun.rmi.transport.proxy.CGIHandler
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.rmi.transport.proxy.CGIHandler
super_class: java.lang.Object
{
static int ContentLength;
descriptor: I
flags: (0x0008) ACC_STATIC
static java.lang.String QueryString;
descriptor: Ljava/lang/String;
flags: (0x0008) ACC_STATIC
static java.lang.String RequestMethod;
descriptor: Ljava/lang/String;
flags: (0x0008) ACC_STATIC
static java.lang.String ServerName;
descriptor: Ljava/lang/String;
flags: (0x0008) ACC_STATIC
static int ServerPort;
descriptor: I
flags: (0x0008) ACC_STATIC
private static sun.rmi.transport.proxy.CGICommandHandler[] commands;
descriptor: [Lsun/rmi/transport/proxy/CGICommandHandler;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.util.Hashtable<java.lang.String, sun.rmi.transport.proxy.CGICommandHandler> commandLookup;
descriptor: Ljava/util/Hashtable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/Hashtable<Ljava/lang/String;Lsun/rmi/transport/proxy/CGICommandHandler;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=1, args_size=0
0: new sun.rmi.transport.proxy.CGIHandler$1
dup
invokespecial sun.rmi.transport.proxy.CGIHandler$1.<init>:()V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
2: iconst_4
anewarray sun.rmi.transport.proxy.CGICommandHandler
dup
iconst_0
3: new sun.rmi.transport.proxy.CGIForwardCommand
dup
invokespecial sun.rmi.transport.proxy.CGIForwardCommand.<init>:()V
aastore
dup
iconst_1
4: new sun.rmi.transport.proxy.CGIGethostnameCommand
dup
invokespecial sun.rmi.transport.proxy.CGIGethostnameCommand.<init>:()V
aastore
dup
iconst_2
5: new sun.rmi.transport.proxy.CGIPingCommand
dup
invokespecial sun.rmi.transport.proxy.CGIPingCommand.<init>:()V
aastore
dup
iconst_3
6: new sun.rmi.transport.proxy.CGITryHostnameCommand
dup
invokespecial sun.rmi.transport.proxy.CGITryHostnameCommand.<init>:()V
aastore
7: putstatic sun.rmi.transport.proxy.CGIHandler.commands:[Lsun/rmi/transport/proxy/CGICommandHandler;
8: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic sun.rmi.transport.proxy.CGIHandler.commandLookup:Ljava/util/Hashtable;
9: iconst_0
istore 0
start local 0 10: goto 13
11: StackMap locals: int
StackMap stack:
getstatic sun.rmi.transport.proxy.CGIHandler.commandLookup:Ljava/util/Hashtable;
getstatic sun.rmi.transport.proxy.CGIHandler.commands:[Lsun/rmi/transport/proxy/CGICommandHandler;
iload 0
aaload
invokeinterface sun.rmi.transport.proxy.CGICommandHandler.getName:()Ljava/lang/String;
getstatic sun.rmi.transport.proxy.CGIHandler.commands:[Lsun/rmi/transport/proxy/CGICommandHandler;
iload 0
aaload
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: iinc 0 1
StackMap locals:
StackMap stack:
13: iload 0
getstatic sun.rmi.transport.proxy.CGIHandler.commands:[Lsun/rmi/transport/proxy/CGICommandHandler;
arraylength
if_icmplt 11
end local 0 14: return
LocalVariableTable:
Start End Slot Name Signature
10 14 0 i I
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/proxy/CGIHandler;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: getstatic sun.rmi.transport.proxy.CGIHandler.QueryString:Ljava/lang/String;
ldc "="
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 3
start local 3 1: iload 3
iconst_m1
if_icmpne 5
2: getstatic sun.rmi.transport.proxy.CGIHandler.QueryString:Ljava/lang/String;
astore 1
start local 1 3: ldc ""
astore 2
start local 2 4: goto 7
end local 2 end local 1 5: StackMap locals: java.lang.String[] top top int
StackMap stack:
getstatic sun.rmi.transport.proxy.CGIHandler.QueryString:Ljava/lang/String;
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
start local 1 6: getstatic sun.rmi.transport.proxy.CGIHandler.QueryString:Ljava/lang/String;
iload 3
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
start local 2 7: StackMap locals: java.lang.String[] java.lang.String java.lang.String int
StackMap stack:
getstatic sun.rmi.transport.proxy.CGIHandler.commandLookup:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.transport.proxy.CGICommandHandler
8: astore 4
start local 4 9: aload 4
ifnull 18
10: aload 4
aload 2
invokeinterface sun.rmi.transport.proxy.CGICommandHandler.execute:(Ljava/lang/String;)V
11: goto 22
StackMap locals: java.lang.String[] java.lang.String java.lang.String int sun.rmi.transport.proxy.CGICommandHandler
StackMap stack: sun.rmi.transport.proxy.CGIClientException
12: astore 5
start local 5 13: aload 5
invokevirtual sun.rmi.transport.proxy.CGIClientException.getMessage:()Ljava/lang/String;
invokestatic sun.rmi.transport.proxy.CGIHandler.returnClientError:(Ljava/lang/String;)V
end local 5 14: goto 22
15: StackMap locals:
StackMap stack: sun.rmi.transport.proxy.CGIServerException
astore 5
start local 5 16: aload 5
invokevirtual sun.rmi.transport.proxy.CGIServerException.getMessage:()Ljava/lang/String;
invokestatic sun.rmi.transport.proxy.CGIHandler.returnServerError:(Ljava/lang/String;)V
end local 5 17: goto 22
18: StackMap locals:
StackMap stack:
ldc "invalid command."
invokestatic sun.rmi.transport.proxy.CGIHandler.returnClientError:(Ljava/lang/String;)V
end local 4 end local 3 end local 2 end local 1 19: goto 22
StackMap locals: java.lang.String[]
StackMap stack: java.lang.Exception
20: astore 1
start local 1 21: new java.lang.StringBuilder
dup
ldc "internal error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.rmi.transport.proxy.CGIHandler.returnServerError:(Ljava/lang/String;)V
end local 1 22: StackMap locals:
StackMap stack:
iconst_0
invokestatic java.lang.System.exit:(I)V
23: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 args [Ljava/lang/String;
3 5 1 command Ljava/lang/String;
6 19 1 command Ljava/lang/String;
4 5 2 param Ljava/lang/String;
7 19 2 param Ljava/lang/String;
1 19 3 delim I
9 19 4 handler Lsun/rmi/transport/proxy/CGICommandHandler;
13 14 5 e Lsun/rmi/transport/proxy/CGIClientException;
16 17 5 e Lsun/rmi/transport/proxy/CGIServerException;
21 22 1 e Ljava/lang/Exception;
Exception table:
from to target type
10 11 12 Class sun.rmi.transport.proxy.CGIClientException
10 11 15 Class sun.rmi.transport.proxy.CGIServerException
0 19 20 Class java.lang.Exception
MethodParameters:
Name Flags
args
private static void returnClientError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Status: 400 Bad Request: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Content-type: text/html"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "<HTML><HEAD><TITLE>Java RMI Client Error</TITLE></HEAD><BODY>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "<H1>Java RMI Client Error</H1>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "</BODY></HTML>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: iconst_1
invokestatic java.lang.System.exit:(I)V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 message Ljava/lang/String;
MethodParameters:
Name Flags
message
private static void returnServerError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Status: 500 Server Error: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Content-type: text/html"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "<HTML><HEAD><TITLE>Java RMI Server Error</TITLE></HEAD><BODY>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "<H1>Java RMI Server Error</H1>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "</BODY></HTML>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: iconst_1
invokestatic java.lang.System.exit:(I)V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 message Ljava/lang/String;
MethodParameters:
Name Flags
message
}
SourceFile: "CGIHandler.java"
NestMembers:
sun.rmi.transport.proxy.CGIHandler$1
InnerClasses:
sun.rmi.transport.proxy.CGIHandler$1