class sun.nio.ch.DatagramChannelImpl extends java.nio.channels.DatagramChannel implements sun.nio.ch.SelChImpl
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.DatagramChannelImpl
super_class: java.nio.channels.DatagramChannel
{
private static final sun.nio.ch.NativeDispatcher nd;
descriptor: Lsun/nio/ch/NativeDispatcher;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final boolean interruptible;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.net.ProtocolFamily family;
descriptor: Ljava/net/ProtocolFamily;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.FileDescriptor fd;
descriptor: Ljava/io/FileDescriptor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int fdVal;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private sun.nio.ch.NativeSocketAddress sourceSockAddr;
descriptor: Lsun/nio/ch/NativeSocketAddress;
flags: (0x0002) ACC_PRIVATE
private sun.nio.ch.NativeSocketAddress cachedSockAddr;
descriptor: Lsun/nio/ch/NativeSocketAddress;
flags: (0x0002) ACC_PRIVATE
private java.net.InetSocketAddress cachedInetSocketAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private final sun.nio.ch.NativeSocketAddress targetSockAddr;
descriptor: Lsun/nio/ch/NativeSocketAddress;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.net.InetSocketAddress previousTarget;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private int previousSockAddrLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.ref.Cleaner$Cleanable cleaner;
descriptor: Ljava/lang/ref/Cleaner$Cleanable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock readLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock writeLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object stateLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int ST_UNCONNECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ST_CONNECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ST_CLOSING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ST_CLOSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long readerThread;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long writerThread;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.net.InetSocketAddress localAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private java.net.InetSocketAddress remoteAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private java.net.InetSocketAddress initialLocalAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.invoke.VarHandle SOCKET;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile java.net.DatagramSocket socket;
descriptor: Ljava/net/DatagramSocket;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private sun.nio.ch.MembershipRegistry registry;
descriptor: Lsun/nio/ch/MembershipRegistry;
flags: (0x0002) ACC_PRIVATE
private boolean reuseAddressEmulated;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isReuseAddress;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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=4, locals=1, args_size=0
0: ldc Lsun/nio/ch/DatagramChannelImpl;
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.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
3: new sun.nio.ch.DatagramDispatcher
dup
invokespecial sun.nio.ch.DatagramDispatcher.<init>:()V
putstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
4: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
astore 0
start local 0 5: aload 0
ldc Lsun/nio/ch/DatagramChannelImpl;
ldc "socket"
ldc Ljava/net/DatagramSocket;
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic sun.nio.ch.DatagramChannelImpl.SOCKET:Ljava/lang/invoke/VarHandle;
end local 0 6: goto 9
StackMap locals:
StackMap stack: java.lang.Exception
7: astore 0
start local 0 8: new java.lang.InternalError
dup
aload 0
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 9: StackMap locals:
StackMap stack:
invokestatic sun.nio.ch.IOUtil.load:()V
10: return
LocalVariableTable:
Start End Slot Name Signature
5 6 0 l Ljava/lang/invoke/MethodHandles$Lookup;
8 9 0 e Ljava/lang/Exception;
Exception table:
from to target type
4 6 7 Class java.lang.Exception
void <init>(java.nio.channels.spi.SelectorProvider, boolean);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Z)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 2
1: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 3
2: StackMap locals: uninitialized-this java.nio.channels.spi.SelectorProvider int
StackMap stack: uninitialized-this java.nio.channels.spi.SelectorProvider
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
3: StackMap locals: uninitialized-this java.nio.channels.spi.SelectorProvider int
StackMap stack: uninitialized-this java.nio.channels.spi.SelectorProvider java.net.StandardProtocolFamily
iload 2
invokespecial sun.nio.ch.DatagramChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/net/ProtocolFamily;Z)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/DatagramChannelImpl;
0 5 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 5 2 interruptible Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
interruptible
void <init>(java.nio.channels.spi.SelectorProvider, java.net.ProtocolFamily, boolean);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/net/ProtocolFamily;Z)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial java.nio.channels.DatagramChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
4: aload 2
ldc "'family' is null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
5: aload 2
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 8
6: aload 2
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpeq 8
7: new java.lang.UnsupportedOperationException
dup
ldc "Protocol family not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily int
StackMap stack:
aload 2
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 10
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifne 10
9: new java.lang.UnsupportedOperationException
dup
ldc "IPv6 not available"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 11: aconst_null
astore 5
start local 5 12: invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
13: iconst_0
istore 6
start local 6 14: aload 0
iload 3
putfield sun.nio.ch.DatagramChannelImpl.interruptible:Z
15: aload 0
aload 2
putfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
16: aload 0
aload 2
iconst_0
invokestatic sun.nio.ch.Net.socket:(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
dup
astore 4
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
17: aload 0
aload 4
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.DatagramChannelImpl.fdVal:I
18: iconst_3
invokestatic sun.nio.ch.NativeSocketAddress.allocate:(I)[Lsun/nio/ch/NativeSocketAddress;
astore 5
19: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
20: aload 0
aload 5
iconst_0
aaload
putfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
21: aload 0
aload 5
iconst_1
aaload
putfield sun.nio.ch.DatagramChannelImpl.cachedSockAddr:Lsun/nio/ch/NativeSocketAddress;
22: goto 26
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily int java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int
StackMap stack: java.lang.Throwable
23: astore 7
24: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
25: aload 7
athrow
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: aload 0
aload 5
iconst_2
aaload
putfield sun.nio.ch.DatagramChannelImpl.targetSockAddr:Lsun/nio/ch/NativeSocketAddress;
28: iconst_1
istore 6
29: goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 8
31: iload 6
ifne 35
32: aload 5
ifnull 33
aload 5
invokestatic sun.nio.ch.NativeSocketAddress.freeAll:([Lsun/nio/ch/NativeSocketAddress;)V
33: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily int java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int top java.lang.Throwable
StackMap stack:
aload 4
ifnull 34
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 4
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
34: StackMap locals:
StackMap stack:
invokestatic sun.net.ResourceManager.afterUdpClose:()V
35: StackMap locals:
StackMap stack:
aload 8
athrow
36: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily int java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int
StackMap stack:
iload 6
ifne 40
37: aload 5
ifnull 38
aload 5
invokestatic sun.nio.ch.NativeSocketAddress.freeAll:([Lsun/nio/ch/NativeSocketAddress;)V
38: StackMap locals:
StackMap stack:
aload 4
ifnull 39
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 4
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
39: StackMap locals:
StackMap stack:
invokestatic sun.net.ResourceManager.afterUdpClose:()V
40: StackMap locals:
StackMap stack:
aload 4
aload 5
invokestatic sun.nio.ch.DatagramChannelImpl.releaserFor:(Ljava/io/FileDescriptor;[Lsun/nio/ch/NativeSocketAddress;)Ljava/lang/Runnable;
astore 7
start local 7 41: aload 0
invokestatic jdk.internal.ref.CleanerFactory.cleaner:()Ljava/lang/ref/Cleaner;
aload 0
aload 7
invokevirtual java.lang.ref.Cleaner.register:(Ljava/lang/Object;Ljava/lang/Runnable;)Ljava/lang/ref/Cleaner$Cleanable;
putfield sun.nio.ch.DatagramChannelImpl.cleaner:Ljava/lang/ref/Cleaner$Cleanable;
42: return
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 43 0 this Lsun/nio/ch/DatagramChannelImpl;
0 43 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 43 2 family Ljava/net/ProtocolFamily;
0 43 3 interruptible Z
11 43 4 fd Ljava/io/FileDescriptor;
12 43 5 sockAddrs [Lsun/nio/ch/NativeSocketAddress;
14 43 6 initialized Z
41 43 7 releaser Ljava/lang/Runnable;
Exception table:
from to target type
20 23 23 any
14 30 30 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
family
interruptible
void <init>(java.nio.channels.spi.SelectorProvider, java.io.FileDescriptor);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial java.nio.channels.DatagramChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
4: aconst_null
astore 3
start local 3 5: invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
6: iconst_0
istore 4
start local 4 7: aload 0
iconst_1
putfield sun.nio.ch.DatagramChannelImpl.interruptible:Z
8: aload 0
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 10
9: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 11
10: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int
StackMap stack: sun.nio.ch.DatagramChannelImpl
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
11: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int
StackMap stack: sun.nio.ch.DatagramChannelImpl java.net.StandardProtocolFamily
putfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
12: aload 0
aload 2
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
13: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.DatagramChannelImpl.fdVal:I
14: iconst_3
invokestatic sun.nio.ch.NativeSocketAddress.allocate:(I)[Lsun/nio/ch/NativeSocketAddress;
astore 3
15: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
16: aload 0
aload 3
iconst_0
aaload
putfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
17: aload 0
aload 3
iconst_1
aaload
putfield sun.nio.ch.DatagramChannelImpl.cachedSockAddr:Lsun/nio/ch/NativeSocketAddress;
18: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 5
20: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
21: aload 5
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
23: aload 0
aload 3
iconst_2
aaload
putfield sun.nio.ch.DatagramChannelImpl.targetSockAddr:Lsun/nio/ch/NativeSocketAddress;
24: iconst_1
istore 4
25: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 6
27: iload 4
ifne 31
28: aload 3
ifnull 29
aload 3
invokestatic sun.nio.ch.NativeSocketAddress.freeAll:([Lsun/nio/ch/NativeSocketAddress;)V
29: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 2
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
30: invokestatic sun.net.ResourceManager.afterUdpClose:()V
31: StackMap locals:
StackMap stack:
aload 6
athrow
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int
StackMap stack:
iload 4
ifne 36
33: aload 3
ifnull 34
aload 3
invokestatic sun.nio.ch.NativeSocketAddress.freeAll:([Lsun/nio/ch/NativeSocketAddress;)V
34: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 2
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
35: invokestatic sun.net.ResourceManager.afterUdpClose:()V
36: StackMap locals:
StackMap stack:
aload 2
aload 3
invokestatic sun.nio.ch.DatagramChannelImpl.releaserFor:(Ljava/io/FileDescriptor;[Lsun/nio/ch/NativeSocketAddress;)Ljava/lang/Runnable;
astore 5
start local 5 37: aload 0
invokestatic jdk.internal.ref.CleanerFactory.cleaner:()Ljava/lang/ref/Cleaner;
aload 0
aload 5
invokevirtual java.lang.ref.Cleaner.register:(Ljava/lang/Object;Ljava/lang/Runnable;)Ljava/lang/ref/Cleaner$Cleanable;
putfield sun.nio.ch.DatagramChannelImpl.cleaner:Ljava/lang/ref/Cleaner$Cleanable;
38: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 6
monitorenter
39: aload 0
aload 2
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
40: aload 6
monitorexit
41: goto 44
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor sun.nio.ch.NativeSocketAddress[] int java.lang.Runnable java.lang.Object
StackMap stack: java.lang.Throwable
42: aload 6
monitorexit
43: athrow
44: StackMap locals:
StackMap stack:
return
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 45 0 this Lsun/nio/ch/DatagramChannelImpl;
0 45 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 45 2 fd Ljava/io/FileDescriptor;
5 45 3 sockAddrs [Lsun/nio/ch/NativeSocketAddress;
7 45 4 initialized Z
37 45 5 releaser Ljava/lang/Runnable;
Exception table:
from to target type
16 19 19 any
7 26 26 any
39 41 42 any
42 43 42 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
fd
private void ensureOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/DatagramChannelImpl;
Exceptions:
throws java.nio.channels.ClosedChannelException
public java.net.DatagramSocket socket();
descriptor: ()Ljava/net/DatagramSocket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
astore 1
start local 1 1: aload 1
ifnonnull 5
2: aload 0
invokestatic sun.nio.ch.DatagramSocketAdaptor.create:(Lsun/nio/ch/DatagramChannelImpl;)Ljava/net/DatagramSocket;
astore 1
3: getstatic sun.nio.ch.DatagramChannelImpl.SOCKET:Ljava/lang/invoke/VarHandle;
aload 0
aconst_null
aload 1
invokevirtual java.lang.invoke.VarHandle.compareAndSet:(Lsun/nio/ch/DatagramChannelImpl;Ljava/lang/Void;Ljava/net/DatagramSocket;)Z
ifne 5
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
astore 1
5: StackMap locals: java.net.DatagramSocket
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/DatagramChannelImpl;
1 6 1 socket Ljava/net/DatagramSocket;
public java.net.SocketAddress getLocalAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
invokestatic sun.nio.ch.Net.getRevealedLocalAddress:(Ljava/net/InetSocketAddress;)Ljava/net/InetSocketAddress;
aload 1
monitorexit
3: areturn
4: StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 3 4 any
4 5 4 any
Exceptions:
throws java.io.IOException
public java.net.SocketAddress getRemoteAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
aload 1
monitorexit
3: areturn
4: StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 3 4 any
4 5 4 any
Exceptions:
throws java.io.IOException
private java.net.ProtocolFamily familyFor(java.net.SocketOption<?>);
descriptor: (Ljava/net/SocketOption;)Ljava/net/ProtocolFamily;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
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 1
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.SocketOptionRegistry.findOption:(Ljava/net/SocketOption;Ljava/net/ProtocolFamily;)Lsun/nio/ch/OptionKey;
ifnull 3
2: getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 5
4: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 7
6: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 2
start local 2 8: aload 2
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifne 9
aload 2
instanceof java.net.Inet6Address
ifeq 10
9: StackMap locals: java.net.InetAddress
StackMap stack:
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
areturn
10: StackMap locals:
StackMap stack:
invokestatic sun.nio.ch.Net.canUseIPv6OptionsWithIPv4LocalAddress:()Z
ifeq 12
11: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
areturn
12: StackMap locals:
StackMap stack:
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/nio/ch/DatagramChannelImpl;
0 13 1 name Ljava/net/SocketOption<*>;
8 13 2 address Ljava/net/InetAddress;
Signature: (Ljava/net/SocketOption<*>;)Ljava/net/ProtocolFamily;
MethodParameters:
Name Flags
name
public <T> java.nio.channels.DatagramChannel setOption(java.net.SocketOption<T>, T);
descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/DatagramChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
2: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.net.SocketOption.type:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 5
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid value '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
6: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
7: aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.familyFor:(Ljava/net/SocketOption;)Ljava/net/ProtocolFamily;
astore 4
start local 4 8: aload 4
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
if_acmpeq 12
9: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 12
10: invokestatic sun.nio.ch.Net.shouldSetBothIPv4AndIPv6Options:()Z
ifeq 12
11: iconst_1
goto 13
StackMap locals: java.lang.Object java.net.ProtocolFamily
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 5
start local 5 14: aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
if_acmpne 33
15: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 16
aload 4
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
if_acmpne 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals: int
StackMap stack:
aload 2
checkcast java.net.NetworkInterface
astore 6
start local 6 17: aload 4
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 22
18: aload 6
invokevirtual java.net.NetworkInterface.getIndex:()I
istore 7
start local 7 19: iload 7
iconst_m1
if_icmpne 21
20: new java.io.IOException
dup
ldc "Network interface cannot be identified"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: java.net.NetworkInterface int
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 7
invokestatic sun.nio.ch.Net.setInterface6:(Ljava/io/FileDescriptor;I)V
end local 7 22: StackMap locals:
StackMap stack:
aload 4
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 23
iload 5
ifeq 31
23: StackMap locals:
StackMap stack:
aload 6
invokestatic sun.nio.ch.Net.anyInet4Address:(Ljava/net/NetworkInterface;)Ljava/net/Inet4Address;
astore 7
start local 7 24: aload 7
ifnull 29
25: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 7
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
invokestatic sun.nio.ch.Net.setInterface4:(Ljava/io/FileDescriptor;I)V
26: goto 31
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketOption java.lang.Object java.lang.Object java.net.ProtocolFamily int java.net.NetworkInterface java.net.Inet4Address
StackMap stack: java.io.IOException
27: astore 8
start local 8 28: aload 4
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 31
aload 8
athrow
end local 8 29: StackMap locals:
StackMap stack:
aload 4
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 31
30: new java.io.IOException
dup
ldc "Network interface not configured for IPv4"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 7 31: StackMap locals:
StackMap stack:
aload 0
aload 3
monitorexit
32: areturn
end local 6 33: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 37
34: invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 37
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 37
35: aload 0
iconst_1
putfield sun.nio.ch.DatagramChannelImpl.reuseAddressEmulated:Z
36: aload 0
aload 2
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.nio.ch.DatagramChannelImpl.isReuseAddress:Z
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
38: iload 5
ifeq 42
aload 4
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 42
39: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
40: goto 42
StackMap locals:
StackMap stack: java.io.IOException
41: pop
42: StackMap locals:
StackMap stack:
aload 0
aload 3
monitorexit
43: areturn
end local 5 end local 4 44: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketOption java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
45: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lsun/nio/ch/DatagramChannelImpl;
0 46 1 name Ljava/net/SocketOption<TT;>;
0 46 2 value TT;
8 44 4 family Ljava/net/ProtocolFamily;
14 44 5 needToSetIPv4Option Z
17 33 6 interf Ljava/net/NetworkInterface;
19 22 7 index I
24 31 7 target Ljava/net/Inet4Address;
28 29 8 ioe Ljava/io/IOException;
Exception table:
from to target type
25 26 27 Class java.io.IOException
39 40 41 Class java.io.IOException
6 32 44 any
33 43 44 any
44 45 44 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;TT;)Ljava/nio/channels/DatagramChannel;
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=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
2: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
5: aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.familyFor:(Ljava/net/SocketOption;)Ljava/net/ProtocolFamily;
astore 3
start local 3 6: aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
if_acmpne 27
7: aload 3
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 18
8: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.getInterface4:(Ljava/io/FileDescriptor;)I
istore 4
start local 4 9: iload 4
ifne 12
10: aload 2
monitorexit
11: aconst_null
areturn
12: StackMap locals: java.lang.Object java.net.ProtocolFamily int
StackMap stack:
iload 4
invokestatic sun.nio.ch.Net.inet4FromInt:(I)Ljava/net/InetAddress;
astore 5
start local 5 13: aload 5
invokestatic java.net.NetworkInterface.getByInetAddress:(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;
astore 6
start local 6 14: aload 6
ifnonnull 16
15: new java.io.IOException
dup
ldc "Unable to map address to interface"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: java.net.InetAddress java.net.NetworkInterface
StackMap stack:
aload 6
aload 2
monitorexit
17: areturn
end local 6 end local 5 end local 4 18: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.getInterface6:(Ljava/io/FileDescriptor;)I
istore 4
start local 4 19: iload 4
ifne 22
20: aload 2
monitorexit
21: aconst_null
areturn
22: StackMap locals: int
StackMap stack:
iload 4
invokestatic java.net.NetworkInterface.getByIndex:(I)Ljava/net/NetworkInterface;
astore 5
start local 5 23: aload 5
ifnonnull 25
24: new java.io.IOException
dup
ldc "Unable to map index to interface"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals: java.net.NetworkInterface
StackMap stack:
aload 5
aload 2
monitorexit
26: areturn
end local 5 end local 4 27: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 30
aload 0
getfield sun.nio.ch.DatagramChannelImpl.reuseAddressEmulated:Z
ifeq 30
28: aload 0
getfield sun.nio.ch.DatagramChannelImpl.isReuseAddress:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
monitorexit
29: areturn
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
aload 1
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
aload 2
monitorexit
31: areturn
end local 3 32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketOption java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
33: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/nio/ch/DatagramChannelImpl;
0 34 1 name Ljava/net/SocketOption<TT;>;
6 32 3 family Ljava/net/ProtocolFamily;
9 18 4 address I
13 18 5 ia Ljava/net/InetAddress;
14 18 6 ni Ljava/net/NetworkInterface;
19 27 4 index I
23 27 5 ni Ljava/net/NetworkInterface;
Exception table:
from to target type
4 11 32 any
12 17 32 any
18 21 32 any
22 26 32 any
27 29 32 any
30 31 32 any
32 33 32 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;)TT;
MethodParameters:
Name Flags
name
public final java.util.Set<java.net.SocketOption<?>> supportedOptions();
descriptor: ()Ljava/util/Set;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.DatagramChannelImpl$DefaultOptionsHolder.defaultOptions:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
Signature: ()Ljava/util/Set<Ljava/net/SocketOption<*>;>;
private java.net.SocketAddress beginRead(boolean, boolean);
descriptor: (ZZ)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.interruptible:Z
ifeq 2
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
astore 3
start local 3 5: aload 3
ifnonnull 7
iload 2
ifeq 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals: java.net.SocketAddress java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 9
8: aload 0
aconst_null
invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
9: StackMap locals:
StackMap stack:
iload 1
ifeq 11
10: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
11: StackMap locals:
StackMap stack:
aload 4
monitorexit
12: goto 15
end local 3 StackMap locals: sun.nio.ch.DatagramChannelImpl int int top java.lang.Object
StackMap stack: java.lang.Throwable
13: aload 4
monitorexit
14: athrow
start local 3 15: StackMap locals: sun.nio.ch.DatagramChannelImpl int int java.net.SocketAddress
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/DatagramChannelImpl;
0 16 1 blocking Z
0 16 2 mustBeConnected Z
5 13 3 remote Ljava/net/SocketAddress;
15 16 3 remote Ljava/net/SocketAddress;
Exception table:
from to target type
3 12 13 any
13 14 13 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
mustBeConnected
private void endRead(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 14
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmpne 5
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.tryFinishClose:()V
5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.interruptible:Z
ifeq 12
10: aload 0
iload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
11: goto 14
StackMap locals:
StackMap stack:
12: iload 2
ifne 14
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 14
13: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/DatagramChannelImpl;
0 15 1 blocking Z
0 15 2 completed Z
Exception table:
from to target type
2 6 7 any
7 8 7 any
Exceptions:
throws java.nio.channels.AsynchronousCloseException
MethodParameters:
Name Flags
blocking
completed
public java.net.SocketAddress receive(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "Read-only buffer"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 2
start local 2 4: aconst_null
astore 3
start local 3 5: aload 0
iload 2
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
astore 4
start local 4 6: aload 4
ifnull 7
iconst_1
goto 8
StackMap locals: int java.net.SocketAddress java.net.SocketAddress
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 5
start local 5 9: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 10: iload 5
ifne 11
aload 6
ifnonnull 20
11: StackMap locals: int java.lang.SecurityManager
StackMap stack:
aload 0
aload 1
iload 5
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 7
start local 7 12: iload 2
ifeq 17
13: goto 16
14: StackMap locals: int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
15: aload 0
aload 1
iload 5
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 7
16: StackMap locals:
StackMap stack:
iload 7
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 17
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 14
17: StackMap locals:
StackMap stack:
iload 7
iflt 21
18: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.sourceSocketAddress:()Ljava/net/InetSocketAddress;
astore 3
end local 7 19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.untrustedReceive:(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
astore 3
21: StackMap locals:
StackMap stack:
aload 3
astore 9
22: aload 0
iload 2
aload 3
ifnull 23
iconst_1
goto 24
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int java.net.SocketAddress java.net.SocketAddress int java.lang.SecurityManager top top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int
23: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int java.net.SocketAddress java.net.SocketAddress int java.lang.SecurityManager top top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
24: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
25: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: aload 9
areturn
end local 6 end local 5 end local 4 27: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 8
28: aload 0
iload 2
aload 3
ifnull 29
iconst_1
goto 30
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int java.net.SocketAddress top top top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
29: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int java.net.SocketAddress top top top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
30: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
31: aload 8
athrow
end local 3 end local 2 32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 10
33: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
34: aload 10
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/nio/ch/DatagramChannelImpl;
0 35 1 dst Ljava/nio/ByteBuffer;
4 32 2 blocking Z
5 32 3 sender Ljava/net/SocketAddress;
6 27 4 remote Ljava/net/SocketAddress;
9 27 5 connected Z
10 27 6 sm Ljava/lang/SecurityManager;
12 19 7 n I
Exception table:
from to target type
5 22 27 any
3 25 32 any
27 32 32 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
private java.net.SocketAddress untrustedReceive(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 4
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifeq 3
2: aload 2
ifnull 3
aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
ifnull 4
StackMap locals: java.lang.SecurityManager
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 3
start local 3 5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 4
start local 4 6: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
aload 0
aload 3
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 5
start local 5 7: iload 4
ifeq 12
8: goto 11
9: StackMap locals: int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
10: aload 0
aload 3
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 5
11: StackMap locals:
StackMap stack:
iload 5
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 12
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 9
12: StackMap locals:
StackMap stack:
iload 5
iflt 23
13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.sourceSocketAddress:()Ljava/net/InetSocketAddress;
astore 6
start local 6 14: aload 2
aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
15: aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
16: aload 1
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
17: aload 6
astore 8
18: aload 3
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
19: aload 8
areturn
20: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.SecurityManager java.nio.ByteBuffer int int java.net.InetSocketAddress
StackMap stack: java.lang.SecurityException
pop
21: aload 3
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
end local 6 22: goto 6
23: StackMap locals:
StackMap stack:
aload 3
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
24: aconst_null
areturn
end local 5 end local 4 25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.SecurityManager java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 7
26: aload 3
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
27: aload 7
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/nio/ch/DatagramChannelImpl;
0 28 1 dst Ljava/nio/ByteBuffer;
1 28 2 sm Ljava/lang/SecurityManager;
5 28 3 bb Ljava/nio/ByteBuffer;
6 25 4 blocking Z
7 25 5 n I
14 22 6 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
14 18 20 Class java.lang.SecurityException
5 18 25 any
20 23 25 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
java.net.SocketAddress blockingReceive(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)Ljava/net/SocketAddress;
flags: (0x0000)
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifne 4
3: new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 4
start local 4 5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
istore 5
start local 5 6: StackMap locals: java.lang.SecurityManager int
StackMap stack:
lload 2
lconst_0
lcmp
ifle 9
7: aload 0
aload 1
lload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.trustedBlockingReceive:(Ljava/nio/ByteBuffer;J)Ljava/net/SocketAddress;
astore 6
start local 6 8: goto 10
end local 6 9: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.trustedBlockingReceive:(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
astore 6
start local 6 10: StackMap locals: java.net.SocketAddress
StackMap stack:
aload 4
ifnull 16
iload 5
ifne 16
11: aload 6
checkcast java.net.InetSocketAddress
astore 7
start local 7 12: aload 4
aload 7
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 7
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
13: goto 16
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.lang.SecurityManager int java.net.SocketAddress java.net.InetSocketAddress
StackMap stack: java.lang.SecurityException
14: pop
15: aconst_null
astore 6
end local 7 16: StackMap locals:
StackMap stack:
aload 6
ifnull 6
17: aload 6
astore 9
18: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: aload 9
areturn
end local 6 end local 5 end local 4 20: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long
StackMap stack: java.lang.Throwable
astore 8
21: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
22: aload 8
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/nio/ch/DatagramChannelImpl;
0 23 1 dst Ljava/nio/ByteBuffer;
0 23 2 nanos J
5 20 4 sm Ljava/lang/SecurityManager;
6 20 5 connected Z
8 9 6 sender Ljava/net/SocketAddress;
10 20 6 sender Ljava/net/SocketAddress;
12 16 7 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
12 13 14 Class java.lang.SecurityException
1 18 20 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
nanos
private java.net.SocketAddress trustedBlockingReceive(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifeq 1
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aload 0
iconst_1
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
astore 3
start local 3 4: aload 3
ifnull 5
iconst_1
goto 6
StackMap locals: java.net.SocketAddress java.net.SocketAddress
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 4
start local 4 7: aload 0
aload 1
iload 4
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 5
start local 5 8: goto 11
9: StackMap locals: int int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
10: aload 0
aload 1
iload 4
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 5
11: StackMap locals:
StackMap stack:
iload 5
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 12
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 9
12: StackMap locals:
StackMap stack:
iload 5
iflt 14
13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.sourceSocketAddress:()Ljava/net/InetSocketAddress;
astore 2
14: StackMap locals:
StackMap stack:
aload 2
astore 7
15: aload 0
iconst_1
aload 2
ifnull 16
iconst_1
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.SocketAddress int int top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int
16: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.SocketAddress int int top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
17: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
18: aload 7
areturn
end local 5 end local 4 end local 3 19: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 6
20: aload 0
iconst_1
aload 2
ifnull 21
iconst_1
goto 22
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress top top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
21: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress top top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
22: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
23: aload 6
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/nio/ch/DatagramChannelImpl;
0 24 1 dst Ljava/nio/ByteBuffer;
3 24 2 sender Ljava/net/SocketAddress;
4 19 3 remote Ljava/net/SocketAddress;
7 19 4 connected Z
8 19 5 n I
Exception table:
from to target type
3 15 19 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
private java.net.SocketAddress trustedBlockingReceive(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=15, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifeq 1
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifne 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 3: aload 0
iconst_1
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
astore 5
start local 5 4: aload 5
ifnull 5
iconst_1
goto 6
StackMap locals: java.net.SocketAddress java.net.SocketAddress
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: aload 0
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.lockedConfigureBlocking:(Z)V
8: invokestatic java.lang.System.nanoTime:()J
lstore 7
start local 7 9: aload 0
aload 1
iload 6
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 9
start local 9 10: goto 16
11: StackMap locals: int long int
StackMap stack:
lload 2
invokestatic java.lang.System.nanoTime:()J
lload 7
lsub
lsub
lstore 10
start local 10 12: lload 10
lconst_0
lcmp
ifgt 14
13: new java.net.SocketTimeoutException
dup
ldc "Receive timed out"
invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: long
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
lload 10
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(IJ)V
15: aload 0
aload 1
iload 6
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
istore 9
end local 10 16: StackMap locals:
StackMap stack:
iload 9
bipush -2
if_icmpne 17
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 11
17: StackMap locals:
StackMap stack:
iload 9
iflt 19
18: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.sourceSocketAddress:()Ljava/net/InetSocketAddress;
astore 4
19: StackMap locals:
StackMap stack:
aload 4
astore 13
20: aload 0
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.tryLockedConfigureBlocking:(Z)Z
pop
21: aload 0
iconst_1
aload 4
ifnull 22
iconst_1
goto 23
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.net.SocketAddress java.net.SocketAddress int long int top top top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int
22: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.net.SocketAddress java.net.SocketAddress int long int top top top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
23: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
24: aload 13
areturn
end local 9 end local 7 25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.net.SocketAddress java.net.SocketAddress int
StackMap stack: java.lang.Throwable
astore 12
26: aload 0
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.tryLockedConfigureBlocking:(Z)Z
pop
27: aload 12
athrow
end local 6 end local 5 28: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 14
29: aload 0
iconst_1
aload 4
ifnull 30
iconst_1
goto 31
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.net.SocketAddress top top top top top top top top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
30: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer long java.net.SocketAddress top top top top top top top top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
31: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
32: aload 14
athrow
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/nio/ch/DatagramChannelImpl;
0 33 1 dst Ljava/nio/ByteBuffer;
0 33 2 nanos J
3 33 4 sender Ljava/net/SocketAddress;
4 28 5 remote Ljava/net/SocketAddress;
7 28 6 connected Z
9 25 7 startNanos J
10 25 9 n I
12 16 10 remainingNanos J
Exception table:
from to target type
8 20 25 any
3 21 28 any
25 28 28 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
nanos
private int receive(java.nio.ByteBuffer, boolean);
descriptor: (Ljava/nio/ByteBuffer;Z)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 3
start local 3 1: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 4
start local 4 2: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 3
iload 3
iload 4
if_icmple 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int int
StackMap stack:
iload 3
iload 4
if_icmpgt 4
iload 4
iload 3
isub
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 5
start local 5 6: aload 1
instanceof sun.nio.ch.DirectBuffer
ifeq 8
iload 5
ifle 8
7: aload 0
aload 1
iload 5
iload 3
iload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer:(Ljava/nio/ByteBuffer;IIZ)I
ireturn
8: StackMap locals: int
StackMap stack:
iload 5
iconst_1
invokestatic java.lang.Math.max:(II)I
istore 6
start local 6 9: iload 6
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 7
start local 7 10: aload 0
aload 7
iload 6
iconst_0
iload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer:(Ljava/nio/ByteBuffer;IIZ)I
istore 8
start local 8 11: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
12: iload 8
ifle 14
iload 5
ifle 14
13: aload 1
aload 7
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
14: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 8
istore 10
15: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
16: iload 10
ireturn
end local 8 17: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int int int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 9
18: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
19: aload 9
athrow
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 20 0 this Lsun/nio/ch/DatagramChannelImpl;
0 20 1 dst Ljava/nio/ByteBuffer;
0 20 2 connected Z
1 20 3 pos I
2 20 4 lim I
6 20 5 rem I
9 20 6 newSize I
10 20 7 bb Ljava/nio/ByteBuffer;
11 17 8 n I
Exception table:
from to target type
10 15 17 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
connected
private int receiveIntoNativeBuffer(java.nio.ByteBuffer, int, int, boolean);
descriptor: (Ljava/nio/ByteBuffer;IIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
1: aload 1
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 3
i2l
ladd
iload 2
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
invokevirtual sun.nio.ch.NativeSocketAddress.address:()J
3: iload 4
4: invokestatic sun.nio.ch.DatagramChannelImpl.receive0:(Ljava/io/FileDescriptor;JIJZ)I
istore 5
start local 5 5: iload 5
ifle 7
6: aload 1
iload 3
iload 5
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
7: StackMap locals: int
StackMap stack:
iload 5
ireturn
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 8 0 this Lsun/nio/ch/DatagramChannelImpl;
0 8 1 bb Ljava/nio/ByteBuffer;
0 8 2 rem I
0 8 3 pos I
0 8 4 connected Z
5 8 5 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bb
rem
pos
connected
private java.net.InetSocketAddress sourceSocketAddress();
descriptor: ()Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.cachedInetSocketAddress:Ljava/net/InetSocketAddress;
ifnull 3
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.cachedSockAddr:Lsun/nio/ch/NativeSocketAddress;
invokevirtual sun.nio.ch.NativeSocketAddress.equals:(Ljava/lang/Object;)Z
ifeq 3
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.cachedInetSocketAddress:Ljava/net/InetSocketAddress;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
invokevirtual sun.nio.ch.NativeSocketAddress.decode:()Ljava/net/InetSocketAddress;
astore 1
start local 1 4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.cachedSockAddr:Lsun/nio/ch/NativeSocketAddress;
astore 2
start local 2 5: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.cachedSockAddr:Lsun/nio/ch/NativeSocketAddress;
6: aload 0
aload 2
putfield sun.nio.ch.DatagramChannelImpl.sourceSockAddr:Lsun/nio/ch/NativeSocketAddress;
7: aload 0
aload 1
putfield sun.nio.ch.DatagramChannelImpl.cachedInetSocketAddress:Ljava/net/InetSocketAddress;
8: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/DatagramChannelImpl;
4 9 1 isa Ljava/net/InetSocketAddress;
5 9 2 tmp Lsun/nio/ch/NativeSocketAddress;
Exceptions:
throws java.io.IOException
public int send(java.nio.ByteBuffer, java.net.SocketAddress);
descriptor: (Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
astore 3
start local 3 2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 4
start local 4 4: iconst_0
istore 6
start local 6 5: aload 0
iload 4
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.beginWrite:(ZZ)Ljava/net/SocketAddress;
astore 7
start local 7 6: aload 7
ifnull 19
7: aload 2
aload 7
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 9
8: new java.nio.channels.AlreadyConnectedException
dup
invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
athrow
9: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int top int java.net.SocketAddress
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 5
start local 5 10: iload 4
ifeq 15
11: goto 14
12: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int int java.net.SocketAddress
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
13: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 5
14: StackMap locals:
StackMap stack:
iload 5
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 15
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 12
15: StackMap locals:
StackMap stack:
iload 5
ifle 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 6
18: goto 43
end local 5 19: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int top int java.net.SocketAddress
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 8
start local 8 20: aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 9
start local 9 21: aload 8
ifnull 26
22: aload 9
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifeq 25
23: aload 8
aload 9
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
24: goto 26
25: StackMap locals: java.lang.SecurityManager java.net.InetAddress
StackMap stack:
aload 8
aload 9
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
26: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.net.InetAddress.isLinkLocalAddress:()Z
ifeq 28
27: aload 3
invokestatic sun.net.util.IPAddressUtil.toScopedAddress:(Ljava/net/InetSocketAddress;)Ljava/net/InetSocketAddress;
astore 3
28: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
ifne 30
29: new java.net.SocketException
dup
ldc "Can't send to port 0"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.send:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
istore 5
start local 5 31: iload 4
ifeq 36
32: goto 35
33: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int int java.net.SocketAddress java.lang.SecurityManager java.net.InetAddress
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
34: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.send:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
istore 5
35: StackMap locals:
StackMap stack:
iload 5
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 36
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 33
36: StackMap locals:
StackMap stack:
iload 5
iflt 37
iconst_1
goto 38
StackMap locals:
StackMap stack:
37: iconst_0
StackMap locals:
StackMap stack: int
38: istore 6
end local 9 end local 8 end local 7 39: goto 43
end local 5 StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int top int
StackMap stack: java.lang.Throwable
40: astore 10
41: aload 0
iload 4
iload 6
invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
42: aload 10
athrow
start local 5 43: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int int
StackMap stack:
aload 0
iload 4
iload 6
invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
44: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 45
iload 5
ifge 45
iload 5
bipush -2
if_icmpeq 45
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
45: StackMap locals:
StackMap stack:
iload 5
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 12
46: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
47: iload 12
ireturn
end local 6 end local 5 end local 4 48: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress
StackMap stack: java.lang.Throwable
astore 11
49: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
50: aload 11
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lsun/nio/ch/DatagramChannelImpl;
0 51 1 src Ljava/nio/ByteBuffer;
0 51 2 target Ljava/net/SocketAddress;
2 51 3 isa Ljava/net/InetSocketAddress;
4 48 4 blocking Z
10 19 5 n I
31 40 5 n I
43 48 5 n I
5 48 6 completed Z
6 39 7 remote Ljava/net/SocketAddress;
20 39 8 sm Ljava/lang/SecurityManager;
21 39 9 ia Ljava/net/InetAddress;
Exception table:
from to target type
5 40 40 any
3 46 48 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
target
void blockingSend(java.nio.ByteBuffer, java.net.SocketAddress);
descriptor: (Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifne 4
3: new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.send:(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I
pop
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 3
7: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/DatagramChannelImpl;
0 11 1 src Ljava/nio/ByteBuffer;
0 11 2 target Ljava/net/SocketAddress;
Exception table:
from to target type
1 6 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
target
private int send(java.io.FileDescriptor, java.nio.ByteBuffer, java.net.InetSocketAddress);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof sun.nio.ch.DirectBuffer
ifeq 2
1: aload 0
aload 1
aload 2
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 4
start local 4 3: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5
start local 5 4: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 5
iload 4
iload 5
if_icmple 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: int int
StackMap stack:
iload 4
iload 5
if_icmpgt 6
iload 5
iload 4
isub
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 6
start local 6 8: iload 6
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 7
start local 7 9: aload 7
aload 2
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
10: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
11: aload 2
iload 4
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
12: aload 0
aload 1
aload 7
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
istore 8
start local 8 13: iload 8
ifle 15
14: aload 2
iload 4
iload 8
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
15: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 8
istore 10
16: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
17: iload 10
ireturn
end local 8 18: StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 9
19: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
20: aload 9
athrow
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 21 0 this Lsun/nio/ch/DatagramChannelImpl;
0 21 1 fd Ljava/io/FileDescriptor;
0 21 2 src Ljava/nio/ByteBuffer;
0 21 3 target Ljava/net/InetSocketAddress;
3 21 4 pos I
4 21 5 lim I
8 21 6 rem I
9 21 7 bb Ljava/nio/ByteBuffer;
13 18 8 n I
Exception table:
from to target type
9 16 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
src
target
private int sendFromNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, java.net.InetSocketAddress);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 4
start local 4 1: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5
start local 5 2: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 3
iload 4
iload 5
if_icmple 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int int
StackMap stack:
iload 4
iload 5
if_icmpgt 4
iload 5
iload 4
isub
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 6
start local 6 6: aload 0
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.targetSocketAddress:(Ljava/net/InetSocketAddress;)I
istore 8
start local 8 7: aload 1
aload 2
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 4
i2l
ladd
iload 6
8: aload 0
getfield sun.nio.ch.DatagramChannelImpl.targetSockAddr:Lsun/nio/ch/NativeSocketAddress;
invokevirtual sun.nio.ch.NativeSocketAddress.address:()J
iload 8
9: invokestatic sun.nio.ch.DatagramChannelImpl.send0:(Ljava/io/FileDescriptor;JIJI)I
istore 7
end local 8 start local 7 10: goto 15
end local 7 StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int
StackMap stack: java.net.PortUnreachableException
11: astore 8
start local 8 12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifeq 14
13: aload 8
athrow
14: StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int top java.net.PortUnreachableException
StackMap stack:
iload 6
istore 7
end local 8 start local 7 15: StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int int
StackMap stack:
iload 7
ifle 17
16: aload 2
iload 4
iload 7
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
17: StackMap locals:
StackMap stack:
iload 7
ireturn
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 18 0 this Lsun/nio/ch/DatagramChannelImpl;
0 18 1 fd Ljava/io/FileDescriptor;
0 18 2 bb Ljava/nio/ByteBuffer;
0 18 3 target Ljava/net/InetSocketAddress;
1 18 4 pos I
2 18 5 lim I
6 18 6 rem I
10 11 7 written I
15 18 7 written I
7 10 8 addressLen I
12 15 8 pue Ljava/net/PortUnreachableException;
Exception table:
from to target type
6 10 11 Class java.net.PortUnreachableException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bb
target
private int targetSocketAddress(java.net.InetSocketAddress);
descriptor: (Ljava/net/InetSocketAddress;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.previousTarget:Ljava/net/InetSocketAddress;
if_acmpne 3
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.previousSockAddrLength:I
ireturn
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.previousTarget:Ljava/net/InetSocketAddress;
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.targetSockAddr:Lsun/nio/ch/NativeSocketAddress;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
aload 1
invokevirtual sun.nio.ch.NativeSocketAddress.encode:(Ljava/net/ProtocolFamily;Ljava/net/InetSocketAddress;)I
istore 2
start local 2 5: aload 0
aload 1
putfield sun.nio.ch.DatagramChannelImpl.previousTarget:Ljava/net/InetSocketAddress;
6: aload 0
iload 2
putfield sun.nio.ch.DatagramChannelImpl.previousSockAddrLength:I
7: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/DatagramChannelImpl;
0 8 1 isa Ljava/net/InetSocketAddress;
5 8 2 len I
MethodParameters:
Name Flags
isa
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: aload 0
iload 2
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
pop
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 3
6: iload 2
ifeq 18
7: goto 10
8: StackMap locals: int int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
9: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 3
10: StackMap locals:
StackMap stack:
iload 3
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 18
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 8
11: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 4
13: aload 0
iload 2
iload 3
ifle 14
iconst_1
goto 15
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
14: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
15: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
16: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 17
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 4
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 19
iconst_1
goto 20
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
20: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
21: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 22
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
23: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: iload 6
ireturn
end local 3 end local 2 25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
26: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/nio/ch/DatagramChannelImpl;
0 28 1 buf Ljava/nio/ByteBuffer;
3 25 2 blocking Z
4 25 3 n I
Exception table:
from to target type
4 12 12 any
2 23 25 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
public long read(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 4
start local 4 3: lconst_0
lstore 5
start local 5 4: aload 0
iload 4
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
pop
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
iload 2
iload 3
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lstore 5
6: iload 4
ifeq 18
7: goto 10
8: StackMap locals: int long
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
9: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
iload 2
iload 3
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lstore 5
10: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 18
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 8
11: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 7
13: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 14
iconst_1
goto 15
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
14: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
15: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
16: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 17
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 7
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 19
iconst_1
goto 20
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.DatagramChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
20: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
21: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 22
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
23: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: lload 9
lreturn
end local 5 end local 4 25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 8
26: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: aload 8
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/nio/ch/DatagramChannelImpl;
0 28 1 dsts [Ljava/nio/ByteBuffer;
0 28 2 offset I
0 28 3 length I
3 25 4 blocking Z
4 25 5 n J
Exception table:
from to target type
4 12 12 any
2 23 25 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dsts
offset
length
private java.net.SocketAddress beginWrite(boolean, boolean);
descriptor: (ZZ)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.interruptible:Z
ifeq 2
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
astore 3
start local 3 5: aload 3
ifnonnull 7
iload 2
ifeq 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals: java.net.SocketAddress java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 9
8: aload 0
aconst_null
invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
9: StackMap locals:
StackMap stack:
iload 1
ifeq 11
10: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
11: StackMap locals:
StackMap stack:
aload 4
monitorexit
12: goto 15
end local 3 StackMap locals: sun.nio.ch.DatagramChannelImpl int int top java.lang.Object
StackMap stack: java.lang.Throwable
13: aload 4
monitorexit
14: athrow
start local 3 15: StackMap locals: sun.nio.ch.DatagramChannelImpl int int java.net.SocketAddress
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/DatagramChannelImpl;
0 16 1 blocking Z
0 16 2 mustBeConnected Z
5 13 3 remote Ljava/net/SocketAddress;
15 16 3 remote Ljava/net/SocketAddress;
Exception table:
from to target type
3 12 13 any
13 14 13 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
mustBeConnected
private void endWrite(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 14
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmpne 5
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.tryFinishClose:()V
5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.interruptible:Z
ifeq 12
10: aload 0
iload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
11: goto 14
StackMap locals:
StackMap stack:
12: iload 2
ifne 14
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 14
13: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/DatagramChannelImpl;
0 15 1 blocking Z
0 15 2 completed Z
Exception table:
from to target type
2 6 7 any
7 8 7 any
Exceptions:
throws java.nio.channels.AsynchronousCloseException
MethodParameters:
Name Flags
blocking
completed
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: aload 0
iload 2
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.beginWrite:(ZZ)Ljava/net/SocketAddress;
pop
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 3
6: iload 2
ifeq 18
7: goto 10
8: StackMap locals: int int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
9: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 3
10: StackMap locals:
StackMap stack:
iload 3
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 18
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 8
11: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 4
13: aload 0
iload 2
iload 3
ifle 14
iconst_1
goto 15
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
14: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
15: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
16: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 17
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 4
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 19
iconst_1
goto 20
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
20: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
21: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 22
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
23: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: iload 6
ireturn
end local 3 end local 2 25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
26: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/nio/ch/DatagramChannelImpl;
0 28 1 buf Ljava/nio/ByteBuffer;
3 25 2 blocking Z
4 25 3 n I
Exception table:
from to target type
4 12 12 any
2 23 25 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 4
start local 4 3: lconst_0
lstore 5
start local 5 4: aload 0
iload 4
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.beginWrite:(ZZ)Ljava/net/SocketAddress;
pop
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
iload 2
iload 3
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lstore 5
6: iload 4
ifeq 18
7: goto 10
8: StackMap locals: int long
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.DatagramChannelImpl.park:(I)V
9: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
iload 2
iload 3
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lstore 5
10: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 18
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 8
11: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 7
13: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 14
iconst_1
goto 15
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
14: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
15: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
16: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 17
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 7
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 19
iconst_1
goto 20
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.DatagramChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.DatagramChannelImpl int int
20: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
21: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 22
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
23: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: lload 9
lreturn
end local 5 end local 4 25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 8
26: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: aload 8
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/nio/ch/DatagramChannelImpl;
0 28 1 srcs [Ljava/nio/ByteBuffer;
0 28 2 offset I
0 28 3 length I
3 25 4 blocking Z
4 25 5 n J
Exception table:
from to target type
4 12 12 any
2 23 25 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offset
length
protected void implConfigureBlocking(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
iload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.lockedConfigureBlocking:(Z)V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 2
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 3
10: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: aload 3
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/nio/ch/DatagramChannelImpl;
0 14 1 block Z
Exception table:
from to target type
2 4 4 any
1 9 9 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
private void lockedConfigureBlocking(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
4: aload 2
monitorexit
5: goto 8
StackMap locals: sun.nio.ch.DatagramChannelImpl int java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/DatagramChannelImpl;
0 9 1 block Z
Exception table:
from to target type
2 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
private boolean tryLockedConfigureBlocking(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifeq 6
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
4: aload 2
monitorexit
5: iconst_1
ireturn
6: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
9: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/DatagramChannelImpl;
0 10 1 block Z
Exception table:
from to target type
2 5 8 any
6 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
java.net.InetSocketAddress localAddress();
descriptor: ()Ljava/net/InetSocketAddress;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
aload 1
monitorexit
2: areturn
3: StackMap locals: sun.nio.ch.DatagramChannelImpl 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 Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 2 3 any
3 4 3 any
java.net.InetSocketAddress remoteAddress();
descriptor: ()Ljava/net/InetSocketAddress;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
aload 1
monitorexit
2: areturn
3: StackMap locals: sun.nio.ch.DatagramChannelImpl 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 Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public java.nio.channels.DatagramChannel bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 6
5: new java.nio.channels.AlreadyBoundException
dup
invokespecial java.nio.channels.AlreadyBoundException.<init>:()V
athrow
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
7: aload 2
monitorexit
8: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 3
12: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: aload 3
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
15: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 4
17: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 4
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
20: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/nio/ch/DatagramChannelImpl;
0 21 1 local Ljava/net/SocketAddress;
Exception table:
from to target type
3 8 9 any
9 10 9 any
2 11 11 any
1 16 16 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
private void bindInternal(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 8
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 6
4: new java.net.InetSocketAddress
dup
ldc "0.0.0.0"
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
astore 2
start local 2 5: goto 9
end local 2 6: StackMap locals:
StackMap stack:
new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
astore 2
start local 2 7: goto 9
end local 2 8: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
astore 2
start local 2 9: StackMap locals: java.net.InetSocketAddress
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 10: aload 3
ifnull 12
11: aload 3
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
12: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
13: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/DatagramChannelImpl;
0 15 1 local Ljava/net/SocketAddress;
5 6 2 isa Ljava/net/InetSocketAddress;
7 8 2 isa Ljava/net/InetSocketAddress;
9 15 2 isa Ljava/net/InetSocketAddress;
10 15 3 sm Ljava/lang/SecurityManager;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
public boolean isConnected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_1
if_icmpne 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
monitorexit
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
public java.nio.channels.DatagramChannel connect(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.connect:(Ljava/net/SocketAddress;Z)Ljava/nio/channels/DatagramChannel;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
0 1 1 sa Ljava/net/SocketAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sa
java.nio.channels.DatagramChannel connect(java.net.SocketAddress, boolean);
descriptor: (Ljava/net/SocketAddress;Z)Ljava/nio/channels/DatagramChannel;
flags: (0x0000)
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
astore 3
start local 3 1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 4
start local 4 2: aload 4
ifnull 9
3: aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 5
start local 5 4: aload 5
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifeq 7
5: aload 4
aload 5
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
6: goto 9
7: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress
StackMap stack:
aload 4
aload 5
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
8: aload 4
aload 5
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
end local 5 9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
10: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
11: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
13: iload 2
ifeq 15
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_1
if_icmpne 15
14: new java.nio.channels.AlreadyConnectedException
dup
invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
athrow
15: StackMap locals: java.lang.Object
StackMap stack:
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
ifne 17
16: new java.net.SocketException
dup
ldc "Can't connect to port 0"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 19
18: aload 0
aconst_null
invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
19: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.initialLocalAddress:Ljava/net/InetSocketAddress;
20: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
21: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
22: aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
23: aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
24: invokestatic sun.nio.ch.Net.connect:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
istore 6
start local 6 25: iload 6
ifgt 27
26: new java.lang.Error
dup
invokespecial java.lang.Error.<init>:()V
athrow
27: StackMap locals: int
StackMap stack:
aload 0
aload 3
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
28: aload 0
iconst_1
putfield sun.nio.ch.DatagramChannelImpl.state:I
29: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
30: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 7
start local 7 31: iload 7
ifeq 33
32: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
33: StackMap locals: int
StackMap stack:
bipush 100
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 8
start local 8 34: goto 36
35: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 8
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
pop
36: StackMap locals:
StackMap stack:
aload 0
aload 8
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;Z)I
ifge 35
end local 8 37: goto 42
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress int java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int int
StackMap stack: java.lang.Throwable
38: astore 9
39: iload 7
ifeq 41
40: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
41: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress int java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int int top java.lang.Throwable
StackMap stack:
aload 9
athrow
42: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress int java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int int
StackMap stack:
iload 7
ifeq 44
43: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
end local 7 end local 6 44: StackMap locals:
StackMap stack:
aload 5
monitorexit
45: goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
46: aload 5
monitorexit
47: athrow
48: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress int java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack: java.lang.Throwable
astore 10
49: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
50: aload 10
athrow
51: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
52: goto 56
StackMap locals:
StackMap stack: java.lang.Throwable
53: astore 11
54: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
55: aload 11
athrow
56: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
57: aload 0
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 58 0 this Lsun/nio/ch/DatagramChannelImpl;
0 58 1 sa Ljava/net/SocketAddress;
0 58 2 check Z
1 58 3 isa Ljava/net/InetSocketAddress;
2 58 4 sm Ljava/lang/SecurityManager;
4 9 5 ia Ljava/net/InetAddress;
25 44 6 n I
31 44 7 blocking Z
34 37 8 buf Ljava/nio/ByteBuffer;
Exception table:
from to target type
33 38 38 any
12 45 46 any
46 47 46 any
11 48 48 any
10 53 53 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sa
check
public java.nio.channels.DatagramChannel disconnect();
descriptor: ()Ljava/nio/channels/DatagramChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifeq 4
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_1
if_icmpeq 8
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
astore 5
aload 1
monitorexit
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 5
areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 2
start local 2 11: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 2
invokestatic sun.nio.ch.DatagramChannelImpl.disconnect0:(Ljava/io/FileDescriptor;Z)V
12: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
13: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.state:I
14: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
15: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.initialLocalAddress:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.equals:(Ljava/lang/Object;)Z
ifne 24
16: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.initialLocalAddress:Ljava/net/InetSocketAddress;
invokevirtual sun.nio.ch.DatagramChannelImpl.repairSocket:(Ljava/net/InetSocketAddress;)V
17: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 24
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 20
18: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.equals:(Ljava/lang/Object;)Z
ifeq 20
19: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.initialLocalAddress:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.equals:(Ljava/lang/Object;)Z
ifne 24
StackMap locals: int
StackMap stack:
20: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
22: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.initialLocalAddress:Ljava/net/InetSocketAddress;
23: aload 3
athrow
24: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.initialLocalAddress:Ljava/net/InetSocketAddress;
end local 2 25: aload 1
monitorexit
26: goto 32
StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
27: aload 1
monitorexit
28: athrow
29: StackMap locals: sun.nio.ch.DatagramChannelImpl
StackMap stack: java.lang.Throwable
astore 4
30: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
31: aload 4
athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: goto 37
StackMap locals:
StackMap stack: java.lang.Throwable
34: astore 6
35: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
36: aload 6
athrow
37: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
38: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/nio/ch/DatagramChannelImpl;
11 25 2 isIPv6 Z
Exception table:
from to target type
15 21 21 any
3 5 27 any
8 26 27 any
27 28 27 any
2 5 29 any
8 29 29 any
1 6 34 any
8 34 34 any
Exceptions:
throws java.io.IOException
private void repairSocket(java.net.InetSocketAddress);
descriptor: (Ljava/net/InetSocketAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
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
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.getPort:()I
ifne 6
2: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 3
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 1
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 1
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
4: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
5: return
6: StackMap locals:
StackMap stack:
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 7: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map top java.util.Iterator
StackMap stack:
8: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.SocketOption
astore 3
start local 3 9: aload 0
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.getOption:(Ljava/net/SocketOption;)Ljava/lang/Object;
astore 5
start local 5 10: aload 5
ifnull 12
11: aload 2
aload 3
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 3 12: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
iconst_0
invokestatic sun.nio.ch.Net.socket:(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
astore 3
start local 3 14: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 22
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor top java.util.Iterator
StackMap stack:
15: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 16: aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.net.SocketOption
astore 6
start local 6 17: aload 6
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.SocketOptionRegistry.findOption:(Ljava/net/SocketOption;Ljava/net/ProtocolFamily;)Lsun/nio/ch/OptionKey;
ifnull 22
18: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 7
start local 7 19: aload 3
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 6
aload 7
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
20: goto 22
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor java.util.Map$Entry java.util.Iterator java.net.SocketOption java.lang.Object
StackMap stack: java.io.IOException
21: pop
end local 7 end local 6 end local 4 22: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
23: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifne 25
24: aload 3
iconst_0
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
25: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 3
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.dup:(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V
26: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 8
28: getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 3
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
29: aload 8
athrow
30: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 3
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
31: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 1
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
32: goto 36
StackMap locals:
StackMap stack: java.io.IOException
33: astore 4
start local 4 34: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
35: aload 4
athrow
end local 4 36: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
37: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 44
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor top java.util.Iterator
StackMap stack:
38: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 39: aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.net.SocketOption
astore 6
start local 6 40: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
astore 7
start local 7 41: aload 0
aload 6
aload 7
invokevirtual sun.nio.ch.DatagramChannelImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/DatagramChannel;
pop
42: goto 44
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor java.util.Map$Entry java.util.Iterator java.net.SocketOption java.lang.Object
StackMap stack: java.io.IOException
43: pop
end local 7 end local 6 end local 4 44: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 38
45: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
astore 4
start local 4 46: aload 4
ifnull 48
47: aload 4
aload 0
invokedynamic accept(Lsun/nio/ch/DatagramChannelImpl;)Lsun/nio/ch/MembershipRegistry$ThrowingConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/nio/ch/DatagramChannelImpl.lambda$0(Lsun/nio/ch/MembershipKeyImpl;)V (7)
(Lsun/nio/ch/MembershipKeyImpl;)V
invokevirtual sun.nio.ch.MembershipRegistry.forEach:(Lsun/nio/ch/MembershipRegistry$ThrowingConsumer;)V
48: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetSocketAddress java.util.Map java.io.FileDescriptor sun.nio.ch.MembershipRegistry
StackMap stack:
aload 0
invokedynamic accept()Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/nio/ch/SelectionKeyImpl.reset()V (5)
(Lsun/nio/ch/SelectionKeyImpl;)V
invokestatic sun.nio.ch.DatagramChannelImpl$AbstractSelectableChannels.forEach:(Ljava/nio/channels/spi/AbstractSelectableChannel;Ljava/util/function/Consumer;)V
49: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lsun/nio/ch/DatagramChannelImpl;
0 50 1 target Ljava/net/InetSocketAddress;
7 50 2 map Ljava/util/Map<Ljava/net/SocketOption<*>;Ljava/lang/Object;>;
9 12 3 option Ljava/net/SocketOption<*>;
10 12 5 value Ljava/lang/Object;
14 50 3 newfd Ljava/io/FileDescriptor;
16 22 4 e Ljava/util/Map$Entry<Ljava/net/SocketOption<*>;Ljava/lang/Object;>;
17 22 6 option Ljava/net/SocketOption<*>;
19 22 7 value Ljava/lang/Object;
34 36 4 ioe Ljava/io/IOException;
39 44 4 e Ljava/util/Map$Entry<Ljava/net/SocketOption<*>;Ljava/lang/Object;>;
40 44 6 option Ljava/net/SocketOption<Ljava/lang/Object;>;
41 44 7 value Ljava/lang/Object;
46 50 4 registry Lsun/nio/ch/MembershipRegistry;
Exception table:
from to target type
19 20 21 Class java.io.IOException
14 27 27 any
31 32 33 Class java.io.IOException
41 42 43 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
target
private java.nio.channels.MembershipKey innerJoin(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Group not a multicast address"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.net.Inet4Address
ifeq 5
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 9
invokestatic sun.nio.ch.Net.canIPv6SocketJoinIPv4Group:()Z
ifne 9
4: new java.lang.IllegalArgumentException
dup
ldc "IPv6 socket cannot join IPv4 multicast group"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
instanceof java.net.Inet6Address
ifeq 8
6: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpeq 9
7: new java.lang.IllegalArgumentException
dup
ldc "Only IPv6 sockets can join IPv6 multicast group"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Address type not supported"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 3
ifnull 16
10: aload 3
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 12
11: new java.lang.IllegalArgumentException
dup
ldc "Source address is a wildcard address"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifeq 14
13: new java.lang.IllegalArgumentException
dup
ldc "Source address is multicast address"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpeq 16
15: new java.lang.IllegalArgumentException
dup
ldc "Source address is different type to group"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 4
start local 4 17: aload 4
ifnull 19
18: aload 4
aload 1
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
19: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
20: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
21: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
ifnonnull 24
22: aload 0
new sun.nio.ch.MembershipRegistry
dup
invokespecial sun.nio.ch.MembershipRegistry.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
23: goto 28
24: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
aload 1
aload 2
aload 3
invokevirtual sun.nio.ch.MembershipRegistry.checkMembership:(Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
astore 6
start local 6 25: aload 6
ifnull 28
26: aload 6
aload 5
monitorexit
27: areturn
end local 6 28: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 44
29: aload 1
instanceof java.net.Inet6Address
ifne 30
invokestatic sun.nio.ch.Net.canJoin6WithIPv4Group:()Z
ifeq 44
30: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.net.NetworkInterface.getIndex:()I
istore 7
start local 7 31: iload 7
iconst_m1
if_icmpne 33
32: new java.io.IOException
dup
ldc "Network interface cannot be identified"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
33: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetAddress java.net.NetworkInterface java.net.InetAddress java.lang.SecurityManager java.lang.Object top int
StackMap stack:
aload 1
invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
astore 8
start local 8 34: aload 3
ifnonnull 35
aconst_null
goto 36
35: StackMap locals: byte[]
StackMap stack:
aload 3
invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
36: StackMap locals:
StackMap stack: byte[]
astore 9
start local 9 37: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 8
iload 7
aload 9
invokestatic sun.nio.ch.Net.join6:(Ljava/io/FileDescriptor;[BI[B)I
istore 10
start local 10 38: iload 10
bipush -2
if_icmpne 40
39: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
40: StackMap locals: byte[] int
StackMap stack:
new sun.nio.ch.MembershipKeyImpl$Type6
dup
aload 0
aload 1
aload 2
aload 3
41: aload 8
iload 7
aload 9
42: invokespecial sun.nio.ch.MembershipKeyImpl$Type6.<init>:(Ljava/nio/channels/MulticastChannel;Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;[BI[B)V
astore 6
end local 10 end local 9 end local 8 end local 7 start local 6 43: goto 58
end local 6 44: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetAddress java.net.NetworkInterface java.net.InetAddress java.lang.SecurityManager java.lang.Object
StackMap stack:
aload 2
invokestatic sun.nio.ch.Net.anyInet4Address:(Ljava/net/NetworkInterface;)Ljava/net/Inet4Address;
astore 7
start local 7 45: aload 7
ifnonnull 47
46: new java.io.IOException
dup
ldc "Network interface not configured for IPv4"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetAddress java.net.NetworkInterface java.net.InetAddress java.lang.SecurityManager java.lang.Object top java.net.Inet4Address
StackMap stack:
aload 1
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
istore 8
start local 8 48: aload 7
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
istore 9
start local 9 49: aload 3
ifnonnull 50
iconst_0
goto 51
StackMap locals: int int
StackMap stack:
50: aload 3
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
StackMap locals:
StackMap stack: int
51: istore 10
start local 10 52: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 8
iload 9
iload 10
invokestatic sun.nio.ch.Net.join4:(Ljava/io/FileDescriptor;III)I
istore 11
start local 11 53: iload 11
bipush -2
if_icmpne 55
54: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
55: StackMap locals: int int
StackMap stack:
new sun.nio.ch.MembershipKeyImpl$Type4
dup
aload 0
aload 1
aload 2
aload 3
56: iload 8
iload 9
iload 10
57: invokespecial sun.nio.ch.MembershipKeyImpl$Type4.<init>:(Ljava/nio/channels/MulticastChannel;Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;III)V
astore 6
end local 11 end local 10 end local 9 end local 8 end local 7 start local 6 58: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetAddress java.net.NetworkInterface java.net.InetAddress java.lang.SecurityManager java.lang.Object sun.nio.ch.MembershipKeyImpl
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
aload 6
invokevirtual sun.nio.ch.MembershipRegistry.add:(Lsun/nio/ch/MembershipKeyImpl;)V
59: aload 6
aload 5
monitorexit
60: areturn
end local 6 61: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetAddress java.net.NetworkInterface java.net.InetAddress java.lang.SecurityManager java.lang.Object
StackMap stack: java.lang.Throwable
aload 5
monitorexit
62: athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 63 0 this Lsun/nio/ch/DatagramChannelImpl;
0 63 1 group Ljava/net/InetAddress;
0 63 2 interf Ljava/net/NetworkInterface;
0 63 3 source Ljava/net/InetAddress;
17 63 4 sm Ljava/lang/SecurityManager;
25 28 6 key Ljava/nio/channels/MembershipKey;
43 44 6 key Lsun/nio/ch/MembershipKeyImpl;
58 61 6 key Lsun/nio/ch/MembershipKeyImpl;
31 43 7 index I
34 43 8 groupAddress [B
37 43 9 sourceAddress [B
38 43 10 n I
45 58 7 target Ljava/net/Inet4Address;
48 58 8 groupAddress I
49 58 9 targetAddress I
52 58 10 sourceAddress I
53 58 11 n I
Exception table:
from to target type
20 27 61 any
28 60 61 any
61 62 61 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
group
interf
source
public java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface);
descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;)Ljava/nio/channels/MembershipKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
invokevirtual sun.nio.ch.DatagramChannelImpl.innerJoin:(Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
0 1 1 group Ljava/net/InetAddress;
0 1 2 interf Ljava/net/NetworkInterface;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
group
interf
public java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface, java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
aload 2
aload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.innerJoin:(Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/DatagramChannelImpl;
0 2 1 group Ljava/net/InetAddress;
0 2 2 interf Ljava/net/NetworkInterface;
0 2 3 source Ljava/net/InetAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
group
interf
source
void drop(sun.nio.ch.MembershipKeyImpl);
descriptor: (Lsun/nio/ch/MembershipKeyImpl;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.channel:()Ljava/nio/channels/MulticastChannel;
aload 0
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.isValid:()Z
ifne 5
3: aload 2
monitorexit
4: return
5: StackMap locals: java.lang.Object
StackMap stack:
aload 1
instanceof sun.nio.ch.MembershipKeyImpl$Type6
ifeq 10
6: aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type6
7: astore 3
start local 3 8: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
aload 3
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
aload 3
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.source:()[B
invokestatic sun.nio.ch.Net.drop6:(Ljava/io/FileDescriptor;[BI[B)V
end local 3 9: goto 17
10: StackMap locals:
StackMap stack:
aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type4
astore 3
start local 3 11: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
aload 3
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
12: aload 3
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.source:()I
13: invokestatic sun.nio.ch.Net.drop4:(Ljava/io/FileDescriptor;III)V
end local 3 14: goto 17
StackMap locals:
StackMap stack: java.io.IOException
15: astore 3
start local 3 16: new java.lang.AssertionError
dup
aload 3
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 17: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.invalidate:()V
18: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
aload 1
invokevirtual sun.nio.ch.MembershipRegistry.remove:(Lsun/nio/ch/MembershipKeyImpl;)V
19: aload 2
monitorexit
20: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
21: aload 2
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/nio/ch/DatagramChannelImpl;
0 24 1 key Lsun/nio/ch/MembershipKeyImpl;
8 9 3 key6 Lsun/nio/ch/MembershipKeyImpl$Type6;
11 14 3 key4 Lsun/nio/ch/MembershipKeyImpl$Type4;
16 17 3 ioe Ljava/io/IOException;
Exception table:
from to target type
5 14 15 Class java.io.IOException
2 4 21 any
5 20 21 any
21 22 21 any
MethodParameters:
Name Flags
key
java.nio.channels.MembershipKey findMembership(java.net.InetAddress, java.net.NetworkInterface);
descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;)Ljava/nio/channels/MembershipKey;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
ifnull 4
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
aload 1
aload 2
aconst_null
invokevirtual sun.nio.ch.MembershipRegistry.checkMembership:(Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
aload 3
monitorexit
3: areturn
4: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
5: aconst_null
areturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
7: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/DatagramChannelImpl;
0 8 1 group Ljava/net/InetAddress;
0 8 2 interf Ljava/net/NetworkInterface;
Exception table:
from to target type
1 3 6 any
4 5 6 any
6 7 6 any
MethodParameters:
Name Flags
group
interf
void block(sun.nio.ch.MembershipKeyImpl, java.net.InetAddress);
descriptor: (Lsun/nio/ch/MembershipKeyImpl;Ljava/net/InetAddress;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.channel:()Ljava/nio/channels/MulticastChannel;
aload 0
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.sourceAddress:()Ljava/net/InetAddress;
ifnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.isValid:()Z
ifne 5
4: new java.lang.IllegalStateException
dup
ldc "key is no longer valid"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Object
StackMap stack:
aload 2
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 7
6: new java.lang.IllegalArgumentException
dup
ldc "Source address is a wildcard address"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifeq 9
8: new java.lang.IllegalArgumentException
dup
ldc "Source address is multicast address"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.group:()Ljava/net/InetAddress;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpeq 11
10: new java.lang.IllegalArgumentException
dup
ldc "Source address is different type to group"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 1
instanceof sun.nio.ch.MembershipKeyImpl$Type6
ifeq 18
12: aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type6
13: astore 5
start local 5 14: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 5
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
aload 5
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
15: aload 2
invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
16: invokestatic sun.nio.ch.Net.block6:(Ljava/io/FileDescriptor;[BI[B)I
istore 4
end local 5 start local 4 17: goto 23
end local 4 18: StackMap locals:
StackMap stack:
aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type4
19: astore 5
start local 5 20: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 5
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
aload 5
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
21: aload 2
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
22: invokestatic sun.nio.ch.Net.block4:(Ljava/io/FileDescriptor;III)I
istore 4
end local 5 start local 4 23: StackMap locals: int
StackMap stack:
iload 4
bipush -2
if_icmpne 25
24: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 4 25: StackMap locals:
StackMap stack:
aload 3
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 3
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/nio/ch/DatagramChannelImpl;
0 30 1 key Lsun/nio/ch/MembershipKeyImpl;
0 30 2 source Ljava/net/InetAddress;
17 18 4 n I
23 25 4 n I
14 17 5 key6 Lsun/nio/ch/MembershipKeyImpl$Type6;
20 23 5 key4 Lsun/nio/ch/MembershipKeyImpl$Type4;
Exception table:
from to target type
3 26 27 any
27 28 27 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
key
source
void unblock(sun.nio.ch.MembershipKeyImpl, java.net.InetAddress);
descriptor: (Lsun/nio/ch/MembershipKeyImpl;Ljava/net/InetAddress;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.channel:()Ljava/nio/channels/MulticastChannel;
aload 0
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.sourceAddress:()Ljava/net/InetAddress;
ifnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 1
invokevirtual sun.nio.ch.MembershipKeyImpl.isValid:()Z
ifne 5
4: new java.lang.IllegalStateException
dup
ldc "key is no longer valid"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Object
StackMap stack:
aload 1
instanceof sun.nio.ch.MembershipKeyImpl$Type6
ifeq 12
6: aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type6
7: astore 4
start local 4 8: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
aload 4
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
9: aload 2
invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
10: invokestatic sun.nio.ch.Net.unblock6:(Ljava/io/FileDescriptor;[BI[B)V
end local 4 11: goto 20
12: StackMap locals:
StackMap stack:
aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type4
13: astore 4
start local 4 14: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
aload 4
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
15: aload 2
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
16: invokestatic sun.nio.ch.Net.unblock4:(Ljava/io/FileDescriptor;III)V
end local 4 17: goto 20
StackMap locals:
StackMap stack: java.io.IOException
18: astore 4
start local 4 19: new java.lang.AssertionError
dup
aload 4
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 4 20: StackMap locals:
StackMap stack:
aload 3
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 3
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/nio/ch/DatagramChannelImpl;
0 25 1 key Lsun/nio/ch/MembershipKeyImpl;
0 25 2 source Ljava/net/InetAddress;
8 11 4 key6 Lsun/nio/ch/MembershipKeyImpl$Type6;
14 17 4 key4 Lsun/nio/ch/MembershipKeyImpl$Type4;
19 20 4 ioe Ljava/io/IOException;
Exception table:
from to target type
5 17 18 Class java.io.IOException
3 21 22 any
22 23 22 any
MethodParameters:
Name Flags
key
source
private boolean tryClose();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readerThread:J
lconst_0
lcmp
ifne 9
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writerThread:J
lconst_0
lcmp
ifne 9
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isRegistered:()Z
ifne 9
3: aload 0
iconst_3
putfield sun.nio.ch.DatagramChannelImpl.state:I
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.cleaner:Ljava/lang/ref/Cleaner$Cleanable;
invokeinterface java.lang.ref.Cleaner$Cleanable.clean:()V
5: goto 8
StackMap locals:
StackMap stack: java.io.UncheckedIOException
6: astore 1
start local 1 7: aload 1
invokevirtual java.io.UncheckedIOException.getCause:()Ljava/io/IOException;
athrow
end local 1 8: StackMap locals:
StackMap stack:
iconst_1
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/DatagramChannelImpl;
7 8 1 ioe Ljava/io/UncheckedIOException;
Exception table:
from to target type
4 5 6 Class java.io.UncheckedIOException
Exceptions:
throws java.io.IOException
private void tryFinishClose();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.tryClose:()Z
pop
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 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
0 1 2 Class java.io.IOException
private void implCloseBlockingMode();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_2
putfield sun.nio.ch.DatagramChannelImpl.state:I
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
ifnull 5
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
invokevirtual sun.nio.ch.MembershipRegistry.invalidateAll:()V
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.tryClose:()Z
ifne 14
6: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readerThread:J
lstore 2
start local 2 7: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writerThread:J
lstore 4
start local 4 8: lload 2
lconst_0
lcmp
ifne 9
lload 4
lconst_0
lcmp
ifeq 14
9: StackMap locals: long long
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.preClose:(Ljava/io/FileDescriptor;)V
10: lload 2
lconst_0
lcmp
ifeq 12
11: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
12: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifeq 14
13: lload 4
invokestatic sun.nio.ch.NativeThread.signal:(J)V
end local 4 end local 2 14: StackMap locals:
StackMap stack:
aload 1
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 1
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/DatagramChannelImpl;
7 14 2 reader J
8 14 4 writer J
Exception table:
from to target type
1 15 16 any
16 17 16 any
Exceptions:
throws java.io.IOException
private void implCloseNonBlockingMode();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_2
putfield sun.nio.ch.DatagramChannelImpl.state:I
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
ifnull 5
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
invokevirtual sun.nio.ch.MembershipRegistry.invalidateAll:()V
5: StackMap locals:
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
10: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
12: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
14: aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmpne 16
15: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.tryClose:()Z
pop
16: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 1
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 6 7 any
7 8 7 any
14 17 18 any
18 19 18 any
Exceptions:
throws java.io.IOException
protected void implCloseSelectableChannel();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifeq 4
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.implCloseBlockingMode:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.implCloseNonBlockingMode:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/DatagramChannelImpl;
Exceptions:
throws java.io.IOException
public void kill();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_2
if_icmpne 3
2: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.tryFinishClose:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
public boolean translateReadyOps(int, int, sun.nio.ch.SelectionKeyImpl);
descriptor: (IILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
istore 4
start local 4 1: aload 3
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
istore 5
start local 5 2: iload 2
istore 6
start local 6 3: iload 1
getstatic sun.nio.ch.Net.POLLNVAL:S
iand
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: int int int
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLERR:S
getstatic sun.nio.ch.Net.POLLHUP:S
ior
iand
ifeq 10
6: iload 4
istore 6
7: aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
8: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 9
iconst_1
ireturn
StackMap locals:
StackMap stack:
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLIN:S
iand
ifeq 13
11: iload 4
iconst_1
iand
ifeq 13
12: iload 6
iconst_1
ior
istore 6
13: StackMap locals:
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLOUT:S
iand
ifeq 16
14: iload 4
iconst_4
iand
ifeq 16
15: iload 6
iconst_4
ior
istore 6
16: StackMap locals:
StackMap stack:
aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
17: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 18
iconst_1
ireturn
StackMap locals:
StackMap stack:
18: iconst_0
ireturn
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 19 0 this Lsun/nio/ch/DatagramChannelImpl;
0 19 1 ops I
0 19 2 initialOps I
0 19 3 ski Lsun/nio/ch/SelectionKeyImpl;
1 19 4 intOps I
2 19 5 oldOps I
3 19 6 newOps I
MethodParameters:
Name Flags
ops
initialOps
ski
public boolean translateAndUpdateReadyOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)Z
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
aload 2
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
aload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.translateReadyOps:(IILsun/nio/ch/SelectionKeyImpl;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
0 1 1 ops I
0 1 2 ski Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
ski
public boolean translateAndSetReadyOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)Z
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
iconst_0
aload 2
invokevirtual sun.nio.ch.DatagramChannelImpl.translateReadyOps:(IILsun/nio/ch/SelectionKeyImpl;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
0 1 1 ops I
0 1 2 ski Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
ski
public int translateInterestOps(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iload 1
iconst_1
iand
ifeq 3
2: iload 2
getstatic sun.nio.ch.Net.POLLIN:S
ior
istore 2
3: StackMap locals: int
StackMap stack:
iload 1
iconst_4
iand
ifeq 5
4: iload 2
getstatic sun.nio.ch.Net.POLLOUT:S
ior
istore 2
5: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifeq 7
6: iload 2
getstatic sun.nio.ch.Net.POLLIN:S
ior
istore 2
7: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/DatagramChannelImpl;
0 8 1 ops I
1 8 2 newOps I
MethodParameters:
Name Flags
ops
public java.io.FileDescriptor getFD();
descriptor: ()Ljava/io/FileDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
public int getFDVal();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fdVal:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/DatagramChannelImpl;
private static java.lang.Runnable releaserFor(java.io.FileDescriptor, sun.nio.ch.NativeSocketAddress[]);
descriptor: (Ljava/io/FileDescriptor;[Lsun/nio/ch/NativeSocketAddress;)Ljava/lang/Runnable;
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokedynamic run([Lsun/nio/ch/NativeSocketAddress;Ljava/io/FileDescriptor;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
sun/nio/ch/DatagramChannelImpl.lambda$2([Lsun/nio/ch/NativeSocketAddress;Ljava/io/FileDescriptor;)V (6)
()V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fd Ljava/io/FileDescriptor;
0 1 1 sockAddrs [Lsun/nio/ch/NativeSocketAddress;
MethodParameters:
Name Flags
fd
sockAddrs
private static native void disconnect0(java.io.FileDescriptor, boolean);
descriptor: (Ljava/io/FileDescriptor;Z)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
isIPv6
private static native int receive0(java.io.FileDescriptor, long, int, long, boolean);
descriptor: (Ljava/io/FileDescriptor;JIJZ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
address
len
senderAddress
connected
private static native int send0(java.io.FileDescriptor, long, int, long, int);
descriptor: (Ljava/io/FileDescriptor;JIJI)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
address
len
targetAddress
targetAddressLen
public java.nio.channels.NetworkChannel bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.bind:(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
public java.nio.channels.NetworkChannel setOption(java.net.SocketOption, java.lang.Object);
descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.net.SocketOption
aload 2
checkcast java.lang.Object
invokevirtual sun.nio.ch.DatagramChannelImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/DatagramChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
private void lambda$0(sun.nio.ch.MembershipKeyImpl);
descriptor: (Lsun/nio/ch/MembershipKeyImpl;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof sun.nio.ch.MembershipKeyImpl$Type6
ifeq 4
1: aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type6
astore 2
start local 2 2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
aload 2
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
aload 2
invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.source:()[B
invokestatic sun.nio.ch.Net.join6:(Ljava/io/FileDescriptor;[BI[B)I
pop
end local 2 3: goto 6
4: StackMap locals:
StackMap stack:
aload 1
checkcast sun.nio.ch.MembershipKeyImpl$Type4
astore 2
start local 2 5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
aload 2
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
aload 2
invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.source:()I
invokestatic sun.nio.ch.Net.join4:(Ljava/io/FileDescriptor;III)I
pop
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/DatagramChannelImpl;
0 7 1 k Lsun/nio/ch/MembershipKeyImpl;
2 3 2 key6 Lsun/nio/ch/MembershipKeyImpl$Type6;
5 6 2 key4 Lsun/nio/ch/MembershipKeyImpl$Type4;
Exceptions:
throws java.io.IOException
private static void lambda$2(sun.nio.ch.NativeSocketAddress[], java.io.FileDescriptor);
descriptor: ([Lsun/nio/ch/NativeSocketAddress;Ljava/io/FileDescriptor;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=2
0: getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 1
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
1: goto 8
StackMap locals:
StackMap stack: java.io.IOException
2: astore 2
start local 2 3: new java.io.UncheckedIOException
dup
aload 2
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 2 4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
5: invokestatic sun.net.ResourceManager.afterUdpClose:()V
6: aload 0
invokestatic sun.nio.ch.NativeSocketAddress.freeAll:([Lsun/nio/ch/NativeSocketAddress;)V
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
invokestatic sun.net.ResourceManager.afterUdpClose:()V
9: aload 0
invokestatic sun.nio.ch.NativeSocketAddress.freeAll:([Lsun/nio/ch/NativeSocketAddress;)V
10: return
LocalVariableTable:
Start End Slot Name Signature
3 4 2 ioe Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
0 4 4 any
}
SourceFile: "DatagramChannelImpl.java"
NestMembers:
sun.nio.ch.DatagramChannelImpl$AbstractSelectableChannels sun.nio.ch.DatagramChannelImpl$DefaultOptionsHolder
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Cleanable = java.lang.ref.Cleaner$Cleanable of java.lang.ref.Cleaner
public abstract Entry = java.util.Map$Entry of java.util.Map
private AbstractSelectableChannels = sun.nio.ch.DatagramChannelImpl$AbstractSelectableChannels of sun.nio.ch.DatagramChannelImpl
private DefaultOptionsHolder = sun.nio.ch.DatagramChannelImpl$DefaultOptionsHolder of sun.nio.ch.DatagramChannelImpl
Type4 = sun.nio.ch.MembershipKeyImpl$Type4 of sun.nio.ch.MembershipKeyImpl
Type6 = sun.nio.ch.MembershipKeyImpl$Type6 of sun.nio.ch.MembershipKeyImpl
abstract ThrowingConsumer = sun.nio.ch.MembershipRegistry$ThrowingConsumer of sun.nio.ch.MembershipRegistry