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=22, 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.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.close:()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: iconst_0
istore 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: iconst_m1
istore 14
58: goto 62
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 int
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.Integer.parseInt:(Ljava/lang/String;)I
istore 14
62: 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;
63: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
ifnonnull 68
64: aload 0
sipush 404
65: aload 3
ldc "No context found for request"
66: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
67: return
68: 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
69: 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 74
70: aload 0
sipush 500
71: aload 3
ldc "No handler for context"
72: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
73: return
74: StackMap locals:
StackMap stack:
aload 0
new sun.net.httpserver.ExchangeImpl
dup
75: aload 7
aload 10
aload 5
iload 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;ILsun/net/httpserver/HttpConnection;)V
76: putfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
77: aload 12
ldc "Connection"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 15
start local 15 78: 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 16
start local 16 79: aload 15
ifnull 81
aload 15
ldc "close"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 81
80: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.close:Z
81: 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 93
82: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.http10:Z
83: aload 15
ifnonnull 87
84: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
iconst_1
putfield sun.net.httpserver.ExchangeImpl.close:Z
85: aload 16
ldc "Connection"
ldc "close"
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
86: goto 93
StackMap locals:
StackMap stack:
87: aload 15
ldc "keep-alive"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 93
88: aload 16
ldc "Connection"
ldc "keep-alive"
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
89: invokestatic sun.net.httpserver.ServerConfig.getIdleInterval:()J
ldc 1000
ldiv
l2i
istore 17
start local 17 90: invokestatic sun.net.httpserver.ServerConfig.getMaxIdleConnections:()I
istore 18
start local 18 91: new java.lang.StringBuilder
dup
ldc "timeout="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 17
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", max="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 18
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 19
start local 19 92: aload 16
ldc "Keep-Alive"
aload 19
invokevirtual com.sun.net.httpserver.Headers.set:(Ljava/lang/String;Ljava/lang/String;)V
end local 19 end local 18 end local 17 93: StackMap locals:
StackMap stack:
iload 1
ifeq 98
94: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
95: 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
96: 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;
97: 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
98: StackMap locals:
StackMap stack:
aload 12
ldc "Expect"
invokevirtual com.sun.net.httpserver.Headers.getFirst:(Ljava/lang/String;)Ljava/lang/String;
astore 17
start local 17 99: aload 17
ifnull 104
aload 17
ldc "100-continue"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 104
100: 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
101: aload 0
102: bipush 100
iconst_0
aconst_null
103: invokevirtual sun.net.httpserver.ServerImpl$Exchange.sendReply:(IZLjava/lang/String;)V
104: 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 18
start local 18 105: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.ctx:Lsun/net/httpserver/HttpContextImpl;
invokevirtual sun.net.httpserver.HttpContextImpl.getFilters:()Ljava/util/List;
astore 19
start local 19 106: new com.sun.net.httpserver.Filter$Chain
dup
aload 18
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 20
start local 20 107: new com.sun.net.httpserver.Filter$Chain
dup
aload 19
new sun.net.httpserver.ServerImpl$Exchange$LinkHandler
dup
aload 0
aload 20
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 21
start local 21 108: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getRequestBody:()Ljava/io/InputStream;
pop
109: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.tx:Lsun/net/httpserver/ExchangeImpl;
invokevirtual sun.net.httpserver.ExchangeImpl.getResponseBody:()Ljava/io/OutputStream;
pop
110: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.this$0:Lsun/net/httpserver/ServerImpl;
getfield sun.net.httpserver.ServerImpl.https:Z
ifeq 113
111: aload 21
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
112: goto 130
113: 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 int 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 21
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 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 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 114: goto 130
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
115: astore 5
start local 5 116: 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
117: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.close:()V
end local 5 118: goto 130
119: StackMap locals:
StackMap stack: java.lang.NumberFormatException
pop
120: aload 0
sipush 400
121: aload 3
ldc "NumberFormatException thrown"
122: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
goto 130
123: StackMap locals:
StackMap stack: java.net.URISyntaxException
pop
124: aload 0
sipush 400
125: aload 3
ldc "URISyntaxException thrown"
126: invokevirtual sun.net.httpserver.ServerImpl$Exchange.reject:(ILjava/lang/String;Ljava/lang/String;)V
goto 130
127: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 128: 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
129: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.close:()V
end local 5 130: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 131 0 this Lsun/net/httpserver/ServerImpl$Exchange;
8 9 1 newconnection Z
10 115 1 newconnection Z
2 131 2 engine Ljavax/net/ssl/SSLEngine;
3 131 3 requestLine Ljava/lang/String;
4 131 4 sslStreams Lsun/net/httpserver/SSLStreams;
31 114 5 req Lsun/net/httpserver/Request;
36 114 6 space I
42 114 7 method Ljava/lang/String;
43 114 8 start I
50 114 9 uriStr Ljava/lang/String;
51 114 10 uri Ljava/net/URI;
53 114 11 version Ljava/lang/String;
54 114 12 headers Lcom/sun/net/httpserver/Headers;
55 114 13 s Ljava/lang/String;
56 114 14 clen I
78 114 15 chdr Ljava/lang/String;
79 114 16 rheaders Lcom/sun/net/httpserver/Headers;
90 93 17 idle I
91 93 18 max I
92 93 19 val Ljava/lang/String;
99 114 17 exp Ljava/lang/String;
105 114 18 sf Ljava/util/List<Lcom/sun/net/httpserver/Filter;>;
106 114 19 uf Ljava/util/List<Lcom/sun/net/httpserver/Filter;>;
107 114 20 sc Lcom/sun/net/httpserver/Filter$Chain;
108 114 21 uc Lcom/sun/net/httpserver/Filter$Chain;
116 118 5 e1 Ljava/io/IOException;
128 130 5 e4 Ljava/lang/Exception;
Exception table:
from to target type
4 34 115 Class java.io.IOException
35 40 115 Class java.io.IOException
41 48 115 Class java.io.IOException
49 67 115 Class java.io.IOException
68 73 115 Class java.io.IOException
74 114 115 Class java.io.IOException
4 34 119 Class java.lang.NumberFormatException
35 40 119 Class java.lang.NumberFormatException
41 48 119 Class java.lang.NumberFormatException
49 67 119 Class java.lang.NumberFormatException
68 73 119 Class java.lang.NumberFormatException
74 114 119 Class java.lang.NumberFormatException
4 34 123 Class java.net.URISyntaxException
35 40 123 Class java.net.URISyntaxException
41 48 123 Class java.net.URISyntaxException
49 67 123 Class java.net.URISyntaxException
68 73 123 Class java.net.URISyntaxException
74 114 123 Class java.net.URISyntaxException
4 34 127 Class java.lang.Exception
35 40 127 Class java.lang.Exception
41 48 127 Class java.lang.Exception
49 67 127 Class java.lang.Exception
68 73 127 Class java.lang.Exception
74 114 127 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_1
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: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/net/httpserver/ServerImpl$Exchange;
0 6 1 code I
0 6 2 requestStr Ljava/lang/String;
0 6 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=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "HTTP/1.1 "
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 "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 1: aload 3
ifnull 5
aload 3
invokevirtual java.lang.String.length:()I
ifeq 5
2: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Content-Length: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
3: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Content-Type: text/html\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
4: goto 7
5: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Content-Length: 0\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
6: ldc ""
astore 3
7: StackMap locals:
StackMap stack:
iload 2
ifeq 9
8: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "Connection: close\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
9: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
10: aload 4
ldc "ISO8859_1"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 5
start local 5 11: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
aload 5
invokevirtual java.io.OutputStream.write:([B)V
12: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.rawout:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
13: iload 2
ifeq 19
14: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.close:()V
end local 5 end local 4 15: goto 19
StackMap locals: sun.net.httpserver.ServerImpl$Exchange int int java.lang.String
StackMap stack: java.io.IOException
16: astore 4
start local 4 17: 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
18: aload 0
getfield sun.net.httpserver.ServerImpl$Exchange.connection:Lsun/net/httpserver/HttpConnection;
invokevirtual sun.net.httpserver.HttpConnection.close:()V
end local 4 19: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/net/httpserver/ServerImpl$Exchange;
0 20 1 code I
0 20 2 closeNow Z
0 20 3 text Ljava/lang/String;
1 15 4 s Ljava/lang/String;
11 15 5 b [B
17 19 4 e Ljava/io/IOException;
Exception table:
from to target type
0 15 16 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