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 35
19: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "DISABLED: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic sun.rmi.transport.tcp.TCPTransport.disableIncomingHttp:Z
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: getstatic sun.rmi.transport.tcp.TCPTransport.disableIncomingHttp:Z
ifeq 22
21: new java.rmi.RemoteException
dup
ldc "RMI over HTTP is disabled"
invokespecial java.rmi.RemoteException.<init>:(Ljava/lang/String;)V
athrow
22: 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
23: aload 4
invokevirtual java.io.InputStream.reset:()V
24: 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;
25: aload 0
ldc "0.0.0.0"
putfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.remoteHost:Ljava/lang/String;
26: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
astore 3
27: new java.io.BufferedInputStream
dup
aload 3
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
28: new java.io.DataInputStream
dup
aload 4
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
29: aload 5
invokevirtual java.io.DataInputStream.readInt:()I
istore 6
30: goto 35
StackMap locals:
StackMap stack: java.io.IOException
31: astore 7
start local 7 32: new java.rmi.RemoteException
dup
ldc "Error HTTP-unwrapping call"
33: aload 7
34: invokespecial java.rmi.RemoteException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 35: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.DataInputStream.readShort:()S
istore 7
start local 7 36: iload 6
ldc 1246907721
if_icmpne 38
37: iload 7
iconst_2
if_icmpeq 41
38: 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
39: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
40: return
41: 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 42: new java.io.BufferedOutputStream
dup
aload 8
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
43: astore 9
start local 9 44: new java.io.DataOutputStream
dup
aload 9
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 10
start local 10 45: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.getPort:()I
istore 11
start local 11 46: 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 50
47: 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
48: 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;
49: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
50: 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 51: iload 15
tableswitch { // 75 - 77
75: 60
76: 52
77: 83
default: 117
}
52: 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
53: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getClientSocketFactory:()Ljava/rmi/server/RMIClientSocketFactory;
54: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getServerSocketFactory:()Ljava/rmi/server/RMIServerSocketFactory;
55: invokespecial sun.rmi.transport.tcp.TCPEndpoint.<init>:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)V
astore 12
start local 12 56: 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 57: 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 58: 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
59: goto 126
end local 14 end local 13 end local 12 60: StackMap locals:
StackMap stack:
aload 10
bipush 78
invokevirtual java.io.DataOutputStream.writeByte:(I)V
61: 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 66
62: 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;
63: 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;
64: iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
65: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
66: 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
67: aload 10
iload 11
invokevirtual java.io.DataOutputStream.writeInt:(I)V
68: aload 10
invokevirtual java.io.DataOutputStream.flush:()V
69: aload 5
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 70: aload 5
invokevirtual java.io.DataInputStream.readInt:()I
istore 17
start local 17 71: 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 75
72: 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;
73: 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;
74: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
75: 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
76: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getClientSocketFactory:()Ljava/rmi/server/RMIClientSocketFactory;
77: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getServerSocketFactory:()Ljava/rmi/server/RMIServerSocketFactory;
78: invokespecial sun.rmi.transport.tcp.TCPEndpoint.<init>:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)V
astore 12
start local 12 79: 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 80: 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 81: 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
82: goto 126
end local 17 end local 16 end local 14 end local 13 end local 12 83: 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 87
84: 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;
85: ldc ") accepting multiplex protocol"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
86: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
87: StackMap locals:
StackMap stack:
aload 10
bipush 78
invokevirtual java.io.DataOutputStream.writeByte:(I)V
88: 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 92
89: 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;
90: 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;
91: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
92: 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
93: aload 10
iload 11
invokevirtual java.io.DataOutputStream.writeInt:(I)V
94: aload 10
invokevirtual java.io.DataOutputStream.flush:()V
95: 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
96: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getClientSocketFactory:()Ljava/rmi/server/RMIClientSocketFactory;
97: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getServerSocketFactory:()Ljava/rmi/server/RMIServerSocketFactory;
98: invokespecial sun.rmi.transport.tcp.TCPEndpoint.<init>:(Ljava/lang/String;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;)V
astore 12
start local 12 99: 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 104
100: 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
101: 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;
102: 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;
103: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
104: 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
105: 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 106: new sun.rmi.transport.tcp.ConnectionMultiplexer
dup
aload 13
aload 4
aload 8
107: iconst_0
108: invokespecial sun.rmi.transport.tcp.ConnectionMultiplexer.<init>:(Lsun/rmi/transport/tcp/TCPChannel;Ljava/io/InputStream;Ljava/io/OutputStream;Z)V
109: astore 18
start local 18 110: aload 13
aload 18
invokevirtual sun.rmi.transport.tcp.TCPChannel.useMultiplexer:(Lsun/rmi/transport/tcp/ConnectionMultiplexer;)V
111: aload 19
monitorexit
112: goto 115
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
113: aload 19
monitorexit
114: athrow
start local 13 start local 18 115: 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
116: goto 126
end local 18 end local 13 end local 12 117: 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
118: 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 119: goto 126
StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler sun.rmi.transport.tcp.TCPEndpoint int
StackMap stack: java.io.IOException
120: astore 3
start local 3 121: 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 122: 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 127
123: StackMap locals:
StackMap stack: java.lang.Throwable
astore 20
124: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.socket:Ljava/net/Socket;
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
125: aload 20
athrow
126: 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
127: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 128 0 this Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
1 128 1 endpoint Lsun/rmi/transport/tcp/TCPEndpoint;
2 128 2 port I
11 119 3 sockIn Ljava/io/InputStream;
15 119 4 bufIn Ljava/io/InputStream;
17 119 5 in Ljava/io/DataInputStream;
18 119 6 magic I
32 35 7 e Ljava/io/IOException;
36 119 7 version S
42 119 8 sockOut Ljava/io/OutputStream;
44 119 9 bufOut Ljava/io/BufferedOutputStream;
45 119 10 out Ljava/io/DataOutputStream;
46 119 11 remotePort I
56 60 12 ep Lsun/rmi/transport/tcp/TCPEndpoint;
79 83 12 ep Lsun/rmi/transport/tcp/TCPEndpoint;
99 117 12 ep Lsun/rmi/transport/tcp/TCPEndpoint;
57 60 13 ch Lsun/rmi/transport/tcp/TCPChannel;
80 83 13 ch Lsun/rmi/transport/tcp/TCPChannel;
106 113 13 ch Lsun/rmi/transport/tcp/TCPChannel;
115 117 13 ch Lsun/rmi/transport/tcp/TCPChannel;
58 60 14 conn Lsun/rmi/transport/tcp/TCPConnection;
81 83 14 conn Lsun/rmi/transport/tcp/TCPConnection;
51 119 15 protocol B
70 83 16 clientHost Ljava/lang/String;
71 83 17 clientPort I
110 113 18 multiplexer Lsun/rmi/transport/tcp/ConnectionMultiplexer;
115 117 18 multiplexer Lsun/rmi/transport/tcp/ConnectionMultiplexer;
121 122 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
24 30 31 Class java.io.IOException
105 112 113 any
113 114 113 any
10 39 120 Class java.io.IOException
41 119 120 Class java.io.IOException
10 39 123 any
41 122 123 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