public class sun.rmi.transport.tcp.TCPTransport extends sun.rmi.transport.Transport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.rmi.transport.tcp.TCPTransport
super_class: sun.rmi.transport.Transport
{
static final sun.rmi.runtime.Log tcpLog;
descriptor: Lsun/rmi/runtime/Log;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int maxConnectionThreads;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long threadKeepAliveTime;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.ExecutorService connectionThreadPool;
descriptor: Ljava/util/concurrent/ExecutorService;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean disableIncomingHttp;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicInteger connectionCount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ThreadLocal<sun.rmi.transport.tcp.TCPTransport$ConnectionHandler> threadConnectionHandler;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;>;
private static final java.security.AccessControlContext NOPERMS_ACC;
descriptor: Ljava/security/AccessControlContext;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.LinkedList<sun.rmi.transport.tcp.TCPEndpoint> epList;
descriptor: Ljava/util/LinkedList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/LinkedList<Lsun/rmi/transport/tcp/TCPEndpoint;>;
private int exportCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.net.ServerSocket server;
descriptor: Ljava/net/ServerSocket;
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<sun.rmi.transport.tcp.TCPEndpoint, java.lang.ref.Reference<sun.rmi.transport.tcp.TCPChannel>> channelTable;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lsun/rmi/transport/tcp/TCPEndpoint;Ljava/lang/ref/Reference<Lsun/rmi/transport/tcp/TCPChannel;>;>;
static final java.rmi.server.RMISocketFactory defaultSocketFactory;
descriptor: Ljava/rmi/server/RMISocketFactory;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int connectionReadTimeout;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=2, args_size=0
0: ldc Lsun/rmi/transport/tcp/TCPTransport;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.rmi.transport.tcp.TCPTransport.$assertionsDisabled:Z
3: ldc "sun.rmi.transport.tcp"
ldc "tcp"
4: new sun.security.action.GetPropertyAction
dup
ldc "sun.rmi.transport.tcp.logLevel"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.rmi.server.LogStream.parseLevel:(Ljava/lang/String;)I
6: invokestatic sun.rmi.runtime.Log.getLog:(Ljava/lang/String;Ljava/lang/String;I)Lsun/rmi/runtime/Log;
putstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
7: new sun.security.action.GetIntegerAction
dup
ldc "sun.rmi.transport.tcp.maxConnectionThreads"
8: ldc 2147483647
9: invokespecial sun.security.action.GetIntegerAction.<init>:(Ljava/lang/String;I)V
10: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
11: putstatic sun.rmi.transport.tcp.TCPTransport.maxConnectionThreads:I
12: new sun.security.action.GetLongAction
dup
ldc "sun.rmi.transport.tcp.threadKeepAliveTime"
13: ldc 60000
14: invokespecial sun.security.action.GetLongAction.<init>:(Ljava/lang/String;J)V
15: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
16: putstatic sun.rmi.transport.tcp.TCPTransport.threadKeepAliveTime:J
17: new java.util.concurrent.ThreadPoolExecutor
dup
iconst_0
getstatic sun.rmi.transport.tcp.TCPTransport.maxConnectionThreads:I
18: getstatic sun.rmi.transport.tcp.TCPTransport.threadKeepAliveTime:J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
19: new java.util.concurrent.SynchronousQueue
dup
invokespecial java.util.concurrent.SynchronousQueue.<init>:()V
20: new sun.rmi.transport.tcp.TCPTransport$1
dup
invokespecial sun.rmi.transport.tcp.TCPTransport$1.<init>:()V
21: invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
22: putstatic sun.rmi.transport.tcp.TCPTransport.connectionThreadPool:Ljava/util/concurrent/ExecutorService;
23: new sun.security.action.GetPropertyAction
dup
ldc "sun.rmi.server.disableIncomingHttp"
ldc "true"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
24: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
25: ldc "true"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
26: putstatic sun.rmi.transport.tcp.TCPTransport.disableIncomingHttp:Z
27: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putstatic sun.rmi.transport.tcp.TCPTransport.connectionCount:Ljava/util/concurrent/atomic/AtomicInteger;
28: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic sun.rmi.transport.tcp.TCPTransport.threadConnectionHandler:Ljava/lang/ThreadLocal;
29: new java.security.Permissions
dup
invokespecial java.security.Permissions.<init>:()V
astore 0
start local 0 30: iconst_1
anewarray java.security.ProtectionDomain
dup
iconst_0
new java.security.ProtectionDomain
dup
aconst_null
aload 0
invokespecial java.security.ProtectionDomain.<init>:(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
aastore
astore 1
start local 1 31: new java.security.AccessControlContext
dup
aload 1
invokespecial java.security.AccessControlContext.<init>:([Ljava/security/ProtectionDomain;)V
putstatic sun.rmi.transport.tcp.TCPTransport.NOPERMS_ACC:Ljava/security/AccessControlContext;
end local 1 end local 0 32: invokestatic java.rmi.server.RMISocketFactory.getDefaultSocketFactory:()Ljava/rmi/server/RMISocketFactory;
33: putstatic sun.rmi.transport.tcp.TCPTransport.defaultSocketFactory:Ljava/rmi/server/RMISocketFactory;
34: new sun.security.action.GetIntegerAction
dup
ldc "sun.rmi.transport.tcp.readTimeout"
35: ldc 7200000
36: invokespecial sun.security.action.GetIntegerAction.<init>:(Ljava/lang/String;I)V
37: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
38: putstatic sun.rmi.transport.tcp.TCPTransport.connectionReadTimeout:I
39: return
LocalVariableTable:
Start End Slot Name Signature
30 32 0 perms Ljava/security/Permissions;
31 32 1 pd [Ljava/security/ProtectionDomain;
void <init>(java.util.LinkedList<sun.rmi.transport.tcp.TCPEndpoint>);
descriptor: (Ljava/util/LinkedList;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial sun.rmi.transport.Transport.<init>:()V
1: aload 0
iconst_0
putfield sun.rmi.transport.tcp.TCPTransport.exportCount:I
2: aload 0
aconst_null
putfield sun.rmi.transport.tcp.TCPTransport.server:Ljava/net/ServerSocket;
3: aload 0
4: new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
5: aload 0
aload 1
putfield sun.rmi.transport.tcp.TCPTransport.epList:Ljava/util/LinkedList;
6: 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 10
7: 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 "Version = 2, ep = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.getEndpoint:()Lsun/rmi/transport/tcp/TCPEndpoint;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
10: StackMap locals: sun.rmi.transport.tcp.TCPTransport java.util.LinkedList
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/rmi/transport/tcp/TCPTransport;
0 11 1 epList Ljava/util/LinkedList<Lsun/rmi/transport/tcp/TCPEndpoint;>;
Signature: (Ljava/util/LinkedList<Lsun/rmi/transport/tcp/TCPEndpoint;>;)V
MethodParameters:
Name Flags
epList
public void shedConnectionCaches();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
dup
astore 2
monitorenter
1: new java.util.ArrayList
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 1
start local 1 2: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: sun.rmi.transport.tcp.TCPTransport java.util.List java.util.Map top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.Reference
astore 3
start local 3 4: aload 3
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPChannel
astore 5
start local 5 5: aload 5
ifnull 7
6: aload 1
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 2
monitorexit
9: goto 12
end local 1 StackMap locals: sun.rmi.transport.tcp.TCPTransport top java.util.Map
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
start local 1 12: StackMap locals: sun.rmi.transport.tcp.TCPTransport java.util.List
StackMap stack:
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 15
StackMap locals: sun.rmi.transport.tcp.TCPTransport java.util.List top java.util.Iterator
StackMap stack:
13: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPChannel
astore 2
start local 2 14: aload 2
invokevirtual sun.rmi.transport.tcp.TCPChannel.shedCache:()V
end local 2 15: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 13
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/rmi/transport/tcp/TCPTransport;
2 10 1 channels Ljava/util/List<Lsun/rmi/transport/tcp/TCPChannel;>;
12 17 1 channels Ljava/util/List<Lsun/rmi/transport/tcp/TCPChannel;>;
4 7 3 ref Ljava/lang/ref/Reference<Lsun/rmi/transport/tcp/TCPChannel;>;
5 7 5 ch Lsun/rmi/transport/tcp/TCPChannel;
14 15 2 channel Lsun/rmi/transport/tcp/TCPChannel;
Exception table:
from to target type
1 9 10 any
10 11 10 any
public sun.rmi.transport.tcp.TCPChannel getChannel(sun.rmi.transport.Endpoint);
descriptor: (Lsun/rmi/transport/Endpoint;)Lsun/rmi/transport/tcp/TCPChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
instanceof sun.rmi.transport.tcp.TCPEndpoint
ifeq 16
2: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
dup
astore 3
monitorenter
3: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.ref.Reference
astore 4
start local 4 4: aload 4
ifnull 6
5: aload 4
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPChannel
astore 2
6: StackMap locals: sun.rmi.transport.tcp.TCPChannel java.util.Map java.lang.ref.Reference
StackMap stack:
aload 2
ifnonnull 12
7: aload 1
checkcast sun.rmi.transport.tcp.TCPEndpoint
astore 5
start local 5 8: new sun.rmi.transport.tcp.TCPChannel
dup
aload 0
aload 5
invokespecial sun.rmi.transport.tcp.TCPChannel.<init>:(Lsun/rmi/transport/tcp/TCPTransport;Lsun/rmi/transport/tcp/TCPEndpoint;)V
astore 2
9: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
aload 5
10: new java.lang.ref.WeakReference
dup
aload 2
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
11: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 12: StackMap locals:
StackMap stack:
aload 3
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/rmi/transport/tcp/TCPTransport;
0 17 1 ep Lsun/rmi/transport/Endpoint;
1 17 2 ch Lsun/rmi/transport/tcp/TCPChannel;
4 12 4 ref Ljava/lang/ref/Reference<Lsun/rmi/transport/tcp/TCPChannel;>;
8 12 5 tcpEndpoint Lsun/rmi/transport/tcp/TCPEndpoint;
Exception table:
from to target type
3 13 14 any
14 15 14 any
MethodParameters:
Name Flags
ep
public void free(sun.rmi.transport.Endpoint);
descriptor: (Lsun/rmi/transport/Endpoint;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
instanceof sun.rmi.transport.tcp.TCPEndpoint
ifeq 11
1: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
dup
astore 2
monitorenter
2: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.channelTable:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.ref.Reference
astore 3
start local 3 3: aload 3
ifnull 7
4: aload 3
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPChannel
astore 4
start local 4 5: aload 4
ifnull 7
6: aload 4
invokevirtual sun.rmi.transport.tcp.TCPChannel.shedCache:()V
end local 4 end local 3 7: StackMap locals: java.util.Map
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/rmi/transport/tcp/TCPTransport;
0 12 1 ep Lsun/rmi/transport/Endpoint;
3 7 3 ref Ljava/lang/ref/Reference<Lsun/rmi/transport/tcp/TCPChannel;>;
5 7 4 channel Lsun/rmi/transport/tcp/TCPChannel;
Exception table:
from to target type
2 8 9 any
9 10 9 any
MethodParameters:
Name Flags
ep
public void exportObject(sun.rmi.transport.Target);
descriptor: (Lsun/rmi/transport/Target;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.listen:()V
2: aload 0
dup
getfield sun.rmi.transport.tcp.TCPTransport.exportCount:I
iconst_1
iadd
putfield sun.rmi.transport.tcp.TCPTransport.exportCount:I
3: aload 2
monitorexit
4: goto 7
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Target sun.rmi.transport.tcp.TCPTransport
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 8: aload 0
aload 1
invokespecial sun.rmi.transport.Transport.exportObject:(Lsun/rmi/transport/Target;)V
9: iconst_1
istore 2
10: goto 20
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Target int
StackMap stack: java.lang.Throwable
11: astore 3
12: iload 2
ifne 19
13: aload 0
dup
astore 4
monitorenter
14: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.decrementExportCount:()V
15: aload 4
monitorexit
16: goto 19
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Target int java.lang.Throwable sun.rmi.transport.tcp.TCPTransport
StackMap stack: java.lang.Throwable
17: aload 4
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
aload 3
athrow
20: StackMap locals:
StackMap stack:
iload 2
ifne 27
21: aload 0
dup
astore 4
monitorenter
22: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.decrementExportCount:()V
23: aload 4
monitorexit
24: goto 27
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Target int top sun.rmi.transport.tcp.TCPTransport
StackMap stack: java.lang.Throwable
25: aload 4
monitorexit
26: athrow
27: StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Target int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/rmi/transport/tcp/TCPTransport;
0 28 1 target Lsun/rmi/transport/Target;
8 28 2 ok Z
Exception table:
from to target type
1 4 5 any
5 6 5 any
8 11 11 any
14 16 17 any
17 18 17 any
22 24 25 any
25 26 25 any
Exceptions:
throws java.rmi.RemoteException
MethodParameters:
Name Flags
target
protected synchronized void targetUnexported();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.decrementExportCount:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/rmi/transport/tcp/TCPTransport;
private void decrementExportCount();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic sun.rmi.transport.tcp.TCPTransport.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.rmi.transport.tcp.TCPTransport.exportCount:I
iconst_1
isub
putfield sun.rmi.transport.tcp.TCPTransport.exportCount:I
2: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.exportCount:I
ifne 8
aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.getEndpoint:()Lsun/rmi/transport/tcp/TCPEndpoint;
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getListenPort:()I
ifeq 8
3: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.server:Ljava/net/ServerSocket;
astore 1
start local 1 4: aload 0
aconst_null
putfield sun.rmi.transport.tcp.TCPTransport.server:Ljava/net/ServerSocket;
5: aload 1
invokevirtual java.net.ServerSocket.close:()V
6: goto 8
StackMap locals: sun.rmi.transport.tcp.TCPTransport java.net.ServerSocket
StackMap stack: java.io.IOException
7: pop
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/rmi/transport/tcp/TCPTransport;
4 8 1 ss Ljava/net/ServerSocket;
Exception table:
from to target type
5 6 7 Class java.io.IOException
protected void checkAcceptPermission(java.security.AccessControlContext);
descriptor: (Ljava/security/AccessControlContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
getstatic sun.rmi.transport.tcp.TCPTransport.threadConnectionHandler:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
astore 3
start local 3 4: aload 3
ifnonnull 8
5: new java.lang.Error
dup
6: ldc "checkAcceptPermission not in ConnectionHandler thread"
7: invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
StackMap stack:
aload 3
aload 2
aload 1
invokevirtual sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.checkAcceptPermission:(Ljava/lang/SecurityManager;Ljava/security/AccessControlContext;)V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/rmi/transport/tcp/TCPTransport;
0 10 1 acc Ljava/security/AccessControlContext;
1 10 2 sm Ljava/lang/SecurityManager;
4 10 3 h Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
MethodParameters:
Name Flags
acc
private sun.rmi.transport.tcp.TCPEndpoint getEndpoint();
descriptor: ()Lsun/rmi/transport/tcp/TCPEndpoint;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.epList:Ljava/util/LinkedList;
dup
astore 1
monitorenter
1: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.epList:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPEndpoint
aload 1
monitorexit
2: areturn
3: StackMap locals: sun.rmi.transport.tcp.TCPTransport java.util.LinkedList
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/rmi/transport/tcp/TCPTransport;
Exception table:
from to target type
1 2 3 any
3 4 3 any
private void listen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=1
start local 0 0: getstatic sun.rmi.transport.tcp.TCPTransport.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.getEndpoint:()Lsun/rmi/transport/tcp/TCPEndpoint;
astore 1
start local 1 2: aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getPort:()I
istore 2
start local 2 3: aload 0
getfield sun.rmi.transport.tcp.TCPTransport.server:Ljava/net/ServerSocket;
ifnonnull 19
4: 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 8
5: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
6: 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;
ldc ") create server socket"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
8: StackMap locals: sun.rmi.transport.tcp.TCPEndpoint int
StackMap stack:
aload 0
aload 1
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.newServerSocket:()Ljava/net/ServerSocket;
putfield sun.rmi.transport.tcp.TCPTransport.server:Ljava/net/ServerSocket;
9: new sun.rmi.runtime.NewThreadAction
dup
new sun.rmi.transport.tcp.TCPTransport$AcceptLoop
dup
aload 0
aload 0
getfield sun.rmi.transport.tcp.TCPTransport.server:Ljava/net/ServerSocket;
invokespecial sun.rmi.transport.tcp.TCPTransport$AcceptLoop.<init>:(Lsun/rmi/transport/tcp/TCPTransport;Ljava/net/ServerSocket;)V
10: new java.lang.StringBuilder
dup
ldc "TCP Accept-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
11: invokespecial sun.rmi.runtime.NewThreadAction.<init>:(Ljava/lang/Runnable;Ljava/lang/String;Z)V
12: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Thread
astore 3
start local 3 13: aload 3
invokevirtual java.lang.Thread.start:()V
end local 3 14: goto 22
StackMap locals:
StackMap stack: java.net.BindException
15: astore 3
start local 3 16: new java.rmi.server.ExportException
dup
new java.lang.StringBuilder
dup
ldc "Port already in use: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial java.rmi.server.ExportException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 3 17: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 18: new java.rmi.server.ExportException
dup
new java.lang.StringBuilder
dup
ldc "Listen failed on port: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial java.rmi.server.ExportException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 3 19: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 20: aload 3
ifnull 22
21: aload 3
iload 2
invokevirtual java.lang.SecurityManager.checkListen:(I)V
end local 3 22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/rmi/transport/tcp/TCPTransport;
2 23 1 ep Lsun/rmi/transport/tcp/TCPEndpoint;
3 23 2 port I
13 14 3 t Ljava/lang/Thread;
16 17 3 e Ljava/net/BindException;
18 19 3 e Ljava/io/IOException;
20 22 3 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
8 14 15 Class java.net.BindException
8 14 17 Class java.io.IOException
Exceptions:
throws java.rmi.RemoteException
private static void closeSocket(java.net.Socket);
descriptor: (Ljava/net/Socket;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.Socket.close:()V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 sock Ljava/net/Socket;
Exception table:
from to target type
0 1 2 Class java.io.IOException
MethodParameters:
Name Flags
sock
void handleMessages(sun.rmi.transport.Connection, boolean);
descriptor: (Lsun/rmi/transport/Connection;Z)V
flags: (0x0000)
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport.getEndpoint:()Lsun/rmi/transport/tcp/TCPEndpoint;
invokevirtual sun.rmi.transport.tcp.TCPEndpoint.getPort:()I
istore 3
start local 3 1: new java.io.DataInputStream
dup
aload 1
invokeinterface sun.rmi.transport.Connection.getInputStream:()Ljava/io/InputStream;
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 2: StackMap locals: int java.io.DataInputStream
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.read:()I
istore 5
start local 5 3: iload 5
iconst_m1
if_icmpne 9
4: 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 43
5: 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 "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") connection closed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
8: goto 43
9: StackMap locals: int
StackMap stack:
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 13
10: 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 "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: ldc ") op = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
iload 5
tableswitch { // 80 - 84
80: 14
81: 27
82: 20
83: 27
84: 25
default: 27
}
14: StackMap locals:
StackMap stack:
new sun.rmi.transport.StreamRemoteCall
dup
aload 1
invokespecial sun.rmi.transport.StreamRemoteCall.<init>:(Lsun/rmi/transport/Connection;)V
astore 6
start local 6 15: aload 0
aload 6
invokevirtual sun.rmi.transport.tcp.TCPTransport.serviceCall:(Ljava/rmi/server/RemoteCall;)Z
ifne 28
16: aload 1
invokeinterface sun.rmi.transport.Connection.close:()V
17: goto 19
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Connection int int java.io.DataInputStream int java.rmi.server.RemoteCall
StackMap stack: java.io.IOException
18: pop
19: StackMap locals:
StackMap stack:
return
end local 6 20: StackMap locals:
StackMap stack:
new java.io.DataOutputStream
dup
aload 1
invokeinterface sun.rmi.transport.Connection.getOutputStream:()Ljava/io/OutputStream;
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
21: astore 7
start local 7 22: aload 7
bipush 83
invokevirtual java.io.DataOutputStream.writeByte:(I)V
23: aload 1
invokeinterface sun.rmi.transport.Connection.releaseOutputStream:()V
24: goto 28
end local 7 25: StackMap locals:
StackMap stack:
aload 4
invokestatic java.rmi.server.UID.read:(Ljava/io/DataInput;)Ljava/rmi/server/UID;
invokestatic sun.rmi.transport.DGCAckHandler.received:(Ljava/rmi/server/UID;)V
26: goto 28
27: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "unknown transport op "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 5 28: StackMap locals:
StackMap stack:
iload 2
ifne 2
end local 4 29: goto 43
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Connection int int
StackMap stack: java.io.IOException
30: astore 4
start local 4 31: 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 35
32: 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 "(port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
33: ldc ") exception: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
34: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 35: StackMap locals:
StackMap stack:
aload 1
invokeinterface sun.rmi.transport.Connection.close:()V
36: goto 46
StackMap locals:
StackMap stack: java.io.IOException
37: pop
goto 46
38: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
39: aload 1
invokeinterface sun.rmi.transport.Connection.close:()V
40: goto 42
StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Connection int int top top top top java.lang.Throwable
StackMap stack: java.io.IOException
41: pop
42: StackMap locals:
StackMap stack:
aload 8
athrow
43: StackMap locals: sun.rmi.transport.tcp.TCPTransport sun.rmi.transport.Connection int int
StackMap stack:
aload 1
invokeinterface sun.rmi.transport.Connection.close:()V
44: goto 46
StackMap locals:
StackMap stack: java.io.IOException
45: pop
46: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lsun/rmi/transport/tcp/TCPTransport;
0 47 1 conn Lsun/rmi/transport/Connection;
0 47 2 persistent Z
1 47 3 port I
2 29 4 in Ljava/io/DataInputStream;
3 28 5 op I
15 20 6 call Ljava/rmi/server/RemoteCall;
22 25 7 out Ljava/io/DataOutputStream;
31 35 4 e Ljava/io/IOException;
Exception table:
from to target type
16 17 18 Class java.io.IOException
1 16 30 Class java.io.IOException
20 29 30 Class java.io.IOException
35 36 37 Class java.io.IOException
1 16 38 any
20 35 38 any
39 40 41 Class java.io.IOException
43 44 45 Class java.io.IOException
MethodParameters:
Name Flags
conn
persistent
public static java.lang.String getClientHost();
descriptor: ()Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.rmi.transport.tcp.TCPTransport.threadConnectionHandler:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.getClientHost:()Ljava/lang/String;
areturn
3: StackMap locals: sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
StackMap stack:
new java.rmi.server.ServerNotActiveException
dup
ldc "not in a remote call"
invokespecial java.rmi.server.ServerNotActiveException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 h Lsun/rmi/transport/tcp/TCPTransport$ConnectionHandler;
Exceptions:
throws java.rmi.server.ServerNotActiveException
public sun.rmi.transport.Channel getChannel(sun.rmi.transport.Endpoint);
descriptor: (Lsun/rmi/transport/Endpoint;)Lsun/rmi/transport/Channel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual sun.rmi.transport.tcp.TCPTransport.getChannel:(Lsun/rmi/transport/Endpoint;)Lsun/rmi/transport/tcp/TCPChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "TCPTransport.java"
NestMembers:
sun.rmi.transport.tcp.TCPTransport$1 sun.rmi.transport.tcp.TCPTransport$AcceptLoop sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
InnerClasses:
sun.rmi.transport.tcp.TCPTransport$1
private AcceptLoop = sun.rmi.transport.tcp.TCPTransport$AcceptLoop of sun.rmi.transport.tcp.TCPTransport
private ConnectionHandler = sun.rmi.transport.tcp.TCPTransport$ConnectionHandler of sun.rmi.transport.tcp.TCPTransport