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