class sun.rmi.transport.tcp.TCPTransport$ConnectionHandler implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
super_class: java.lang.Object
{
private static final int POST;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1347375956
private java.security.AccessControlContext okContext;
descriptor: Ljava/security/AccessControlContext;
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.security.AccessControlContext, java.lang.ref.Reference<java.security.AccessControlContext>> authCache;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/security/AccessControlContext;Ljava/lang/ref/Reference<Ljava/security/AccessControlContext;>;>;
private java.lang.SecurityManager cacheSecurityManager;
descriptor: Ljava/lang/SecurityManager;
flags: (0x0002) ACC_PRIVATE
private java.net.Socket socket;
descriptor: Ljava/net/Socket;
flags: (0x0002) ACC_PRIVATE
private java.lang.String remoteHost;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
final sun.rmi.transport.tcp.TCPTransport this$0;
descriptor: Lsun/rmi/transport/tcp/TCPTransport;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.rmi.transport.tcp.TCPTransport, java.net.Socket, java.lang.String);
descriptor: (Lsun/rmi/transport/tcp/TCPTransport;Ljava/net/Socket;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.cacheSecurityManager:Ljava/lang/SecurityManager;
2: aload 0
aload 2
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
3: aload 0
aload 3
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
4: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
0 5 2 socket Ljava/net/Socket;
0 5 3 remoteHost Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
socket
remoteHost
java.lang.String getClientHost();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
void checkAcceptPermission(java.lang.SecurityManager, java.security.AccessControlContext);
descriptor: (Ljava/lang/SecurityManager;Ljava/security/AccessControlContext;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.cacheSecurityManager:Ljava/lang/SecurityManager;
if_acmpeq 4
1: aload 0
aconst_null
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.okContext:Ljava/security/AccessControlContext;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.authCache:Ljava/util/Map;
3: aload 0
aload 1
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.cacheSecurityManager:Ljava/lang/SecurityManager;
4: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.okContext:Ljava/security/AccessControlContext;
invokevirtual java.security.AccessControlContext.equals:(Ljava/lang/Object;)Z
ifne 5
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.authCache:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 6
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getInetAddress:()Ljava/net/InetAddress;
astore 3
start local 3 7: aload 3
ifnull 8
aload 3
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
goto 9
StackMap locals: java.net.InetAddress
StackMap stack:
8: ldc "*"
StackMap locals:
StackMap stack: java.lang.String
9: astore 4
start local 4 10: aload 1
aload 4
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getPort:()I
invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
11: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.authCache:Ljava/util/Map;
aload 2
new java.lang.ref.SoftReference
dup
aload 2
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 0
aload 2
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.okContext:Ljava/security/AccessControlContext;
13: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
0 14 1 sm Ljava/lang/SecurityManager;
0 14 2 acc Ljava/security/AccessControlContext;
7 14 3 addr Ljava/net/InetAddress;
10 14 4 host Ljava/lang/String;
MethodParameters:
Name Flags
sm
acc
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: aload 1
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
astore 2
start local 2 2: aload 1
new java.lang.StringBuilder
dup
ldc "RMI TCP Connection("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: getstatic sun.rmi.transport.tcp.TCPTransport.connectionCount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: ldc ")-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
6: new sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1
dup
aload 0
invokespecial sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.<init>:(Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;)V
7: getstatic sun.rmi.transport.tcp.TCPTransport.NOPERMS_ACC:Ljava/security/AccessControlContext;
8: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
pop
9: goto 13
StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler java.lang.Thread java.lang.String
StackMap stack: java.lang.Throwable
10: astore 3
11: aload 1
aload 2
invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
12: aload 3
athrow
13: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
1 15 1 t Ljava/lang/Thread;
2 15 2 name Ljava/lang/String;
Exception table:
from to target type
2 10 10 any
private void run0();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=21, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
invokevirtual sun.rmi.transport.tcp.TCPTransport.getEndpoint:()Lsun/rmi/transport/tcp/TCPEndpoint;
astore 1
start local 1 1: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getPort:()I
istore 2
start local 2 2: getstatic sun.rmi.transport.tcp.TCPTransport.threadConnectionHandler:Ljava/lang/ThreadLocal;
aload 0
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
3: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
iconst_1
invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
4: goto 6
StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int
StackMap stack: java.lang.Exception
5: pop
6: StackMap locals:
StackMap stack:
getstatic sun.rmi.transport.tcp.TCPTransport.connectionReadTimeout:I
ifle 10
7: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
getstatic sun.rmi.transport.tcp.TCPTransport.connectionReadTimeout:I
invokevirtual java.net.Socket.setSoTimeout:(I)V
8: goto 10
StackMap locals:
StackMap stack: java.lang.Exception
9: pop
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
astore 3
start local 3 11: aload 3
invokevirtual java.io.InputStream.markSupported:()Z
ifeq 13
12: aload 3
goto 14
13: StackMap locals: java.io.InputStream
StackMap stack:
new java.io.BufferedInputStream
dup
aload 3
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
14: StackMap locals:
StackMap stack: java.io.InputStream
astore 4
start local 4 15: aload 4
iconst_4
invokevirtual java.io.InputStream.mark:(I)V
16: new java.io.DataInputStream
dup
aload 4
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
start local 5 17: aload 5
invokevirtual java.io.DataInputStream.readInt:()I
istore 6
start local 6 18: iload 6
ldc 1347375956
if_icmpne 34
19: getstatic sun.rmi.transport.tcp.TCPTransport.disableIncomingHttp:Z
ifeq 21
20: new java.rmi.RemoteException
dup
ldc "RMI over HTTP is disabled"
invokespecial java.rmi.RemoteException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: java.io.InputStream java.io.DataInputStream int
StackMap stack:
getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
ldc "decoding HTTP-wrapped call"
invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
22: aload 4
invokevirtual java.io.InputStream.reset:()V
23: aload 0
new sun.rmi.transport.proxy.HttpReceiveSocket
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
aload 4
aconst_null
invokespecial sun.rmi.transport.proxy.HttpReceiveSocket.<init>:(Ljava/net/Socket;Ljava/io/InputStream;Ljava/io/OutputStream;)V
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
24: aload 0
ldc "0.0.0.0"
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
25: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
astore 3
26: new java.io.BufferedInputStream
dup
aload 3
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
27: new java.io.DataInputStream
dup
aload 4
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
28: aload 5
invokevirtual java.io.DataInputStream.readInt:()I
istore 6
29: goto 34
StackMap locals:
StackMap stack: java.io.IOException
30: astore 7
start local 7 31: new java.rmi.RemoteException
dup
ldc "Error HTTP-unwrapping call"
32: aload 7
33: invokespecial java.rmi.RemoteException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 34: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.DataInputStream.readShort:()S
istore 7
start local 7 35: iload 6
ldc 1246907721
if_icmpne 37
36: iload 7
iconst_2
if_icmpeq 40
37: StackMap locals: int
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
38: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
39: return
40: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
astore 8
start local 8 41: new java.io.BufferedOutputStream
dup
aload 8
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
42: astore 9
start local 9 43: new java.io.DataOutputStream
dup
aload 9
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 10
start local 10 44: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getPort:()I
istore 11
start local 11 45: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 49
46: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "accepted socket from ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
47: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
48: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
49: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int java.io.InputStream java.io.InputStream java.io.DataInputStream int int java.io.OutputStream java.io.BufferedOutputStream java.io.DataOutputStream int
StackMap stack:
aload 5
invokevirtual java.io.DataInputStream.readByte:()B
istore 15
start local 15 50: iload 15
tableswitch { // 75 - 77
75: 59
76: 51
77: 82
default: 116
}
51: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int java.io.InputStream java.io.InputStream java.io.DataInputStream int int java.io.OutputStream java.io.BufferedOutputStream java.io.DataOutputStream int top top top int
StackMap stack:
new sun.rmi.transport.tcp.TCPEndpoint
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getLocalPort:()I
52: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getClientSocketFactory:()Ljava/rmi/server/RMIClientSocketFactory;
53: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getServerSocketFactory:()Ljava/rmi/server/RMIServerSocketFactory;
54: invokespecial sun.rmi.transport.tcp.TCPEndpoint.<init>:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)V
astore 12
start local 12 55: new sun.rmi.transport.tcp.TCPChannel
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 12
invokespecial sun.rmi.transport.tcp.TCPChannel.<init>:(Lsun/rmi/transport/tcp/TCPTransport;Lsun/rmi/transport/tcp/TCPEndpoint;)V
astore 13
start local 13 56: new sun.rmi.transport.tcp.TCPConnection
dup
aload 13
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
aload 4
aload 9
invokespecial sun.rmi.transport.tcp.TCPConnection.<init>:(Lsun/rmi/transport/tcp/TCPChannel;Ljava/net/Socket;Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 14
start local 14 57: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 14
iconst_0
invokevirtual sun.rmi.transport.tcp.TCPTransport.handleMessages:(Lsun/rmi/transport/Connection;Z)V
58: goto 125
end local 14 end local 13 end local 12 59: StackMap locals:
StackMap stack:
aload 10
bipush 78
invokevirtual java.io.DataOutputStream.writeByte:(I)V
60: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 65
61: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
62: ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "suggesting "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
63: iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
64: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
65: StackMap locals:
StackMap stack:
aload 10
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
66: aload 10
iload 11
invokevirtual java.io.DataOutputStream.writeInt:(I)V
67: aload 10
invokevirtual java.io.DataOutputStream.flush:()V
68: aload 5
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 69: aload 5
invokevirtual java.io.DataInputStream.readInt:()I
istore 17
start local 17 70: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 74
71: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
72: ldc ") client using "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 17
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
73: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
74: StackMap locals: java.lang.String int
StackMap stack:
new sun.rmi.transport.tcp.TCPEndpoint
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getLocalPort:()I
75: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getClientSocketFactory:()Ljava/rmi/server/RMIClientSocketFactory;
76: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getServerSocketFactory:()Ljava/rmi/server/RMIServerSocketFactory;
77: invokespecial sun.rmi.transport.tcp.TCPEndpoint.<init>:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)V
astore 12
start local 12 78: new sun.rmi.transport.tcp.TCPChannel
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 12
invokespecial sun.rmi.transport.tcp.TCPChannel.<init>:(Lsun/rmi/transport/tcp/TCPTransport;Lsun/rmi/transport/tcp/TCPEndpoint;)V
astore 13
start local 13 79: new sun.rmi.transport.tcp.TCPConnection
dup
aload 13
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
aload 4
aload 9
invokespecial sun.rmi.transport.tcp.TCPConnection.<init>:(Lsun/rmi/transport/tcp/TCPChannel;Ljava/net/Socket;Ljava/io/InputStream;Ljava/io/OutputStream;)V
astore 14
start local 14 80: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 14
iconst_1
invokevirtual sun.rmi.transport.tcp.TCPTransport.handleMessages:(Lsun/rmi/transport/Connection;Z)V
81: goto 125
end local 17 end local 16 end local 14 end local 13 end local 12 82: StackMap locals:
StackMap stack:
getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 86
83: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
84: ldc ") accepting multiplex protocol"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
85: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
86: StackMap locals:
StackMap stack:
aload 10
bipush 78
invokevirtual java.io.DataOutputStream.writeByte:(I)V
87: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 91
88: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
89: ldc ") suggesting "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
90: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
91: StackMap locals:
StackMap stack:
aload 10
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
92: aload 10
iload 11
invokevirtual java.io.DataOutputStream.writeInt:(I)V
93: aload 10
invokevirtual java.io.DataOutputStream.flush:()V
94: new sun.rmi.transport.tcp.TCPEndpoint
dup
aload 5
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
aload 5
invokevirtual java.io.DataInputStream.readInt:()I
95: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getClientSocketFactory:()Ljava/rmi/server/RMIClientSocketFactory;
96: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getServerSocketFactory:()Ljava/rmi/server/RMIServerSocketFactory;
97: invokespecial sun.rmi.transport.tcp.TCPEndpoint.<init>:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)V
astore 12
start local 12 98: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 103
99: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
100: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") client using "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
101: aload 12
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getHost:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getPort:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
102: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
103: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int java.io.InputStream java.io.InputStream java.io.DataInputStream int int java.io.OutputStream java.io.BufferedOutputStream java.io.DataOutputStream int sun.rmi.transport.tcp.TCPEndpoint top top int
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
dup
astore 19
monitorenter
104: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 12
invokevirtual sun.rmi.transport.tcp.TCPTransport.getChannel:(Lsun/rmi/transport/Endpoint;)Lsun/rmi/transport/tcp/TCPChannel;
astore 13
start local 13 105: new sun.rmi.transport.tcp.ConnectionMultiplexer
dup
aload 13
aload 4
aload 8
106: iconst_0
107: invokespecial sun.rmi.transport.tcp.ConnectionMultiplexer.<init>:(Lsun/rmi/transport/tcp/TCPChannel;Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
108: astore 18
start local 18 109: aload 13
aload 18
invokevirtual sun.rmi.transport.tcp.TCPChannel.useMultiplexer:(Lsun/rmi/transport/tcp/ConnectionMultiplexer;)V
110: aload 19
monitorexit
111: goto 114
end local 18 end local 13 StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int java.io.InputStream java.io.InputStream java.io.DataInputStream int int java.io.OutputStream java.io.BufferedOutputStream java.io.DataOutputStream int sun.rmi.transport.tcp.TCPEndpoint top top int top top top java.util.Map
StackMap stack: java.lang.Throwable
112: aload 19
monitorexit
113: athrow
start local 13 start local 18 114: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int java.io.InputStream java.io.InputStream java.io.DataInputStream int int java.io.OutputStream java.io.BufferedOutputStream java.io.DataOutputStream int sun.rmi.transport.tcp.TCPEndpoint sun.rmi.transport.tcp.TCPChannel top int top top sun.rmi.transport.tcp.ConnectionMultiplexer
StackMap stack:
aload 18
invokevirtual sun.rmi.transport.tcp.ConnectionMultiplexer.run:()V
115: goto 125
end local 18 end local 13 end local 12 116: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int java.io.InputStream java.io.InputStream java.io.DataInputStream int int java.io.OutputStream java.io.BufferedOutputStream java.io.DataOutputStream int top top top int
StackMap stack:
aload 10
bipush 79
invokevirtual java.io.DataOutputStream.writeByte:(I)V
117: aload 10
invokevirtual java.io.DataOutputStream.flush:()V
end local 15 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 118: goto 125
StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int
StackMap stack: java.io.IOException
119: astore 3
start local 3 120: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
ldc "terminated with exception:"
aload 3
invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 3 121: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
goto 126
122: StackMap locals:
StackMap stack: java.lang.Throwable
astore 20
123: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
124: aload 20
athrow
125: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
126: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 127 0 this Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
1 127 1 endpoint Lsun/rmi/transport/tcp/TCPEndpoint;
2 127 2 port I
11 118 3 sockIn Ljava/io/InputStream;
15 118 4 bufIn Ljava/io/InputStream;
17 118 5 in Ljava/io/DataInputStream;
18 118 6 magic I
31 34 7 e Ljava/io/IOException;
35 118 7 version S
41 118 8 sockOut Ljava/io/OutputStream;
43 118 9 bufOut Ljava/io/BufferedOutputStream;
44 118 10 out Ljava/io/DataOutputStream;
45 118 11 remotePort I
55 59 12 ep Lsun/rmi/transport/tcp/TCPEndpoint;
78 82 12 ep Lsun/rmi/transport/tcp/TCPEndpoint;
98 116 12 ep Lsun/rmi/transport/tcp/TCPEndpoint;
56 59 13 ch Lsun/rmi/transport/tcp/TCPChannel;
79 82 13 ch Lsun/rmi/transport/tcp/TCPChannel;
105 112 13 ch Lsun/rmi/transport/tcp/TCPChannel;
114 116 13 ch Lsun/rmi/transport/tcp/TCPChannel;
57 59 14 conn Lsun/rmi/transport/tcp/TCPConnection;
80 82 14 conn Lsun/rmi/transport/tcp/TCPConnection;
50 118 15 protocol B
69 82 16 clientHost Ljava/lang/String;
70 82 17 clientPort I
109 112 18 multiplexer Lsun/rmi/transport/tcp/ConnectionMultiplexer;
114 116 18 multiplexer Lsun/rmi/transport/tcp/ConnectionMultiplexer;
120 121 3 e Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
6 8 9 Class java.lang.Exception
23 29 30 Class java.io.IOException
104 111 112 any
112 113 112 any
10 38 119 Class java.io.IOException
40 118 119 Class java.io.IOException
10 38 122 any
40 121 122 any
}
SourceFile: "TCPTransport.java"
NestHost: sun.rmi.transport.tcp.TCPTransport
InnerClasses:
private ConnectionHandler = sun.rmi.transport.tcp.TCPTransport$ConnectionHandler of sun.rmi.transport.tcp.TCPTransport
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1