class sun.net.httpserver.ServerImpl$Exchange implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.net.httpserver.ServerImpl$Exchange
super_class: java.lang.Object
{
java.nio.channels.SocketChannel chan;
descriptor: Ljava/nio/channels/SocketChannel;
flags: (0x0000)
sun.net.httpserver.HttpConnection connection;
descriptor: Lsun/net/httpserver/HttpConnection;
flags: (0x0000)
sun.net.httpserver.HttpContextImpl context;
descriptor: Lsun/net/httpserver/HttpContextImpl;
flags: (0x0000)
java.io.InputStream rawin;
descriptor: Ljava/io/InputStream;
flags: (0x0000)
java.io.OutputStream rawout;
descriptor: Ljava/io/OutputStream;
flags: (0x0000)
java.lang.String protocol;
descriptor: Ljava/lang/String;
flags: (0x0000)
sun.net.httpserver.ExchangeImpl tx;
descriptor: Lsun/net/httpserver/ExchangeImpl;
flags: (0x0000)
sun.net.httpserver.HttpContextImpl ctx;
descriptor: Lsun/net/httpserver/HttpContextImpl;
flags: (0x0000)
boolean rejected;
descriptor: Z
flags: (0x0000)
final sun.net.httpserver.ServerImpl this$0;
descriptor: Lsun/net/httpserver/ServerImpl;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.net.httpserver.ServerImpl, java.nio.channels.SocketChannel, java.lang.String, sun.net.httpserver.HttpConnection);
descriptor: (Lsun/net/httpserver/ServerImpl;Ljava/nio/channels/SocketChannel;Ljava/lang/String;Lsun/net/httpserver/HttpConnection;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.net.httpserver.ServerImpl$Exchange.rejected:Z
2: aload 0
aload 2
putfield sun.net.httpserver.ServerImpl$Exchange.chan:Ljava/nio/channels/SocketChannel;
3: aload 0
aload 4
putfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
4: aload 0
aload 3
putfield sun.net.httpserver.ServerImpl$Exchange.protocol:Ljava/lang/String;
5: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/net/httpserver/ServerImpl$Exchange;
0 6 2 chan Ljava/nio/channels/SocketChannel;
0 6 3 protocol Ljava/lang/String;
0 6 4 conn Lsun/net/httpserver/HttpConnection;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
this$0 final
chan
protocol
conn
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=23, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.getHttpContext:()Lsun/net/httpserver/HttpContextImpl;
putfield sun.net.httpserver.ServerImpl$Exchange.context:Lsun/net/httpserver/HttpContextImpl;
1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.context:Lsun/net/httpserver/HttpContextImpl;
ifnull 9
5: aload 0
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.getInputStream:()Ljava/io/InputStream;
putfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
6: aload 0
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.getRawOutputStream:()Ljava/io/OutputStream;
putfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
7: iconst_0
istore 1
start local 1 8: goto 30
end local 1 9: StackMap locals: sun.net.httpserver.ServerImpl$Exchange top javax.net.ssl.SSLEngine java.lang.String sun.net.httpserver.SSLStreams
StackMap stack:
iconst_1
istore 1
start local 1 10: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.https:Z
ifeq 20
11: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.sslContext:Ljavax/net/ssl/SSLContext;
ifnonnull 14
12: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/util/logging/Logger;
ldc "SSL connection received. No https contxt created"
invokevirtual java.util.logging.Logger.warning:(Ljava/lang/String;)V
13: new sun.net.httpserver.HttpError
dup
ldc "No SSL context established"
invokespecial sun.net.httpserver.HttpError.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: sun.net.httpserver.ServerImpl$Exchange int javax.net.ssl.SSLEngine java.lang.String sun.net.httpserver.SSLStreams
StackMap stack:
new sun.net.httpserver.SSLStreams
dup
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.sslContext:Ljavax/net/ssl/SSLContext;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.chan:Ljava/nio/channels/SocketChannel;
invokespecial sun.net.httpserver.SSLStreams.<init>:(Lsun/net/httpserver/ServerImpl;Ljavax/net/ssl/SSLContext;Ljava/nio/channels/SocketChannel;)V
astore 4
15: aload 0
aload 4
invokevirtual sun.net.httpserver.SSLStreams.getInputStream:()Lsun/net/httpserver/SSLStreams$InputStream;
putfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
16: aload 0
aload 4
invokevirtual sun.net.httpserver.SSLStreams.getOutputStream:()Lsun/net/httpserver/SSLStreams$OutputStream;
putfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
17: aload 4
invokevirtual sun.net.httpserver.SSLStreams.getSSLEngine:()Ljavax/net/ssl/SSLEngine;
astore 2
18: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
aload 4
putfield sun.net.httpserver.HttpConnection.sslStreams:Lsun/net/httpserver/SSLStreams;
19: goto 28
20: StackMap locals:
StackMap stack:
aload 0
new java.io.BufferedInputStream
dup
21: new sun.net.httpserver.Request$ReadStream
dup
22: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.chan:Ljava/nio/channels/SocketChannel;
23: invokespecial sun.net.httpserver.Request$ReadStream.<init>:(Lsun/net/httpserver/ServerImpl;Ljava/nio/channels/SocketChannel;)V
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
24: putfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
25: aload 0
new sun.net.httpserver.Request$WriteStream
dup
26: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.chan:Ljava/nio/channels/SocketChannel;
invokespecial sun.net.httpserver.Request$WriteStream.<init>:(Lsun/net/httpserver/ServerImpl;Ljava/nio/channels/SocketChannel;)V
27: putfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
putfield sun.net.httpserver.HttpConnection.raw:Ljava/io/InputStream;
29: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
putfield sun.net.httpserver.HttpConnection.rawout:Ljava/io/OutputStream;
30: StackMap locals:
StackMap stack:
new sun.net.httpserver.Request
dup
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
invokespecial sun.net.httpserver.Request.<init>:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 5
start local 5 31: aload 5
invokevirtual sun.net.httpserver.Request.requestLine:()Ljava/lang/String;
astore 3
32: aload 3
ifnonnull 35
33: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.closeConnection:(Lsun/net/httpserver/HttpConnection;)V
34: return
35: StackMap locals: sun.net.httpserver.Request
StackMap stack:
aload 3
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
istore 6
start local 6 36: iload 6
iconst_m1
if_icmpne 41
37: aload 0
sipush 400
38: aload 3
ldc "Bad request line"
39: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
40: return
41: StackMap locals: int
StackMap stack:
aload 3
iconst_0
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
start local 7 42: iload 6
iconst_1
iadd
istore 8
start local 8 43: aload 3
bipush 32
iload 8
invokevirtual java.lang.String.indexOf:(II)I
istore 6
44: iload 6
iconst_m1
if_icmpne 49
45: aload 0
sipush 400
46: aload 3
ldc "Bad request line"
47: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
48: return
49: StackMap locals: java.lang.String int
StackMap stack:
aload 3
iload 8
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 9
start local 9 50: new java.net.URI
dup
aload 9
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 10
start local 10 51: iload 6
iconst_1
iadd
istore 8
52: aload 3
iload 8
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 53: aload 5
invokevirtual sun.net.httpserver.Request.headers:()Lcom/sun/net/httpserver/Headers;
astore 12
start local 12 54: aload 12
ldc "Transfer-encoding"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 13
start local 13 55: lconst_0
lstore 14
start local 14 56: aload 13
ifnull 59
aload 13
ldc "chunked"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 59
57: ldc -1
lstore 14
58: goto 64
59: StackMap locals: sun.net.httpserver.ServerImpl$Exchange int javax.net.ssl.SSLEngine java.lang.String sun.net.httpserver.SSLStreams sun.net.httpserver.Request int java.lang.String int java.lang.String java.net.URI java.lang.String com.sun.net.httpserver.Headers java.lang.String long
StackMap stack:
aload 12
ldc "Content-Length"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 13
60: aload 13
ifnull 62
61: aload 13
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 14
62: StackMap locals:
StackMap stack:
lload 14
lconst_0
lcmp
ifne 64
63: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.requestCompleted:(Lsun/net/httpserver/HttpConnection;)V
64: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.contexts:Lsun/net/httpserver/ContextList;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.protocol:Ljava/lang/String;
aload 10
invokevirtual java.net.URI.getPath:()Ljava/lang/String;
invokevirtual sun.net.httpserver.ContextList.findContext:(Ljava/lang/String;Ljava/lang/String;)Lsun/net/httpserver/HttpContextImpl;
putfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
65: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
ifnonnull 70
66: aload 0
sipush 404
67: aload 3
ldc "No context found for request"
68: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
69: return
70: StackMap locals:
StackMap stack:
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpConnection.setContext:(Lsun/net/httpserver/HttpContextImpl;)V
71: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpContextImpl.getHandler:()Lcom/sun/net/httpserver/HttpHandler;
ifnonnull 76
72: aload 0
sipush 500
73: aload 3
ldc "No handler for context"
74: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
75: return
76: StackMap locals:
StackMap stack:
aload 0
new sun.net.httpserver.ExchangeImpl
dup
77: aload 7
aload 10
aload 5
lload 14
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokespecial sun.net.httpserver.ExchangeImpl.<init>:(Ljava/lang/String;Ljava/net/URI;Lsun/net/httpserver/Request;JLsun/net/httpserver/HttpConnection;)V
78: putfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
79: aload 12
ldc "Connection"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 16
start local 16 80: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getResponseHeaders:()Lcom/sun/net/httpserver/Headers;
astore 17
start local 17 81: aload 16
ifnull 83
aload 16
ldc "close"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 83
82: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.close:Z
83: StackMap locals: java.lang.String com.sun.net.httpserver.Headers
StackMap stack:
aload 11
ldc "http/1.0"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 95
84: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.http10:Z
85: aload 16
ifnonnull 89
86: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.close:Z
87: aload 17
ldc "Connection"
ldc "close"
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
88: goto 95
StackMap locals:
StackMap stack:
89: aload 16
ldc "keep-alive"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 95
90: aload 17
ldc "Connection"
ldc "keep-alive"
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
91: invokestatic sun.net.httpserver.ServerConfig.getIdleInterval:()J
ldc 1000
ldiv
l2i
istore 18
start local 18 92: invokestatic sun.net.httpserver.ServerConfig.getMaxIdleConnections:()I
istore 19
start local 19 93: new java.lang.StringBuilder
dup
ldc "timeout="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 18
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", max="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 19
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 20
start local 20 94: aload 17
ldc "Keep-Alive"
aload 20
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
end local 20 end local 19 end local 18 95: StackMap locals:
StackMap stack:
iload 1
ifeq 100
96: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
97: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.chan:Ljava/nio/channels/SocketChannel;
aload 2
aload 4
98: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.sslContext:Ljavax/net/ssl/SSLContext;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.protocol:Ljava/lang/String;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
99: invokevirtual sun.net.httpserver.HttpConnection.setParameters:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/nio/channels/SocketChannel;Ljavax/net/ssl/SSLEngine;Lsun/net/httpserver/SSLStreams;Ljavax/net/ssl/SSLContext;Ljava/lang/String;Lsun/net/httpserver/HttpContextImpl;Ljava/io/InputStream;)V
100: StackMap locals:
StackMap stack:
aload 12
ldc "Expect"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 18
start local 18 101: aload 18
ifnull 106
aload 18
ldc "100-continue"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 106
102: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
bipush 100
aload 3
aconst_null
invokevirtual sun.net.httpserver.ServerImpl.logReply:(ILjava/lang/String;Ljava/lang/String;)V
103: aload 0
104: bipush 100
iconst_0
aconst_null
105: invokevirtual sun.net.httpserver.ServerImpl$Exchange.sendReply:(IZLjava/lang/String;)V
106: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpContextImpl.getSystemFilters:()Ljava/util/List;
astore 19
start local 19 107: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpContextImpl.getFilters:()Ljava/util/List;
astore 20
start local 20 108: new com.sun.net.httpserver.Filter$Chain
dup
aload 19
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpContextImpl.getHandler:()Lcom/sun/net/httpserver/HttpHandler;
invokespecial com.sun.net.httpserver.Filter$Chain.<init>:(Ljava/util/List;Lcom/sun/net/httpserver/HttpHandler;)V
astore 21
start local 21 109: new com.sun.net.httpserver.Filter$Chain
dup
aload 20
new sun.net.httpserver.ServerImpl$Exchange$LinkHandler
dup
aload 0
aload 21
invokespecial sun.net.httpserver.ServerImpl$Exchange$LinkHandler.<init>:(Lsun/net/httpserver/ServerImpl$Exchange;Lcom/sun/net/httpserver/Filter$Chain;)V
invokespecial com.sun.net.httpserver.Filter$Chain.<init>:(Ljava/util/List;Lcom/sun/net/httpserver/HttpHandler;)V
astore 22
start local 22 110: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getRequestBody:()Ljava/io/InputStream;
pop
111: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getResponseBody:()Ljava/io/OutputStream;
pop
112: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.https:Z
ifeq 115
113: aload 22
new sun.net.httpserver.HttpsExchangeImpl
dup
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokespecial sun.net.httpserver.HttpsExchangeImpl.<init>:(Lsun/net/httpserver/ExchangeImpl;)V
invokevirtual com.sun.net.httpserver.Filter$Chain.doFilter:(Lcom/sun/net/httpserver/HttpExchange;)V
114: goto 132
115: StackMap locals: sun.net.httpserver.ServerImpl$Exchange int javax.net.ssl.SSLEngine java.lang.String sun.net.httpserver.SSLStreams sun.net.httpserver.Request int java.lang.String int java.lang.String java.net.URI java.lang.String com.sun.net.httpserver.Headers java.lang.String long java.lang.String com.sun.net.httpserver.Headers java.lang.String java.util.List java.util.List com.sun.net.httpserver.Filter$Chain com.sun.net.httpserver.Filter$Chain
StackMap stack:
aload 22
new sun.net.httpserver.HttpExchangeImpl
dup
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokespecial sun.net.httpserver.HttpExchangeImpl.<init>:(Lsun/net/httpserver/ExchangeImpl;)V
invokevirtual com.sun.net.httpserver.Filter$Chain.doFilter:(Lcom/sun/net/httpserver/HttpExchange;)V
end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 14 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 116: goto 132
end local 1 StackMap locals: sun.net.httpserver.ServerImpl$Exchange top javax.net.ssl.SSLEngine java.lang.String sun.net.httpserver.SSLStreams
StackMap stack: java.io.IOException
117: astore 5
start local 5 118: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
ldc "ServerImpl.Exchange (1)"
aload 5
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
119: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.closeConnection:(Lsun/net/httpserver/HttpConnection;)V
end local 5 120: goto 132
121: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
122: aload 0
sipush 400
123: aload 3
ldc "NumberFormatException thrown"
124: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
goto 132
125: StackMap locals:
StackMap stack: java.net.URISyntaxException
pop
126: aload 0
sipush 400
127: aload 3
ldc "URISyntaxException thrown"
128: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
goto 132
129: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 130: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
ldc "ServerImpl.Exchange (2)"
aload 5
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
131: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.closeConnection:(Lsun/net/httpserver/HttpConnection;)V
end local 5 132: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 133 0 this Lsun/net/httpserver/ServerImpl$Exchange;
8 9 1 newconnection Z
10 117 1 newconnection Z
2 133 2 engine Ljavax/net/ssl/SSLEngine;
3 133 3 requestLine Ljava/lang/String;
4 133 4 sslStreams Lsun/net/httpserver/SSLStreams;
31 116 5 req Lsun/net/httpserver/Request;
36 116 6 space I
42 116 7 method Ljava/lang/String;
43 116 8 start I
50 116 9 uriStr Ljava/lang/String;
51 116 10 uri Ljava/net/URI;
53 116 11 version Ljava/lang/String;
54 116 12 headers Lcom/sun/net/httpserver/Headers;
55 116 13 s Ljava/lang/String;
56 116 14 clen J
80 116 16 chdr Ljava/lang/String;
81 116 17 rheaders Lcom/sun/net/httpserver/Headers;
92 95 18 idle I
93 95 19 max I
94 95 20 val Ljava/lang/String;
101 116 18 exp Ljava/lang/String;
107 116 19 sf Ljava/util/List<Lcom/sun/net/httpserver/Filter;>;
108 116 20 uf Ljava/util/List<Lcom/sun/net/httpserver/Filter;>;
109 116 21 sc Lcom/sun/net/httpserver/Filter$Chain;
110 116 22 uc Lcom/sun/net/httpserver/Filter$Chain;
118 120 5 e1 Ljava/io/IOException;
130 132 5 e4 Ljava/lang/Exception;
Exception table:
from to target type
4 34 117 Class java.io.IOException
35 40 117 Class java.io.IOException
41 48 117 Class java.io.IOException
49 69 117 Class java.io.IOException
70 75 117 Class java.io.IOException
76 116 117 Class java.io.IOException
4 34 121 Class java.lang.NumberFormatException
35 40 121 Class java.lang.NumberFormatException
41 48 121 Class java.lang.NumberFormatException
49 69 121 Class java.lang.NumberFormatException
70 75 121 Class java.lang.NumberFormatException
76 116 121 Class java.lang.NumberFormatException
4 34 125 Class java.net.URISyntaxException
35 40 125 Class java.net.URISyntaxException
41 48 125 Class java.net.URISyntaxException
49 69 125 Class java.net.URISyntaxException
70 75 125 Class java.net.URISyntaxException
76 116 125 Class java.net.URISyntaxException
4 34 129 Class java.lang.Exception
35 40 129 Class java.lang.Exception
41 48 129 Class java.lang.Exception
49 69 129 Class java.lang.Exception
70 75 129 Class java.lang.Exception
76 116 129 Class java.lang.Exception
void reject(int, java.lang.String, java.lang.String);
descriptor: (ILjava/lang/String;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_1
putfield sun.net.httpserver.ServerImpl$Exchange.rejected:Z
1: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
iload 1
aload 2
aload 3
invokevirtual sun.net.httpserver.ServerImpl.logReply:(ILjava/lang/String;Ljava/lang/String;)V
2: aload 0
3: iload 1
iconst_0
new java.lang.StringBuilder
dup
ldc "<h1>"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
iload 1
invokestatic sun.net.httpserver.Code.msg:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "</h1>"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokevirtual sun.net.httpserver.ServerImpl$Exchange.sendReply:(IZLjava/lang/String;)V
5: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.closeConnection:(Lsun/net/httpserver/HttpConnection;)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/net/httpserver/ServerImpl$Exchange;
0 7 1 code I
0 7 2 requestStr Ljava/lang/String;
0 7 3 message Ljava/lang/String;
MethodParameters:
Name Flags
code
requestStr
message
void sendReply(int, boolean, java.lang.String);
descriptor: (IZLjava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
sipush 512
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 1: aload 4
ldc "HTTP/1.1 "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
iload 1
invokestatic sun.net.httpserver.Code.msg:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 3
ifnull 8
aload 3
invokevirtual java.lang.String.length:()I
ifeq 8
4: aload 4
ldc "Content-Length: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: aload 3
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "Content-Type: text/html\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: goto 10
8: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 4
ldc "Content-Length: 0\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: ldc ""
astore 3
10: StackMap locals:
StackMap stack:
iload 2
ifeq 12
11: aload 4
ldc "Connection: close\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
aload 4
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 14: aload 5
ldc "ISO8859_1"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 6
start local 6 15: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
aload 6
invokevirtual java.io.OutputStream.write:([B)V
16: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
17: iload 2
ifeq 23
18: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.closeConnection:(Lsun/net/httpserver/HttpConnection;)V
end local 6 end local 5 end local 4 19: goto 23
StackMap locals: sun.net.httpserver.ServerImpl$Exchange int int java.lang.String
StackMap stack: java.io.IOException
20: astore 4
start local 4 21: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.FINER:Ljava/util/logging/Level;
ldc "ServerImpl.sendReply"
aload 4
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
22: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.ServerImpl.closeConnection:(Lsun/net/httpserver/HttpConnection;)V
end local 4 23: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/net/httpserver/ServerImpl$Exchange;
0 24 1 code I
0 24 2 closeNow Z
0 24 3 text Ljava/lang/String;
1 19 4 builder Ljava/lang/StringBuilder;
14 19 5 s Ljava/lang/String;
15 19 6 b [B
21 23 4 e Ljava/io/IOException;
Exception table:
from to target type
0 19 20 Class java.io.IOException
MethodParameters:
Name Flags
code
closeNow
text
}
SourceFile: "ServerImpl.java"
NestHost: sun.net.httpserver.ServerImpl
InnerClasses:
public Chain = com.sun.net.httpserver.Filter$Chain of com.sun.net.httpserver.Filter
ReadStream = sun.net.httpserver.Request$ReadStream of sun.net.httpserver.Request
WriteStream = sun.net.httpserver.Request$WriteStream of sun.net.httpserver.Request
InputStream = sun.net.httpserver.SSLStreams$InputStream of sun.net.httpserver.SSLStreams
OutputStream = sun.net.httpserver.SSLStreams$OutputStream of sun.net.httpserver.SSLStreams
Exchange = sun.net.httpserver.ServerImpl$Exchange of sun.net.httpserver.ServerImpl
LinkHandler = sun.net.httpserver.ServerImpl$Exchange$LinkHandler of sun.net.httpserver.ServerImpl$Exchange