class sun.nio.ch.UnixAsynchronousServerSocketChannelImpl extends sun.nio.ch.AsynchronousServerSocketChannelImpl implements sun.nio.ch.Port$PollableChannel
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl
super_class: sun.nio.ch.AsynchronousServerSocketChannelImpl
{
private static final sun.nio.ch.NativeDispatcher nd;
descriptor: Lsun/nio/ch/NativeDispatcher;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final sun.nio.ch.Port port;
descriptor: Lsun/nio/ch/Port;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int fdVal;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicBoolean accepting;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object updateLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean acceptPending;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, java.lang.Object> acceptHandler;
descriptor: Ljava/nio/channels/CompletionHandler;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
private java.lang.Object acceptAttachment;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private sun.nio.ch.PendingFuture<java.nio.channels.AsynchronousSocketChannel, java.lang.Object> acceptFuture;
descriptor: Lsun/nio/ch/PendingFuture;
flags: (0x0002) ACC_PRIVATE
Signature: Lsun/nio/ch/PendingFuture<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
private java.security.AccessControlContext acceptAcc;
descriptor: Ljava/security/AccessControlContext;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.nio.ch.SocketDispatcher
dup
invokespecial sun.nio.ch.SocketDispatcher.<init>:()V
putstatic sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
1: invokestatic sun.nio.ch.IOUtil.load:()V
2: invokestatic sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.initIDs:()V
3: return
LocalVariableTable:
Start End Slot Name Signature
private void enableAccept();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.accepting:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
void <init>(sun.nio.ch.Port);
descriptor: (Lsun/nio/ch/Port;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial sun.nio.ch.AsynchronousServerSocketChannelImpl.<init>:(Lsun/nio/ch/AsynchronousChannelGroupImpl;)V
1: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.accepting:Ljava/util/concurrent/atomic/AtomicBoolean;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.updateLock:Ljava/lang/Object;
3: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
4: goto 8
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl sun.nio.ch.Port
StackMap stack: java.io.IOException
5: astore 2
start local 2 6: getstatic sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
7: aload 2
athrow
end local 2 8: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port:Lsun/nio/ch/Port;
9: aload 0
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fdVal:I
10: aload 1
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fdVal:I
aload 0
invokevirtual sun.nio.ch.Port.register:(ILsun/nio/ch/Port$PollableChannel;)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
0 12 1 port Lsun/nio/ch/Port;
6 8 2 x Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
port
void implClose();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port:Lsun/nio/ch/Port;
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fdVal:I
invokevirtual sun.nio.ch.Port.unregister:(I)V
1: getstatic sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
2: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.updateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptPending:Z
ifne 6
4: aload 4
monitorexit
5: return
6: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl top top top java.lang.Object
StackMap stack:
aload 0
iconst_0
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptPending:Z
7: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptHandler:Ljava/nio/channels/CompletionHandler;
astore 1
start local 1 8: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptAttachment:Ljava/lang/Object;
astore 2
start local 2 9: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptFuture:Lsun/nio/ch/PendingFuture;
astore 3
start local 3 10: aload 4
monitorexit
11: goto 14
end local 3 end local 2 end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
start local 1 start local 2 start local 3 14: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture
StackMap stack:
new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 4
start local 4 15: aload 4
iconst_0
anewarray java.lang.StackTraceElement
invokevirtual java.nio.channels.AsynchronousCloseException.setStackTrace:([Ljava/lang/StackTraceElement;)V
16: aload 1
ifnonnull 19
17: aload 3
aload 4
invokevirtual sun.nio.ch.PendingFuture.setFailure:(Ljava/lang/Throwable;)V
18: goto 20
19: StackMap locals: java.nio.channels.AsynchronousCloseException
StackMap stack:
aload 0
aload 1
aload 2
aconst_null
aload 4
invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
20: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
8 12 1 handler Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
14 21 1 handler Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
9 12 2 att Ljava/lang/Object;
14 21 2 att Ljava/lang/Object;
10 12 3 future Lsun/nio/ch/PendingFuture<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
14 21 3 future Lsun/nio/ch/PendingFuture<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
15 21 4 x Ljava/nio/channels/AsynchronousCloseException;
Exception table:
from to target type
3 5 12 any
6 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
public sun.nio.ch.AsynchronousChannelGroupImpl group();
descriptor: ()Lsun/nio/ch/AsynchronousChannelGroupImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port:Lsun/nio/ch/Port;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
public void onEvent(int, boolean);
descriptor: (IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.updateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptPending:Z
ifne 4
2: aload 3
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_0
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptPending:Z
5: aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
new java.io.FileDescriptor
dup
invokespecial java.io.FileDescriptor.<init>:()V
astore 3
start local 3 10: iconst_1
anewarray java.net.InetSocketAddress
astore 4
start local 4 11: aconst_null
astore 5
start local 5 12: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.begin:()V
13: aload 0
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
aload 4
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.accept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
istore 6
start local 6 14: iload 6
bipush -2
if_icmpne 32
15: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.updateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
16: aload 0
iconst_1
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptPending:Z
17: aload 7
monitorexit
18: goto 21
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl int int java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable int java.lang.Object
StackMap stack: java.lang.Throwable
19: aload 7
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port:Lsun/nio/ch/Port;
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fdVal:I
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.Port.startPoll:(II)V
22: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
23: return
end local 6 24: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl int int java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 6
start local 6 25: aload 6
instanceof java.nio.channels.ClosedChannelException
ifeq 27
26: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 6
27: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
astore 5
end local 6 28: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
goto 33
29: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl int int java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 8
30: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
31: aload 8
athrow
32: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
33: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 34: aload 5
ifnonnull 41
35: aload 0
aload 3
aload 4
iconst_0
aaload
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptAcc:Ljava/security/AccessControlContext;
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.finishAccept:(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;Ljava/security/AccessControlContext;)Ljava/nio/channels/AsynchronousSocketChannel;
astore 6
36: goto 41
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl int int java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable java.nio.channels.AsynchronousSocketChannel
StackMap stack: java.lang.Throwable
37: astore 7
start local 7 38: aload 7
instanceof java.io.IOException
ifne 40
aload 7
instanceof java.lang.SecurityException
ifne 40
39: new java.io.IOException
dup
aload 7
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
astore 7
40: StackMap locals: java.lang.Throwable
StackMap stack:
aload 7
astore 5
end local 7 41: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptHandler:Ljava/nio/channels/CompletionHandler;
astore 7
start local 7 42: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptAttachment:Ljava/lang/Object;
astore 8
start local 8 43: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptFuture:Lsun/nio/ch/PendingFuture;
astore 9
start local 9 44: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.enableAccept:()V
45: aload 7
ifnonnull 52
46: aload 9
aload 6
aload 5
invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
47: aload 6
ifnull 53
aload 9
invokevirtual sun.nio.ch.PendingFuture.isCancelled:()Z
ifeq 53
48: aload 6
invokevirtual java.nio.channels.AsynchronousSocketChannel.close:()V
49: goto 53
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl int int java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable java.nio.channels.AsynchronousSocketChannel java.nio.channels.CompletionHandler java.lang.Object sun.nio.ch.PendingFuture
StackMap stack: java.io.IOException
50: pop
51: goto 53
52: StackMap locals:
StackMap stack:
aload 0
aload 7
aload 8
aload 6
aload 5
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
53: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
0 54 1 events I
0 54 2 mayInvokeDirect Z
10 54 3 newfd Ljava/io/FileDescriptor;
11 54 4 isaa [Ljava/net/InetSocketAddress;
12 54 5 exc Ljava/lang/Throwable;
14 24 6 n I
25 28 6 x Ljava/lang/Throwable;
34 54 6 child Ljava/nio/channels/AsynchronousSocketChannel;
38 41 7 x Ljava/lang/Throwable;
42 54 7 handler Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
43 54 8 att Ljava/lang/Object;
44 54 9 future Lsun/nio/ch/PendingFuture<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
Exception table:
from to target type
1 3 7 any
4 6 7 any
7 8 7 any
16 18 19 any
19 20 19 any
12 22 24 Class java.lang.Throwable
12 22 29 any
24 28 29 any
35 36 37 Class java.lang.Throwable
48 49 50 Class java.io.IOException
MethodParameters:
Name Flags
events
mayInvokeDirect
private java.nio.channels.AsynchronousSocketChannel finishAccept(java.io.FileDescriptor, java.net.InetSocketAddress, java.security.AccessControlContext);
descriptor: (Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;Ljava/security/AccessControlContext;)Ljava/nio/channels/AsynchronousSocketChannel;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: new sun.nio.ch.UnixAsynchronousSocketChannelImpl
dup
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port:Lsun/nio/ch/Port;
aload 1
aload 2
invokespecial sun.nio.ch.UnixAsynchronousSocketChannelImpl.<init>:(Lsun/nio/ch/Port;Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)V
astore 4
2: goto 6
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.io.FileDescriptor java.net.InetSocketAddress java.security.AccessControlContext java.nio.channels.AsynchronousSocketChannel
StackMap stack: java.io.IOException
3: astore 5
start local 5 4: getstatic sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 1
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
5: aload 5
athrow
end local 5 6: StackMap locals:
StackMap stack:
aload 3
ifnull 11
7: new sun.nio.ch.UnixAsynchronousServerSocketChannelImpl$1
dup
aload 0
aload 2
invokespecial sun.nio.ch.UnixAsynchronousServerSocketChannelImpl$1.<init>:(Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;Ljava/net/InetSocketAddress;)V
8: aload 3
9: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
pop
10: goto 23
11: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 12: aload 5
ifnull 23
13: aload 5
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
14: aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
15: invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
end local 5 16: goto 23
StackMap locals:
StackMap stack: java.lang.SecurityException
17: astore 5
start local 5 18: aload 4
invokevirtual java.nio.channels.AsynchronousSocketChannel.close:()V
19: goto 22
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.io.FileDescriptor java.net.InetSocketAddress java.security.AccessControlContext java.nio.channels.AsynchronousSocketChannel java.lang.SecurityException
StackMap stack: java.lang.Throwable
20: astore 6
start local 6 21: aload 5
aload 6
invokevirtual java.lang.SecurityException.addSuppressed:(Ljava/lang/Throwable;)V
end local 6 22: StackMap locals:
StackMap stack:
aload 5
athrow
end local 5 23: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
0 24 1 newfd Ljava/io/FileDescriptor;
0 24 2 remote Ljava/net/InetSocketAddress;
0 24 3 acc Ljava/security/AccessControlContext;
1 24 4 ch Ljava/nio/channels/AsynchronousSocketChannel;
4 6 5 x Ljava/io/IOException;
12 16 5 sm Ljava/lang/SecurityManager;
18 23 5 x Ljava/lang/SecurityException;
21 22 6 suppressed Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.io.IOException
6 16 17 Class java.lang.SecurityException
18 19 20 Class java.lang.Throwable
Exceptions:
throws java.io.IOException, java.lang.SecurityException
MethodParameters:
Name Flags
newfd
remote final
acc
java.util.concurrent.Future<java.nio.channels.AsynchronousSocketChannel> implAccept(, java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel, java.lang.Object>);
descriptor: (Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
flags: (0x0000)
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.isOpen:()Z
ifne 6
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
astore 3
start local 3 2: aload 2
ifnonnull 4
3: aload 3
invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
4: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 2
aload 1
aconst_null
aload 3
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
5: aconst_null
areturn
end local 3 6: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 8
7: new java.nio.channels.NotYetBoundException
dup
invokespecial java.nio.channels.NotYetBoundException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.isAcceptKilled:()Z
ifeq 10
9: new java.lang.RuntimeException
dup
ldc "Accept not allowed due cancellation"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.accepting:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifne 12
11: new java.nio.channels.AcceptPendingException
dup
invokespecial java.nio.channels.AcceptPendingException.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
new java.io.FileDescriptor
dup
invokespecial java.io.FileDescriptor.<init>:()V
astore 3
start local 3 13: iconst_1
anewarray java.net.InetSocketAddress
astore 4
start local 4 14: aconst_null
astore 5
start local 5 15: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.begin:()V
16: aload 0
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
aload 4
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.accept:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
istore 6
start local 6 17: iload 6
bipush -2
if_icmpne 48
18: aconst_null
astore 7
start local 7 19: aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.updateLock:Ljava/lang/Object;
dup
astore 8
monitorenter
20: aload 2
ifnonnull 25
21: aload 0
aconst_null
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptHandler:Ljava/nio/channels/CompletionHandler;
22: new sun.nio.ch.PendingFuture
dup
aload 0
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;)V
astore 7
23: aload 0
aload 7
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptFuture:Lsun/nio/ch/PendingFuture;
24: goto 27
25: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.lang.Object java.nio.channels.CompletionHandler java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable int sun.nio.ch.PendingFuture java.lang.Object
StackMap stack:
aload 0
aload 2
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptHandler:Ljava/nio/channels/CompletionHandler;
26: aload 0
aload 1
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptAttachment:Ljava/lang/Object;
27: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnonnull 29
28: aconst_null
goto 30
StackMap locals:
StackMap stack: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl
29: invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
30: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.lang.Object java.nio.channels.CompletionHandler java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable int sun.nio.ch.PendingFuture java.lang.Object
StackMap stack: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.security.AccessControlContext
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptAcc:Ljava/security/AccessControlContext;
31: aload 0
iconst_1
putfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.acceptPending:Z
32: aload 8
monitorexit
33: goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
34: aload 8
monitorexit
35: athrow
36: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port:Lsun/nio/ch/Port;
aload 0
getfield sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.fdVal:I
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.Port.startPoll:(II)V
37: aload 7
astore 10
38: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
39: aload 10
areturn
end local 7 end local 6 40: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.lang.Object java.nio.channels.CompletionHandler java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 6
start local 6 41: aload 6
instanceof java.nio.channels.ClosedChannelException
ifeq 43
42: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 6
43: StackMap locals: java.lang.Throwable
StackMap stack:
aload 6
astore 5
end local 6 44: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
goto 49
45: StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.lang.Object java.nio.channels.CompletionHandler java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 9
46: aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
47: aload 9
athrow
48: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.end:()V
49: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 50: aload 5
ifnonnull 55
51: aload 0
aload 3
aload 4
iconst_0
aaload
aconst_null
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.finishAccept:(Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;Ljava/security/AccessControlContext;)Ljava/nio/channels/AsynchronousSocketChannel;
astore 6
52: goto 55
StackMap locals: sun.nio.ch.UnixAsynchronousServerSocketChannelImpl java.lang.Object java.nio.channels.CompletionHandler java.io.FileDescriptor java.net.InetSocketAddress[] java.lang.Throwable java.nio.channels.AsynchronousSocketChannel
StackMap stack: java.lang.Throwable
53: astore 7
start local 7 54: aload 7
astore 5
end local 7 55: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.enableAccept:()V
56: aload 2
ifnonnull 58
57: aload 6
aload 5
invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
58: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 1
aload 6
aload 5
invokestatic sun.nio.ch.Invoker.invokeIndirectly:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
59: aconst_null
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
0 60 1 att Ljava/lang/Object;
0 60 2 handler Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
2 6 3 e Ljava/lang/Throwable;
13 60 3 newfd Ljava/io/FileDescriptor;
14 60 4 isaa [Ljava/net/InetSocketAddress;
15 60 5 exc Ljava/lang/Throwable;
17 40 6 n I
19 40 7 result Lsun/nio/ch/PendingFuture<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;
41 44 6 x Ljava/lang/Throwable;
50 60 6 child Ljava/nio/channels/AsynchronousSocketChannel;
54 55 7 x Ljava/lang/Throwable;
Exception table:
from to target type
20 33 34 any
34 35 34 any
15 38 40 Class java.lang.Throwable
15 38 45 any
40 44 45 any
51 52 53 Class java.lang.Throwable
Signature: (Ljava/lang/Object;Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/AsynchronousSocketChannel;Ljava/lang/Object;>;)Ljava/util/concurrent/Future<Ljava/nio/channels/AsynchronousSocketChannel;>;
MethodParameters:
Name Flags
att
handler
private int accept(java.io.FileDescriptor, java.io.FileDescriptor, java.net.InetSocketAddress[]);
descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokevirtual sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.accept0:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/UnixAsynchronousServerSocketChannelImpl;
0 1 1 ssfd Ljava/io/FileDescriptor;
0 1 2 newfd Ljava/io/FileDescriptor;
0 1 3 isaa [Ljava/net/InetSocketAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ssfd
newfd
isaa
private static native void initIDs();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private native int accept0(java.io.FileDescriptor, java.io.FileDescriptor, java.net.InetSocketAddress[]);
descriptor: (Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/net/InetSocketAddress;)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ssfd
newfd
isaa
}
SourceFile: "UnixAsynchronousServerSocketChannelImpl.java"
NestMembers:
sun.nio.ch.UnixAsynchronousServerSocketChannelImpl$1
InnerClasses:
abstract PollableChannel = sun.nio.ch.Port$PollableChannel of sun.nio.ch.Port
sun.nio.ch.UnixAsynchronousServerSocketChannelImpl$1