public class java.net.ServerSocket implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.net.ServerSocket
super_class: java.lang.Object
{
private boolean created;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean bound;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Object closeLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.net.SocketImpl impl;
descriptor: Ljava/net/SocketImpl;
flags: (0x0002) ACC_PRIVATE
private boolean oldImpl;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static java.net.SocketImplFactory factory;
descriptor: Ljava/net/SocketImplFactory;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private volatile java.util.Set<java.net.SocketOption<?>> options;
descriptor: Ljava/util/Set;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Set<Ljava/net/SocketOption<*>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: aconst_null
putstatic java.net.ServerSocket.factory:Ljava/net/SocketImplFactory;
1: new java.net.ServerSocket$1
dup
invokespecial java.net.ServerSocket$1.<init>:()V
2: invokestatic jdk.internal.access.SharedSecrets.setJavaNetSocketAccess:(Ljdk/internal/access/JavaNetSocketAccess;)V
3: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.net.SocketImpl);
descriptor: (Ljava/net/SocketImpl;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.net.ServerSocket.created:Z
2: aload 0
iconst_0
putfield java.net.ServerSocket.bound:Z
3: aload 0
iconst_0
putfield java.net.ServerSocket.closed:Z
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.net.ServerSocket.closeLock:Ljava/lang/Object;
5: aload 0
iconst_0
putfield java.net.ServerSocket.oldImpl:Z
6: aload 0
aload 1
putfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
7: aload 1
aload 0
invokevirtual java.net.SocketImpl.setServerSocket:(Ljava/net/ServerSocket;)V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/net/ServerSocket;
0 9 1 impl Ljava/net/SocketImpl;
MethodParameters:
Name Flags
impl
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.net.ServerSocket.created:Z
2: aload 0
iconst_0
putfield java.net.ServerSocket.bound:Z
3: aload 0
iconst_0
putfield java.net.ServerSocket.closed:Z
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.net.ServerSocket.closeLock:Ljava/lang/Object;
5: aload 0
iconst_0
putfield java.net.ServerSocket.oldImpl:Z
6: aload 0
invokevirtual java.net.ServerSocket.setImpl:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/net/ServerSocket;
Exceptions:
throws java.io.IOException
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
bipush 50
aconst_null
invokespecial java.net.ServerSocket.<init>:(IILjava/net/InetAddress;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
0 2 1 port I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
port
public void <init>(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
aconst_null
invokespecial java.net.ServerSocket.<init>:(IILjava/net/InetAddress;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
0 2 1 port I
0 2 2 backlog I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
port
backlog
public void <init>(int, int, java.net.InetAddress);
descriptor: (IILjava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.net.ServerSocket.created:Z
2: aload 0
iconst_0
putfield java.net.ServerSocket.bound:Z
3: aload 0
iconst_0
putfield java.net.ServerSocket.closed:Z
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield java.net.ServerSocket.closeLock:Ljava/lang/Object;
5: aload 0
iconst_0
putfield java.net.ServerSocket.oldImpl:Z
6: aload 0
invokevirtual java.net.ServerSocket.setImpl:()V
7: iload 1
iflt 8
iload 1
ldc 65535
if_icmple 11
8: StackMap locals: java.net.ServerSocket int int java.net.InetAddress
StackMap stack:
new java.lang.IllegalArgumentException
dup
9: new java.lang.StringBuilder
dup
ldc "Port value out of range: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
iload 2
iconst_1
if_icmpge 13
12: bipush 50
istore 2
13: StackMap locals:
StackMap stack:
aload 0
new java.net.InetSocketAddress
dup
aload 3
iload 1
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
iload 2
invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;I)V
14: goto 21
StackMap locals:
StackMap stack: java.lang.SecurityException
15: astore 4
start local 4 16: aload 0
invokevirtual java.net.ServerSocket.close:()V
17: aload 4
athrow
end local 4 18: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 19: aload 0
invokevirtual java.net.ServerSocket.close:()V
20: aload 4
athrow
end local 4 21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljava/net/ServerSocket;
0 22 1 port I
0 22 2 backlog I
0 22 3 bindAddr Ljava/net/InetAddress;
16 18 4 e Ljava/lang/SecurityException;
19 21 4 e Ljava/io/IOException;
Exception table:
from to target type
13 14 15 Class java.lang.SecurityException
13 14 18 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
port
backlog
bindAddr
java.net.SocketImpl getImpl();
descriptor: ()Ljava/net/SocketImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.created:Z
ifne 2
1: aload 0
invokevirtual java.net.ServerSocket.createImpl:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/net/ServerSocket;
Exceptions:
throws java.net.SocketException
private void checkOldImpl();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
new java.net.ServerSocket$2
dup
aload 0
invokespecial java.net.ServerSocket$2.<init>:(Ljava/net/ServerSocket;)V
3: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
pop
4: goto 7
StackMap locals:
StackMap stack: java.security.PrivilegedActionException
5: pop
6: aload 0
iconst_1
putfield java.net.ServerSocket.oldImpl:Z
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/net/ServerSocket;
Exception table:
from to target type
2 4 5 Class java.security.PrivilegedActionException
private void setImpl();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic java.net.ServerSocket.factory:Ljava/net/SocketImplFactory;
ifnull 4
1: aload 0
getstatic java.net.ServerSocket.factory:Ljava/net/SocketImplFactory;
invokeinterface java.net.SocketImplFactory.createSocketImpl:()Ljava/net/SocketImpl;
putfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
2: aload 0
invokevirtual java.net.ServerSocket.checkOldImpl:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
new java.net.SocksSocketImpl
dup
invokespecial java.net.SocksSocketImpl.<init>:()V
putfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
5: StackMap locals:
StackMap stack:
aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
ifnull 7
6: aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
aload 0
invokevirtual java.net.SocketImpl.setServerSocket:(Ljava/net/ServerSocket;)V
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/net/ServerSocket;
void createImpl();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
ifnonnull 2
1: aload 0
invokevirtual java.net.ServerSocket.setImpl:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
iconst_1
invokevirtual java.net.SocketImpl.create:(Z)V
3: aload 0
iconst_1
putfield java.net.ServerSocket.created:Z
4: goto 7
StackMap locals:
StackMap stack: java.io.IOException
5: astore 1
start local 1 6: new java.net.SocketException
dup
aload 1
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/net/ServerSocket;
6 7 1 e Ljava/io/IOException;
Exception table:
from to target type
2 4 5 Class java.io.IOException
Exceptions:
throws java.net.SocketException
public void bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
bipush 50
invokevirtual java.net.ServerSocket.bind:(Ljava/net/SocketAddress;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
0 2 1 endpoint Ljava/net/SocketAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
endpoint
public void bind(java.net.SocketAddress, int);
descriptor: (Ljava/net/SocketAddress;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.net.ServerSocket.oldImpl:Z
ifne 4
aload 0
invokevirtual java.net.ServerSocket.isBound:()Z
ifeq 4
3: new java.net.SocketException
dup
ldc "Already bound"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
ifnonnull 6
5: new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
astore 1
6: StackMap locals:
StackMap stack:
aload 1
instanceof java.net.InetSocketAddress
ifne 8
7: new java.lang.IllegalArgumentException
dup
ldc "Unsupported address type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
checkcast java.net.InetSocketAddress
astore 3
start local 3 9: aload 3
invokevirtual java.net.InetSocketAddress.isUnresolved:()Z
ifeq 11
10: new java.net.SocketException
dup
ldc "Unresolved address"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.net.InetSocketAddress
StackMap stack:
iload 2
iconst_1
if_icmpge 13
12: bipush 50
istore 2
13: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 4
start local 4 14: aload 4
ifnull 16
15: aload 4
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
16: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.net.SocketImpl.bind:(Ljava/net/InetAddress;I)V
17: aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
iload 2
invokevirtual java.net.SocketImpl.listen:(I)V
18: aload 0
iconst_1
putfield java.net.ServerSocket.bound:Z
end local 4 19: goto 26
StackMap locals: java.net.ServerSocket java.net.SocketAddress int java.net.InetSocketAddress
StackMap stack: java.lang.SecurityException
20: astore 4
start local 4 21: aload 0
iconst_0
putfield java.net.ServerSocket.bound:Z
22: aload 4
athrow
end local 4 23: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 24: aload 0
iconst_0
putfield java.net.ServerSocket.bound:Z
25: aload 4
athrow
end local 4 26: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljava/net/ServerSocket;
0 27 1 endpoint Ljava/net/SocketAddress;
0 27 2 backlog I
9 27 3 epoint Ljava/net/InetSocketAddress;
14 19 4 security Ljava/lang/SecurityManager;
21 23 4 e Ljava/lang/SecurityException;
24 26 4 e Ljava/io/IOException;
Exception table:
from to target type
13 19 20 Class java.lang.SecurityException
13 19 23 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
endpoint
backlog
public java.net.InetAddress getInetAddress();
descriptor: ()Ljava/net/InetAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isBound:()Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
invokevirtual java.net.SocketImpl.getInetAddress:()Ljava/net/InetAddress;
astore 1
start local 1 3: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
aload 1
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
iconst_m1
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
6: StackMap locals: java.net.InetAddress java.lang.SecurityManager
StackMap stack:
aload 1
7: areturn
end local 2 end local 1 8: StackMap locals: java.net.ServerSocket
StackMap stack: java.lang.SecurityException
pop
9: invokestatic java.net.InetAddress.getLoopbackAddress:()Ljava/net/InetAddress;
areturn
10: StackMap locals:
StackMap stack: java.net.SocketException
pop
11: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/net/ServerSocket;
3 8 1 in Ljava/net/InetAddress;
4 8 2 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
2 7 8 Class java.lang.SecurityException
2 7 10 Class java.net.SocketException
public int getLocalPort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isBound:()Z
ifne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
invokevirtual java.net.SocketImpl.getLocalPort:()I
3: ireturn
4: StackMap locals:
StackMap stack: java.net.SocketException
pop
5: iconst_m1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/net/ServerSocket;
Exception table:
from to target type
2 3 4 Class java.net.SocketException
public java.net.SocketAddress getLocalSocketAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isBound:()Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
new java.net.InetSocketAddress
dup
aload 0
invokevirtual java.net.ServerSocket.getInetAddress:()Ljava/net/InetAddress;
aload 0
invokevirtual java.net.ServerSocket.getLocalPort:()I
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/net/ServerSocket;
public java.net.Socket accept();
descriptor: ()Ljava/net/Socket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.isBound:()Z
ifne 4
3: new java.net.SocketException
dup
ldc "Socket is not bound yet"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new java.net.Socket
dup
aconst_null
invokespecial java.net.Socket.<init>:(Ljava/net/SocketImpl;)V
astore 1
start local 1 5: aload 0
aload 1
invokevirtual java.net.ServerSocket.implAccept:(Ljava/net/Socket;)V
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/net/ServerSocket;
5 7 1 s Ljava/net/Socket;
Exceptions:
throws java.io.IOException
protected final void implAccept(java.net.Socket);
descriptor: (Ljava/net/Socket;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
getfield java.net.Socket.impl:Ljava/net/SocketImpl;
ifnonnull 3
2: aload 1
invokevirtual java.net.Socket.setImpl:()V
goto 4
3: StackMap locals: java.net.SocketImpl
StackMap stack:
aload 1
getfield java.net.Socket.impl:Ljava/net/SocketImpl;
invokevirtual java.net.SocketImpl.reset:()V
4: StackMap locals:
StackMap stack:
aload 1
getfield java.net.Socket.impl:Ljava/net/SocketImpl;
astore 2
5: aload 1
aconst_null
putfield java.net.Socket.impl:Ljava/net/SocketImpl;
6: aload 2
new java.net.InetAddress
dup
invokespecial java.net.InetAddress.<init>:()V
putfield java.net.SocketImpl.address:Ljava/net/InetAddress;
7: aload 2
new java.io.FileDescriptor
dup
invokespecial java.io.FileDescriptor.<init>:()V
putfield java.net.SocketImpl.fd:Ljava/io/FileDescriptor;
8: aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
aload 2
invokevirtual java.net.SocketImpl.accept:(Ljava/net/SocketImpl;)V
9: aload 2
getfield java.net.SocketImpl.fd:Ljava/io/FileDescriptor;
invokestatic java.net.SocketCleanable.register:(Ljava/io/FileDescriptor;)V
10: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 11: aload 3
ifnull 26
12: aload 3
aload 2
invokevirtual java.net.SocketImpl.getInetAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
13: aload 2
invokevirtual java.net.SocketImpl.getPort:()I
14: invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
end local 3 15: goto 26
StackMap locals:
StackMap stack: java.io.IOException
16: astore 3
start local 3 17: aload 2
ifnull 19
18: aload 2
invokevirtual java.net.SocketImpl.reset:()V
19: StackMap locals: java.io.IOException
StackMap stack:
aload 1
aload 2
putfield java.net.Socket.impl:Ljava/net/SocketImpl;
20: aload 3
athrow
end local 3 21: StackMap locals: java.net.ServerSocket java.net.Socket java.net.SocketImpl
StackMap stack: java.lang.SecurityException
astore 3
start local 3 22: aload 2
ifnull 24
23: aload 2
invokevirtual java.net.SocketImpl.reset:()V
24: StackMap locals: java.lang.SecurityException
StackMap stack:
aload 1
aload 2
putfield java.net.Socket.impl:Ljava/net/SocketImpl;
25: aload 3
athrow
end local 3 26: StackMap locals:
StackMap stack:
aload 1
aload 2
putfield java.net.Socket.impl:Ljava/net/SocketImpl;
27: aload 1
invokevirtual java.net.Socket.postAccept:()V
28: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/net/ServerSocket;
0 29 1 s Ljava/net/Socket;
1 29 2 si Ljava/net/SocketImpl;
11 15 3 security Ljava/lang/SecurityManager;
17 21 3 e Ljava/io/IOException;
22 26 3 e Ljava/lang/SecurityException;
Exception table:
from to target type
1 15 16 Class java.io.IOException
1 15 21 Class java.lang.SecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.closeLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield java.net.ServerSocket.created:Z
ifeq 6
5: aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
invokevirtual java.net.SocketImpl.close:()V
6: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield java.net.ServerSocket.closed:Z
7: aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/net/ServerSocket;
Exception table:
from to target type
1 3 9 any
4 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
public java.nio.channels.ServerSocketChannel getChannel();
descriptor: ()Ljava/nio/channels/ServerSocketChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/net/ServerSocket;
public boolean isBound();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.bound:Z
ifne 1
aload 0
getfield java.net.ServerSocket.oldImpl:Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
public boolean isClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.closeLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield java.net.ServerSocket.closed:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: java.net.ServerSocket java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/net/ServerSocket;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public synchronized void setSoTimeout(int);
descriptor: (I)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
sipush 4102
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.net.SocketImpl.setOption:(ILjava/lang/Object;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/net/ServerSocket;
0 4 1 timeout I
Exceptions:
throws java.net.SocketException
MethodParameters:
Name Flags
timeout
public synchronized int getSoTimeout();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
sipush 4102
invokevirtual java.net.SocketImpl.getOption:(I)Ljava/lang/Object;
astore 1
start local 1 3: aload 1
instanceof java.lang.Integer
ifeq 5
4: aload 1
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
ireturn
5: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/net/ServerSocket;
3 6 1 o Ljava/lang/Object;
Exceptions:
throws java.io.IOException
public void setReuseAddress(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
iconst_4
iload 1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual java.net.SocketImpl.setOption:(ILjava/lang/Object;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/net/ServerSocket;
0 4 1 on Z
Exceptions:
throws java.net.SocketException
MethodParameters:
Name Flags
on
public boolean getReuseAddress();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
iconst_4
invokevirtual java.net.SocketImpl.getOption:(I)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/net/ServerSocket;
Exceptions:
throws java.net.SocketException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isBound:()Z
ifne 2
1: ldc "ServerSocket[unbound]"
areturn
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 5
3: invokestatic java.net.InetAddress.getLoopbackAddress:()Ljava/net/InetAddress;
astore 1
start local 1 4: goto 6
end local 1 5: StackMap locals:
StackMap stack:
aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
invokevirtual java.net.SocketImpl.getInetAddress:()Ljava/net/InetAddress;
astore 1
start local 1 6: StackMap locals: java.net.InetAddress
StackMap stack:
new java.lang.StringBuilder
dup
ldc "ServerSocket[addr="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: ldc ",localport="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.net.ServerSocket.impl:Ljava/net/SocketImpl;
invokevirtual java.net.SocketImpl.getLocalPort:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/net/ServerSocket;
4 5 1 in Ljava/net/InetAddress;
6 9 1 in Ljava/net/InetAddress;
void setBound();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield java.net.ServerSocket.bound:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
void setCreated();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield java.net.ServerSocket.created:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
public static synchronized void setSocketFactory(java.net.SocketImplFactory);
descriptor: (Ljava/net/SocketImplFactory;)V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic java.net.ServerSocket.factory:Ljava/net/SocketImplFactory;
ifnull 2
1: new java.net.SocketException
dup
ldc "factory already defined"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 3: aload 1
ifnull 5
4: aload 1
invokevirtual java.lang.SecurityManager.checkSetFactory:()V
5: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
putstatic java.net.ServerSocket.factory:Ljava/net/SocketImplFactory;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 fac Ljava/net/SocketImplFactory;
3 7 1 security Ljava/lang/SecurityManager;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fac
public synchronized void setReceiveBufferSize(int);
descriptor: (I)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: new java.lang.IllegalArgumentException
dup
ldc "negative receive size"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 4
3: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
sipush 4098
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.net.SocketImpl.setOption:(ILjava/lang/Object;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/net/ServerSocket;
0 6 1 size I
Exceptions:
throws java.net.SocketException
MethodParameters:
Name Flags
size
public synchronized int getReceiveBufferSize();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.net.ServerSocket.isClosed:()Z
ifeq 2
1: new java.net.SocketException
dup
ldc "Socket is closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 3: aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
sipush 4098
invokevirtual java.net.SocketImpl.getOption:(I)Ljava/lang/Object;
astore 2
start local 2 4: aload 2
instanceof java.lang.Integer
ifeq 6
5: aload 2
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 1
6: StackMap locals: int java.lang.Object
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/net/ServerSocket;
3 7 1 result I
4 7 2 o Ljava/lang/Object;
Exceptions:
throws java.net.SocketException
public void setPerformancePreferences(int, int, int);
descriptor: (III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/net/ServerSocket;
0 1 1 connectionTime I
0 1 2 latency I
0 1 3 bandwidth I
MethodParameters:
Name Flags
connectionTime
latency
bandwidth
public <T> java.net.ServerSocket setOption(java.net.SocketOption<T>, T);
descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/net/ServerSocket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
aload 1
aload 2
invokevirtual java.net.SocketImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)V
1: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/net/ServerSocket;
0 2 1 name Ljava/net/SocketOption<TT;>;
0 2 2 value TT;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;TT;)Ljava/net/ServerSocket;
MethodParameters:
Name Flags
name
value
public <T> T getOption(java.net.SocketOption<T>);
descriptor: (Ljava/net/SocketOption;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
aload 1
invokevirtual java.net.SocketImpl.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/net/ServerSocket;
0 1 1 name Ljava/net/SocketOption<TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;)TT;
MethodParameters:
Name Flags
name
public java.util.Set<java.net.SocketOption<?>> supportedOptions();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield java.net.ServerSocket.options:Ljava/util/Set;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
areturn
3: StackMap locals: java.util.Set
StackMap stack:
aload 0
invokevirtual java.net.ServerSocket.getImpl:()Ljava/net/SocketImpl;
astore 2
start local 2 4: aload 0
aload 2
invokevirtual java.net.SocketImpl.supportedOptions:()Ljava/util/Set;
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putfield java.net.ServerSocket.options:Ljava/util/Set;
end local 2 5: goto 8
StackMap locals:
StackMap stack: java.io.IOException
6: pop
7: aload 0
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putfield java.net.ServerSocket.options:Ljava/util/Set;
8: StackMap locals:
StackMap stack:
aload 0
getfield java.net.ServerSocket.options:Ljava/util/Set;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/net/ServerSocket;
1 9 1 so Ljava/util/Set<Ljava/net/SocketOption<*>;>;
4 5 2 impl Ljava/net/SocketImpl;
Exception table:
from to target type
3 5 6 Class java.io.IOException
Signature: ()Ljava/util/Set<Ljava/net/SocketOption<*>;>;
}
SourceFile: "ServerSocket.java"
NestMembers:
java.net.ServerSocket$1 java.net.ServerSocket$2
InnerClasses:
java.net.ServerSocket$1
java.net.ServerSocket$2