class sun.rmi.transport.tcp.TCPTransport$AcceptLoop implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.rmi.transport.tcp.TCPTransport$AcceptLoop
super_class: java.lang.Object
{
private final java.net.ServerSocket serverSocket;
descriptor: Ljava/net/ServerSocket;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long lastExceptionTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private int recentExceptionCount;
descriptor: I
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.ServerSocket);
descriptor: (Lsun/rmi/transport/tcp/TCPTransport;Ljava/net/ServerSocket;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
lconst_0
putfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.lastExceptionTime:J
2: aload 0
aload 2
putfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/rmi/transport/tcp/TCPTransport$AcceptLoop;
0 4 2 serverSocket Ljava/net/ServerSocket;
MethodParameters:
Name Flags
this$0 final
serverSocket
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop:()V
1: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: 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 7
4: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
5: new java.lang.StringBuilder
dup
ldc "server socket close: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
7: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.close:()V
8: goto 14
StackMap locals:
StackMap stack: java.io.IOException
9: astore 2
start local 2 10: 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 14
11: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
12: new java.lang.StringBuilder
dup
ldc "server socket close throws: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 2 14: StackMap locals:
StackMap stack:
aload 1
athrow
15: StackMap locals:
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 19
16: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
17: new java.lang.StringBuilder
dup
ldc "server socket close: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.close:()V
20: goto 26
StackMap locals:
StackMap stack: java.io.IOException
21: astore 2
start local 2 22: 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 26
23: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
24: new java.lang.StringBuilder
dup
ldc "server socket close throws: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 2 26: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/rmi/transport/tcp/TCPTransport$AcceptLoop;
10 14 2 e Ljava/io/IOException;
22 26 2 e Ljava/io/IOException;
Exception table:
from to target type
0 2 2 any
3 8 9 Class java.io.IOException
15 20 21 Class java.io.IOException
private void executeAcceptLoop();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=1
start local 0 0: 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 4
1: 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 "listening on port "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.this$0:Lsun/rmi/transport/tcp/TCPTransport;
invokevirtual sun.rmi.transport.tcp.TCPTransport.getEndpoint:()Lsun/rmi/transport/tcp/TCPEndpoint;
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;
3: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 5: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.accept:()Ljava/net/Socket;
astore 1
6: aload 1
invokevirtual java.net.Socket.getInetAddress:()Ljava/net/InetAddress;
astore 2
start local 2 7: aload 2
ifnull 9
8: aload 2
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
goto 10
9: StackMap locals: java.net.Socket java.net.InetAddress
StackMap stack:
ldc "0.0.0.0"
10: StackMap locals:
StackMap stack: java.lang.String
astore 3
start local 3 11: getstatic sun.rmi.transport.tcp.TCPTransport.connectionThreadPool:Ljava/util/concurrent/ExecutorService;
12: new sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
dup
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.this$0:Lsun/rmi/transport/tcp/TCPTransport;
aload 1
aload 3
invokespecial sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.<init>:(Lsun/rmi/transport/tcp/TCPTransport;Ljava/net/Socket;Ljava/lang/String;)V
13: invokeinterface java.util.concurrent.ExecutorService.execute:(Ljava/lang/Runnable;)V
14: goto 4
StackMap locals: sun.rmi.transport.tcp.TCPTransport$AcceptLoop java.net.Socket java.net.InetAddress java.lang.String
StackMap stack: java.util.concurrent.RejectedExecutionException
15: pop
16: aload 1
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
17: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
18: new java.lang.StringBuilder
dup
ldc "rejected connection from "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 3 end local 2 20: goto 4
StackMap locals: sun.rmi.transport.tcp.TCPTransport$AcceptLoop java.net.Socket
StackMap stack: java.lang.Throwable
21: astore 2
start local 2 22: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 26
23: aload 1
ifnull 54
24: aload 1
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
25: goto 54
26: StackMap locals: java.lang.Throwable
StackMap stack:
getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 40
27: getstatic sun.rmi.transport.tcp.TCPTransport.tcpLog:Lsun/rmi/runtime/Log;
getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
28: new java.lang.StringBuilder
dup
ldc "accept loop for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.serverSocket:Ljava/net/ServerSocket;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
29: ldc " throws"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
30: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: aload 2
32: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
33: goto 40
StackMap locals:
StackMap stack: java.lang.Throwable
34: pop
35: goto 40
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 3
37: aload 1
ifnull 39
38: aload 1
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
39: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
athrow
40: StackMap locals:
StackMap stack:
aload 1
ifnull 42
41: aload 1
invokestatic sun.rmi.transport.tcp.TCPTransport.closeSocket:(Ljava/net/Socket;)V
42: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.SecurityException
ifne 46
43: invokestatic sun.rmi.transport.tcp.TCPEndpoint.shedConnectionCaches:()V
44: goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
45: pop
46: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.Exception
ifne 49
47: aload 2
instanceof java.lang.OutOfMemoryError
ifne 49
48: aload 2
instanceof java.lang.NoClassDefFoundError
ifeq 51
49: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.rmi.transport.tcp.TCPTransport$AcceptLoop.continueAfterAcceptFailure:(Ljava/lang/Throwable;)Z
ifne 4
50: return
51: StackMap locals:
StackMap stack:
aload 2
instanceof java.lang.Error
ifeq 53
52: aload 2
checkcast java.lang.Error
athrow
53: StackMap locals:
StackMap stack:
new java.lang.reflect.UndeclaredThrowableException
dup
aload 2
invokespecial java.lang.reflect.UndeclaredThrowableException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 54: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lsun/rmi/transport/tcp/TCPTransport$AcceptLoop;
5 54 1 socket Ljava/net/Socket;
7 20 2 clientAddr Ljava/net/InetAddress;
11 20 3 clientHost Ljava/lang/String;
22 54 2 t Ljava/lang/Throwable;
Exception table:
from to target type
11 14 15 Class java.util.concurrent.RejectedExecutionException
5 20 21 Class java.lang.Throwable
26 33 34 Class java.lang.Throwable
22 23 36 any
26 36 36 any
43 44 45 Class java.lang.Throwable
private boolean continueAfterAcceptFailure(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: invokestatic java.rmi.server.RMISocketFactory.getFailureHandler:()Ljava/rmi/server/RMIFailureHandler;
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
aload 1
instanceof java.lang.Exception
ifeq 3
aload 1
checkcast java.lang.Exception
goto 4
3: StackMap locals: sun.rmi.transport.tcp.TCPTransport$AcceptLoop java.lang.Throwable java.rmi.server.RMIFailureHandler
StackMap stack: java.rmi.server.RMIFailureHandler
new java.lang.reflect.InvocationTargetException
dup
aload 1
invokespecial java.lang.reflect.InvocationTargetException.<init>:(Ljava/lang/Throwable;)V
4: StackMap locals: sun.rmi.transport.tcp.TCPTransport$AcceptLoop java.lang.Throwable java.rmi.server.RMIFailureHandler
StackMap stack: java.rmi.server.RMIFailureHandler java.lang.Exception
invokeinterface java.rmi.server.RMIFailureHandler.failure:(Ljava/lang/Exception;)Z
ireturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.rmi.transport.tcp.TCPTransport$AcceptLoop.throttleLoopOnException:()V
6: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/rmi/transport/tcp/TCPTransport$AcceptLoop;
0 7 1 t Ljava/lang/Throwable;
1 7 2 fh Ljava/rmi/server/RMIFailureHandler;
MethodParameters:
Name Flags
t
private void throttleLoopOnException();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 1: aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.lastExceptionTime:J
lconst_0
lcmp
ifeq 2
lload 1
aload 0
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.lastExceptionTime:J
lsub
ldc 5000
lcmp
ifle 5
2: StackMap locals: long
StackMap stack:
aload 0
lload 1
putfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.lastExceptionTime:J
3: aload 0
iconst_0
putfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.recentExceptionCount:I
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
dup
getfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.recentExceptionCount:I
iconst_1
iadd
dup_x1
putfield sun.rmi.transport.tcp.TCPTransport$AcceptLoop.recentExceptionCount:I
bipush 10
if_icmplt 9
6: ldc 10000
invokestatic java.lang.Thread.sleep:(J)V
7: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
8: pop
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/rmi/transport/tcp/TCPTransport$AcceptLoop;
1 10 1 now J
Exception table:
from to target type
6 7 8 Class java.lang.InterruptedException
}
SourceFile: "TCPTransport.java"
NestHost: sun.rmi.transport.tcp.TCPTransport
InnerClasses:
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