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 32
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 22
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 16
12: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.WARNING:Ljava/lang/System$Logger$Level;
13: ldc "SSL connection received. No https contxt created"
14: invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
15: new sun.net.httpserver.HttpError
dup
ldc "No SSL context established"
invokespecial sun.net.httpserver.HttpError.<init>:(Ljava/lang/String;)V
athrow
16: 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
17: 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;
18: 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;
19: aload 4
invokevirtual sun.net.httpserver.SSLStreams.getSSLEngine:()Ljavax/net/ssl/SSLEngine;
astore 2
20: 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;
21: goto 30
22: StackMap locals:
StackMap stack:
aload 0
new java.io.BufferedInputStream
dup
23: new sun.net.httpserver.Request$ReadStream
dup
24: 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;
25: 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
26: putfield sun.net.httpserver.ServerImpl$Exchange.rawin:Ljava/io/InputStream;
27: aload 0
new sun.net.httpserver.Request$WriteStream
dup
28: 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
29: putfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
30: 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;
31: 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;
32: 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 33: aload 5
invokevirtual sun.net.httpserver.Request.requestLine:()Ljava/lang/String;
astore 3
34: aload 3
ifnonnull 37
35: 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
36: return
37: StackMap locals: sun.net.httpserver.Request
StackMap stack:
aload 3
bipush 32
invokevirtual java.lang.String.indexOf:(I)I
istore 6
start local 6 38: iload 6
iconst_m1
if_icmpne 43
39: aload 0
sipush 400
40: aload 3
ldc "Bad request line"
41: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
42: return
43: 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 44: iload 6
iconst_1
iadd
istore 8
start local 8 45: aload 3
bipush 32
iload 8
invokevirtual java.lang.String.indexOf:(II)I
istore 6
46: iload 6
iconst_m1
if_icmpne 51
47: aload 0
sipush 400
48: aload 3
ldc "Bad request line"
49: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
50: return
51: 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 52: new java.net.URI
dup
aload 9
invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
astore 10
start local 10 53: iload 6
iconst_1
iadd
istore 8
54: aload 3
iload 8
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 55: aload 5
invokevirtual sun.net.httpserver.Request.headers:()Lcom/sun/net/httpserver/Headers;
astore 12
start local 12 56: aload 12
ldc "Transfer-encoding"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 13
start local 13 57: lconst_0
lstore 14
start local 14 58: aload 13
ifnull 61
aload 13
ldc "chunked"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 61
59: ldc -1
lstore 14
60: goto 66
61: 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
62: aload 13
ifnull 64
63: aload 13
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 14
64: StackMap locals:
StackMap stack:
lload 14
lconst_0
lcmp
ifne 66
65: 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
66: 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;
67: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
ifnonnull 72
68: aload 0
sipush 404
69: aload 3
ldc "No context found for request"
70: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
71: return
72: 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
73: 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 78
74: aload 0
sipush 500
75: aload 3
ldc "No handler for context"
76: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
77: return
78: StackMap locals:
StackMap stack:
aload 0
new sun.net.httpserver.ExchangeImpl
dup
79: 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
80: putfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
81: aload 12
ldc "Connection"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 16
start local 16 82: 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 83: aload 16
ifnull 85
aload 16
ldc "close"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 85
84: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.close:Z
85: 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 97
86: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.http10:Z
87: aload 16
ifnonnull 91
88: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.close:Z
89: aload 17
ldc "Connection"
ldc "close"
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
90: goto 97
StackMap locals:
StackMap stack:
91: aload 16
ldc "keep-alive"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 97
92: aload 17
ldc "Connection"
ldc "keep-alive"
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
93: invokestatic sun.net.httpserver.ServerConfig.getIdleInterval:()J
ldc 1000
ldiv
l2i
istore 18
start local 18 94: invokestatic sun.net.httpserver.ServerConfig.getMaxIdleConnections:()I
istore 19
start local 19 95: 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 96: 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 97: StackMap locals:
StackMap stack:
iload 1
ifeq 102
98: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
99: 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
100: 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;
101: 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
102: 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 103: aload 18
ifnull 108
aload 18
ldc "100-continue"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 108
104: 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
105: aload 0
106: bipush 100
iconst_0
aconst_null
107: invokevirtual sun.net.httpserver.ServerImpl$Exchange.sendReply:(IZLjava/lang/String;)V
108: 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 109: 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 110: 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 111: 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 112: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getRequestBody:()Ljava/io/InputStream;
pop
113: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getResponseBody:()Ljava/io/OutputStream;
pop
114: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.https:Z
ifeq 117
115: 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
116: goto 134
117: 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 118: goto 134
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
119: astore 5
start local 5 120: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
ldc "ServerImpl.Exchange (1)"
aload 5
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;Ljava/lang/Throwable;)V
121: 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 122: goto 134
123: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
124: aload 0
sipush 400
125: aload 3
ldc "NumberFormatException thrown"
126: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
goto 134
127: StackMap locals:
StackMap stack: java.net.URISyntaxException
pop
128: aload 0
sipush 400
129: aload 3
ldc "URISyntaxException thrown"
130: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
goto 134
131: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 132: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.logger:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
ldc "ServerImpl.Exchange (2)"
aload 5
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;Ljava/lang/Throwable;)V
133: 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 134: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 135 0 this Lsun/net/httpserver/ServerImpl$Exchange;
8 9 1 newconnection Z
10 119 1 newconnection Z
2 135 2 engine Ljavax/net/ssl/SSLEngine;
3 135 3 requestLine Ljava/lang/String;
4 135 4 sslStreams Lsun/net/httpserver/SSLStreams;
33 118 5 req Lsun/net/httpserver/Request;
38 118 6 space I
44 118 7 method Ljava/lang/String;
45 118 8 start I
52 118 9 uriStr Ljava/lang/String;
53 118 10 uri Ljava/net/URI;
55 118 11 version Ljava/lang/String;
56 118 12 headers Lcom/sun/net/httpserver/Headers;
57 118 13 s Ljava/lang/String;
58 118 14 clen J
82 118 16 chdr Ljava/lang/String;
83 118 17 rheaders Lcom/sun/net/httpserver/Headers;
94 97 18 idle I
95 97 19 max I
96 97 20 val Ljava/lang/String;
103 118 18 exp Ljava/lang/String;
109 118 19 sf Ljava/util/List<Lcom/sun/net/httpserver/Filter;>;
110 118 20 uf Ljava/util/List<Lcom/sun/net/httpserver/Filter;>;
111 118 21 sc Lcom/sun/net/httpserver/Filter$Chain;
112 118 22 uc Lcom/sun/net/httpserver/Filter$Chain;
120 122 5 e1 Ljava/io/IOException;
132 134 5 e4 Ljava/lang/Exception;
Exception table:
from to target type
4 36 119 Class java.io.IOException
37 42 119 Class java.io.IOException
43 50 119 Class java.io.IOException
51 71 119 Class java.io.IOException
72 77 119 Class java.io.IOException
78 118 119 Class java.io.IOException
4 36 123 Class java.lang.NumberFormatException
37 42 123 Class java.lang.NumberFormatException
43 50 123 Class java.lang.NumberFormatException
51 71 123 Class java.lang.NumberFormatException
72 77 123 Class java.lang.NumberFormatException
78 118 123 Class java.lang.NumberFormatException
4 36 127 Class java.net.URISyntaxException
37 42 127 Class java.net.URISyntaxException
43 50 127 Class java.net.URISyntaxException
51 71 127 Class java.net.URISyntaxException
72 77 127 Class java.net.URISyntaxException
78 118 127 Class java.net.URISyntaxException
4 36 131 Class java.lang.Exception
37 42 131 Class java.lang.Exception
43 50 131 Class java.lang.Exception
51 71 131 Class java.lang.Exception
72 77 131 Class java.lang.Exception
78 118 131 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/lang/System$Logger;
getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
ldc "ServerImpl.sendReply"
aload 4
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$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
public abstract Logger = java.lang.System$Logger of java.lang.System
public final Level = java.lang.System$Logger$Level of java.lang.System$Logger
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