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 sun.nio.ch.NativeDispatcher nd;
descriptor: Lsun/nio/ch/NativeDispatcher;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
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 final java.net.ProtocolFamily family;
descriptor: Ljava/net/ProtocolFamily;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long readerThread;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long writerThread;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private java.net.InetAddress cachedSenderInetAddress;
descriptor: Ljava/net/InetAddress;
flags: (0x0002) ACC_PRIVATE
private int cachedSenderPort;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object readLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object writeLock;
descriptor: Ljava/lang/Object;
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_UNINITIALIZED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
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_KILLED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private int state;
descriptor: I
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.DatagramSocket socket;
descriptor: Ljava/net/DatagramSocket;
flags: (0x0002) ACC_PRIVATE
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
private java.net.SocketAddress sender;
descriptor: Ljava/net/SocketAddress;
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=2, locals=0, 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 sun.nio.ch.IOUtil.load:()V
5: invokestatic sun.nio.ch.DatagramChannelImpl.initIDs:()V
6: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.nio.channels.spi.SelectorProvider);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial java.nio.channels.DatagramChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
1: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
6: aload 0
iconst_m1
putfield sun.nio.ch.DatagramChannelImpl.state:I
7: invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
8: aload 0
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 10
9: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 11
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider
StackMap stack: sun.nio.ch.DatagramChannelImpl
10: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
11: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider
StackMap stack: sun.nio.ch.DatagramChannelImpl java.net.StandardProtocolFamily
putfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
12: aload 0
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;
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
13: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.DatagramChannelImpl.fdVal:I
14: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.state:I
15: goto 19
StackMap locals:
StackMap stack: java.io.IOException
16: astore 2
start local 2 17: invokestatic sun.net.ResourceManager.afterUdpClose:()V
18: aload 2
athrow
end local 2 19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/DatagramChannelImpl;
0 20 1 sp Ljava/nio/channels/spi/SelectorProvider;
17 19 2 ioe Ljava/io/IOException;
Exception table:
from to target type
8 15 16 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
public void <init>(java.nio.channels.spi.SelectorProvider, java.net.ProtocolFamily);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/net/ProtocolFamily;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, 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
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
6: aload 0
iconst_m1
putfield sun.nio.ch.DatagramChannelImpl.state:I
7: aload 2
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 12
8: aload 2
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpeq 12
9: aload 2
ifnonnull 11
10: new java.lang.NullPointerException
dup
ldc "'family' is null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily
StackMap stack:
new java.lang.UnsupportedOperationException
dup
ldc "Protocol family not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 2
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 15
13: invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifne 15
14: new java.lang.UnsupportedOperationException
dup
ldc "IPv6 not available"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
16: aload 0
aload 2
putfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
17: aload 0
aload 2
iconst_0
invokestatic sun.nio.ch.Net.socket:(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
18: aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.DatagramChannelImpl.fdVal:I
19: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.state:I
20: goto 24
StackMap locals:
StackMap stack: java.io.IOException
21: astore 3
start local 3 22: invokestatic sun.net.ResourceManager.afterUdpClose:()V
23: aload 3
athrow
end local 3 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 sp Ljava/nio/channels/spi/SelectorProvider;
0 25 2 family Ljava/net/ProtocolFamily;
22 24 3 ioe Ljava/io/IOException;
Exception table:
from to target type
16 20 21 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
family
public void <init>(java.nio.channels.spi.SelectorProvider, java.io.FileDescriptor);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, 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
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
6: aload 0
iconst_m1
putfield sun.nio.ch.DatagramChannelImpl.state:I
7: invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
8: aload 0
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 10
9: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 11
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor
StackMap stack: sun.nio.ch.DatagramChannelImpl
10: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
11: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor
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: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.state:I
15: 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;
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/DatagramChannelImpl;
0 17 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 17 2 fd Ljava/io/FileDescriptor;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
fd
public java.net.DatagramSocket socket();
descriptor: ()Ljava/net/DatagramSocket;
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.socket:Ljava/net/DatagramSocket;
ifnonnull 3
2: aload 0
aload 0
invokestatic sun.nio.ch.DatagramSocketAdaptor.create:(Lsun/nio/ch/DatagramChannelImpl;)Ljava/net/DatagramSocket;
putfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
aload 1
monitorexit
4: areturn
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.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.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
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
4: areturn
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
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.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
aload 1
monitorexit
4: areturn
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
Exceptions:
throws java.io.IOException
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=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 4
3: 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
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
6: aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpeq 9
7: aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
if_acmpeq 9
8: aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
if_acmpne 12
9: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
10: aload 0
aload 3
monitorexit
11: areturn
12: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
if_acmpne 29
13: aload 2
ifnonnull 15
14: new java.lang.IllegalArgumentException
dup
ldc "Cannot set IP_MULTICAST_IF to 'null'"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
checkcast java.net.NetworkInterface
astore 4
start local 4 16: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 22
17: aload 4
invokevirtual java.net.NetworkInterface.getIndex:()I
istore 5
start local 5 18: iload 5
iconst_m1
if_icmpne 20
19: new java.io.IOException
dup
ldc "Network interface cannot be identified"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: java.net.NetworkInterface int
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 5
invokestatic sun.nio.ch.Net.setInterface6:(Ljava/io/FileDescriptor;I)V
end local 5 21: goto 27
22: StackMap locals:
StackMap stack:
aload 4
invokestatic sun.nio.ch.Net.anyInet4Address:(Ljava/net/NetworkInterface;)Ljava/net/Inet4Address;
astore 5
start local 5 23: aload 5
ifnonnull 25
24: new java.io.IOException
dup
ldc "Network interface not configured for IPv4"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals: java.net.Inet4Address
StackMap stack:
aload 5
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
istore 6
start local 6 26: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 6
invokestatic sun.nio.ch.Net.setInterface4:(Ljava/io/FileDescriptor;I)V
end local 6 end local 5 27: StackMap locals:
StackMap stack:
aload 0
aload 3
monitorexit
28: areturn
end local 4 29: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 33
30: invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 33
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 33
31: aload 0
iconst_1
putfield sun.nio.ch.DatagramChannelImpl.reuseAddressEmulated:Z
32: aload 0
aload 2
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.nio.ch.DatagramChannelImpl.isReuseAddress:Z
33: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
34: aload 0
aload 3
monitorexit
35: areturn
36: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
37: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lsun/nio/ch/DatagramChannelImpl;
0 38 1 name Ljava/net/SocketOption<TT;>;
0 38 2 value TT;
16 29 4 interf Ljava/net/NetworkInterface;
18 21 5 index I
23 27 5 target Ljava/net/Inet4Address;
26 27 6 targetAddress I
Exception table:
from to target type
5 11 36 any
12 28 36 any
29 35 36 any
36 37 36 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=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 4
3: 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
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
6: aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpeq 9
7: aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
if_acmpeq 9
8: aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
if_acmpne 11
9: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
aload 1
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
aload 2
monitorexit
10: areturn
11: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
if_acmpne 32
12: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 23
13: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.getInterface4:(Ljava/io/FileDescriptor;)I
istore 3
start local 3 14: iload 3
ifne 17
15: aload 2
monitorexit
16: aconst_null
areturn
17: StackMap locals: int
StackMap stack:
iload 3
invokestatic sun.nio.ch.Net.inet4FromInt:(I)Ljava/net/InetAddress;
astore 4
start local 4 18: aload 4
invokestatic java.net.NetworkInterface.getByInetAddress:(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;
astore 5
start local 5 19: aload 5
ifnonnull 21
20: new java.io.IOException
dup
ldc "Unable to map address to interface"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: java.net.InetAddress java.net.NetworkInterface
StackMap stack:
aload 5
aload 2
monitorexit
22: areturn
end local 5 end local 4 end local 3 23: 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 3
start local 3 24: iload 3
ifne 27
25: aload 2
monitorexit
26: aconst_null
areturn
27: StackMap locals: int
StackMap stack:
iload 3
invokestatic java.net.NetworkInterface.getByIndex:(I)Ljava/net/NetworkInterface;
astore 4
start local 4 28: aload 4
ifnonnull 30
29: new java.io.IOException
dup
ldc "Unable to map index to interface"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: java.net.NetworkInterface
StackMap stack:
aload 4
aload 2
monitorexit
31: areturn
end local 4 end local 3 32: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 36
33: aload 0
getfield sun.nio.ch.DatagramChannelImpl.reuseAddressEmulated:Z
ifeq 36
34: aload 0
getfield sun.nio.ch.DatagramChannelImpl.isReuseAddress:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
monitorexit
35: areturn
36: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 1
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
aload 2
monitorexit
37: areturn
38: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
39: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lsun/nio/ch/DatagramChannelImpl;
0 40 1 name Ljava/net/SocketOption<TT;>;
14 23 3 address I
18 23 4 ia Ljava/net/InetAddress;
19 23 5 ni Ljava/net/NetworkInterface;
24 32 3 index I
28 32 4 ni Ljava/net/NetworkInterface;
Exception table:
from to target type
5 10 38 any
11 16 38 any
17 22 38 any
23 26 38 any
27 31 38 any
32 35 38 any
36 37 38 any
38 39 38 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 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.SocketAddress receive(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, 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 1
ifnonnull 4
3: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
6: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.localAddress:()Ljava/net/SocketAddress;
ifnonnull 8
7: aload 0
aconst_null
invokevirtual sun.nio.ch.DatagramChannelImpl.bind:(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
pop
8: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
istore 3
start local 3 9: aconst_null
astore 4
start local 4 10: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
11: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 21
12: aload 4
ifnull 14
13: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
14: StackMap locals: int java.nio.ByteBuffer
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
15: aload 0
iload 3
ifgt 16
iload 3
bipush -2
if_icmpeq 16
iconst_0
goto 17
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer
StackMap stack: sun.nio.ch.DatagramChannelImpl int
17: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
18: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 19
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
19: aload 2
monitorexit
20: aconst_null
areturn
21: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 22: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
23: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 24
aload 5
ifnonnull 36
24: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
istore 3
25: iload 3
bipush -3
if_icmpne 26
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 24
26: StackMap locals:
StackMap stack:
iload 3
bipush -2
if_icmpne 61
27: aload 4
ifnull 29
28: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
29: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
30: aload 0
iload 3
ifgt 31
iload 3
bipush -2
if_icmpeq 31
iconst_0
goto 32
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
31: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer java.lang.SecurityManager
StackMap stack: sun.nio.ch.DatagramChannelImpl int
32: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
33: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 34
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 34
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
34: aload 2
monitorexit
35: aconst_null
areturn
36: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 4
37: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
istore 3
38: iload 3
bipush -3
if_icmpne 39
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 37
39: StackMap locals:
StackMap stack:
iload 3
bipush -2
if_icmpne 49
40: aload 4
ifnull 42
41: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
42: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
43: aload 0
iload 3
ifgt 44
iload 3
bipush -2
if_icmpeq 44
iconst_0
goto 45
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
44: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer java.lang.SecurityManager
StackMap stack: sun.nio.ch.DatagramChannelImpl int
45: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
46: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 47
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 47
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
47: aload 2
monitorexit
48: aconst_null
areturn
49: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
astore 6
start local 6 50: aload 5
51: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
52: aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
53: invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
54: goto 59
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer java.lang.SecurityManager java.net.InetSocketAddress
StackMap stack: java.lang.SecurityException
55: pop
56: aload 4
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
57: iconst_0
istore 3
58: goto 37
59: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
60: aload 1
aload 4
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
end local 6 61: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
astore 8
62: aload 4
ifnull 64
63: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
64: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer java.lang.SecurityManager top top java.net.SocketAddress
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
65: aload 0
iload 3
ifgt 66
iload 3
bipush -2
if_icmpeq 66
iconst_0
goto 67
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
66: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer java.lang.SecurityManager top top java.net.SocketAddress
StackMap stack: sun.nio.ch.DatagramChannelImpl int
67: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
68: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 69
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 69
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
69: StackMap locals:
StackMap stack:
aload 2
monitorexit
70: aload 8
areturn
end local 5 71: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 7
72: aload 4
ifnull 74
73: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
74: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer top top java.lang.Throwable
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
75: aload 0
iload 3
ifgt 76
iload 3
bipush -2
if_icmpeq 76
iconst_0
goto 77
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
76: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer top top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
77: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
78: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 79
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 79
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
79: StackMap locals:
StackMap stack:
aload 7
athrow
end local 4 end local 3 80: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
81: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 82 0 this Lsun/nio/ch/DatagramChannelImpl;
0 82 1 dst Ljava/nio/ByteBuffer;
9 80 3 n I
10 80 4 bb Ljava/nio/ByteBuffer;
22 71 5 security Ljava/lang/SecurityManager;
50 61 6 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
50 54 55 Class java.lang.SecurityException
10 12 71 any
21 27 71 any
36 40 71 any
49 62 71 any
5 20 80 any
21 35 80 any
36 48 80 any
49 70 80 any
71 81 80 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
private int receive(java.io.FileDescriptor, java.nio.ByteBuffer);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 3
start local 3 1: aload 2
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 2
instanceof sun.nio.ch.DirectBuffer
ifeq 8
iload 5
ifle 8
7: aload 0
aload 1
aload 2
iload 5
iload 3
invokevirtual sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;II)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 1
aload 7
iload 6
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;II)I
istore 8
start local 8 11: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
12: iload 8
ifle 14
iload 5
ifle 14
13: aload 2
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.io.FileDescriptor java.nio.ByteBuffer 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 fd Ljava/io/FileDescriptor;
0 20 2 dst Ljava/nio/ByteBuffer;
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
fd
dst
private int receiveIntoNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, int, int);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 4
i2l
ladd
iload 3
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
2: invokevirtual sun.nio.ch.DatagramChannelImpl.receive0:(Ljava/io/FileDescriptor;JIZ)I
istore 5
start local 5 3: iload 5
ifle 5
4: aload 2
iload 4
iload 5
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
5: 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 6 0 this Lsun/nio/ch/DatagramChannelImpl;
0 6 1 fd Ljava/io/FileDescriptor;
0 6 2 bb Ljava/nio/ByteBuffer;
0 6 3 rem I
0 6 4 pos I
3 6 5 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bb
rem
pos
public int send(java.nio.ByteBuffer, java.net.SocketAddress);
descriptor: (Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
4: aload 2
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 4
start local 4 5: aload 4
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 5
start local 5 6: aload 5
ifnonnull 8
7: new java.io.IOException
dup
ldc "Target address not resolved"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.lang.Object java.net.InetSocketAddress java.net.InetAddress
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 6
monitorenter
9: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 21
10: aload 2
ifnonnull 12
11: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
12: StackMap locals: java.lang.Object
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 7
start local 7 13: aload 7
ifnull 28
14: aload 5
invokevirtual java.net.InetAddress.isMulticastAddress:()Z
ifeq 17
15: aload 7
aload 5
invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
16: goto 28
17: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 7
aload 5
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
18: aload 4
invokevirtual java.net.InetSocketAddress.getPort:()I
19: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
end local 7 20: goto 28
21: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 25
22: new java.lang.IllegalArgumentException
dup
23: ldc "Connected address not equal to target address"
24: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.nio.ch.DatagramChannelImpl.write:(Ljava/nio/ByteBuffer;)I
aload 6
monitorexit
26: aload 3
monitorexit
27: ireturn
28: StackMap locals:
StackMap stack:
aload 6
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 6
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 33: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
34: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 42
35: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
36: aload 0
iload 6
ifgt 37
iload 6
bipush -2
if_icmpeq 37
iconst_0
goto 38
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int
StackMap stack: sun.nio.ch.DatagramChannelImpl
37: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
38: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
39: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 40
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 40
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
40: aload 3
monitorexit
41: iconst_0
ireturn
42: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
43: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
aload 4
invokevirtual sun.nio.ch.DatagramChannelImpl.send:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
istore 6
44: iload 6
bipush -3
if_icmpne 45
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 43
45: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
46: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifeq 48
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 48
47: 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;
48: StackMap locals: java.lang.Object
StackMap stack:
aload 7
monitorexit
49: goto 52
StackMap locals:
StackMap stack: java.lang.Throwable
50: aload 7
monitorexit
51: athrow
52: StackMap locals:
StackMap stack:
iload 6
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 9
53: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
54: aload 0
iload 6
ifgt 55
iload 6
bipush -2
if_icmpeq 55
iconst_0
goto 56
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int top top int
StackMap stack: sun.nio.ch.DatagramChannelImpl
55: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int top top int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
56: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
57: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 58
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 58
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
58: StackMap locals:
StackMap stack:
aload 3
monitorexit
59: iload 9
ireturn
60: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int
StackMap stack: java.lang.Throwable
astore 8
61: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
62: aload 0
iload 6
ifgt 63
iload 6
bipush -2
if_icmpeq 63
iconst_0
goto 64
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
63: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
64: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
65: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 66
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 66
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
66: StackMap locals:
StackMap stack:
aload 8
athrow
end local 6 end local 5 end local 4 67: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
68: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lsun/nio/ch/DatagramChannelImpl;
0 69 1 src Ljava/nio/ByteBuffer;
0 69 2 target Ljava/net/SocketAddress;
5 67 4 isa Ljava/net/InetSocketAddress;
6 67 5 ia Ljava/net/InetAddress;
13 20 7 sm Ljava/lang/SecurityManager;
33 67 6 n I
Exception table:
from to target type
9 26 30 any
28 29 30 any
30 31 30 any
46 49 50 any
50 51 50 any
33 35 60 any
42 53 60 any
3 27 67 any
28 41 67 any
42 59 67 any
60 68 67 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/Buffer;
pop
11: aload 2
iload 4
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
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/Buffer;
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=8, locals=10, 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
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 7
iconst_1
goto 8
StackMap locals: int
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 7
start local 7 9: aload 0
iload 7
aload 1
aload 2
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 4
i2l
ladd
10: iload 6
aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
11: invokevirtual sun.nio.ch.DatagramChannelImpl.send0:(ZLjava/io/FileDescriptor;JILjava/net/InetAddress;I)I
istore 8
start local 8 12: goto 17
end local 8 StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int int
StackMap stack: java.net.PortUnreachableException
13: astore 9
start local 9 14: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifeq 16
15: aload 9
athrow
16: StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int int top java.net.PortUnreachableException
StackMap stack:
iload 6
istore 8
end local 9 start local 8 17: StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int int int
StackMap stack:
iload 8
ifle 19
18: aload 2
iload 4
iload 8
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
19: StackMap locals:
StackMap stack:
iload 8
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/DatagramChannelImpl;
0 20 1 fd Ljava/io/FileDescriptor;
0 20 2 bb Ljava/nio/ByteBuffer;
0 20 3 target Ljava/net/InetSocketAddress;
1 20 4 pos I
2 20 5 lim I
6 20 6 rem I
9 20 7 preferIPv6 Z
12 13 8 written I
17 20 8 written I
14 17 9 pue Ljava/net/PortUnreachableException;
Exception table:
from to target type
9 12 13 Class java.net.PortUnreachableException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bb
target
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 3
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 21
14: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
15: aload 0
iload 3
ifgt 16
iload 3
bipush -2
if_icmpeq 16
iconst_0
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
17: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
18: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 19
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
19: aload 2
monitorexit
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
22: StackMap locals:
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.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
istore 3
23: iload 3
bipush -3
if_icmpne 24
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
24: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 5
25: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
26: aload 0
iload 3
ifgt 27
iload 3
bipush -2
if_icmpeq 27
iconst_0
goto 28
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int top int
StackMap stack: sun.nio.ch.DatagramChannelImpl
27: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int top int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
28: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
29: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 30
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 2
monitorexit
31: iload 5
ireturn
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: java.lang.Throwable
astore 4
33: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
34: aload 0
iload 3
ifgt 35
iload 3
bipush -2
if_icmpeq 35
iconst_0
goto 36
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
35: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
36: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
37: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 38
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 38
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals:
StackMap stack:
aload 4
athrow
end local 3 39: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
40: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/nio/ch/DatagramChannelImpl;
0 41 1 buf Ljava/nio/ByteBuffer;
12 39 3 n I
Exception table:
from to target type
4 8 9 any
9 10 9 any
12 14 32 any
21 25 32 any
3 20 39 any
21 31 39 any
32 40 39 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=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iflt 1
iload 3
iflt 1
iload 2
aload 1
arraylength
iload 3
isub
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 5
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 5
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
lconst_0
lstore 5
start local 5 12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 21
14: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
15: aload 0
lload 5
lconst_0
lcmp
ifgt 16
lload 5
ldc -2
lcmp
ifeq 16
iconst_0
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: sun.nio.ch.DatagramChannelImpl int
17: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
18: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 19
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
19: aload 4
monitorexit
20: lconst_0
lreturn
21: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
22: StackMap locals:
StackMap stack:
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
23: lload 5
ldc -3
lcmp
ifne 24
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
24: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 8
25: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
26: aload 0
lload 5
lconst_0
lcmp
ifgt 27
lload 5
ldc -2
lcmp
ifeq 27
iconst_0
goto 28
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top long
StackMap stack: sun.nio.ch.DatagramChannelImpl
27: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top long
StackMap stack: sun.nio.ch.DatagramChannelImpl int
28: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
29: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 30
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 4
monitorexit
31: lload 8
lreturn
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: java.lang.Throwable
astore 7
33: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
34: aload 0
lload 5
lconst_0
lcmp
ifgt 35
lload 5
ldc -2
lcmp
ifeq 35
iconst_0
goto 36
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
35: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
36: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
37: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 38
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 38
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals:
StackMap stack:
aload 7
athrow
end local 5 39: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
40: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/nio/ch/DatagramChannelImpl;
0 41 1 dsts [Ljava/nio/ByteBuffer;
0 41 2 offset I
0 41 3 length I
12 39 5 n J
Exception table:
from to target type
4 8 9 any
9 10 9 any
12 14 32 any
21 25 32 any
3 20 39 any
21 31 39 any
32 40 39 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dsts
offset
length
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 3
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 21
14: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
15: aload 0
iload 3
ifgt 16
iload 3
bipush -2
if_icmpeq 16
iconst_0
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
17: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
18: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 19
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
19: aload 2
monitorexit
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
22: StackMap locals:
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 3
23: iload 3
bipush -3
if_icmpne 24
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
24: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 5
25: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
26: aload 0
iload 3
ifgt 27
iload 3
bipush -2
if_icmpeq 27
iconst_0
goto 28
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int top int
StackMap stack: sun.nio.ch.DatagramChannelImpl
27: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int top int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
28: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
29: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 30
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 2
monitorexit
31: iload 5
ireturn
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: java.lang.Throwable
astore 4
33: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
34: aload 0
iload 3
ifgt 35
iload 3
bipush -2
if_icmpeq 35
iconst_0
goto 36
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
35: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
36: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
37: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 38
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 38
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals:
StackMap stack:
aload 4
athrow
end local 3 39: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
40: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/nio/ch/DatagramChannelImpl;
0 41 1 buf Ljava/nio/ByteBuffer;
12 39 3 n I
Exception table:
from to target type
4 8 9 any
9 10 9 any
12 14 32 any
21 25 32 any
3 20 39 any
21 31 39 any
32 40 39 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=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iflt 1
iload 3
iflt 1
iload 2
aload 1
arraylength
iload 3
isub
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
5: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 5
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 5
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
lconst_0
lstore 5
start local 5 12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 21
14: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
15: aload 0
lload 5
lconst_0
lcmp
ifgt 16
lload 5
ldc -2
lcmp
ifeq 16
iconst_0
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: sun.nio.ch.DatagramChannelImpl int
17: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
18: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 19
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
19: aload 4
monitorexit
20: lconst_0
lreturn
21: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
22: StackMap locals:
StackMap stack:
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
23: lload 5
ldc -3
lcmp
ifne 24
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
24: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 8
25: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
26: aload 0
lload 5
lconst_0
lcmp
ifgt 27
lload 5
ldc -2
lcmp
ifeq 27
iconst_0
goto 28
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top long
StackMap stack: sun.nio.ch.DatagramChannelImpl
27: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top long
StackMap stack: sun.nio.ch.DatagramChannelImpl int
28: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
29: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 30
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 4
monitorexit
31: lload 8
lreturn
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: java.lang.Throwable
astore 7
33: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
34: aload 0
lload 5
lconst_0
lcmp
ifgt 35
lload 5
ldc -2
lcmp
ifeq 35
iconst_0
goto 36
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
35: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
36: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
37: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 38
lload 5
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 38
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
38: StackMap locals:
StackMap stack:
aload 7
athrow
end local 5 39: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
40: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/nio/ch/DatagramChannelImpl;
0 41 1 srcs [Ljava/nio/ByteBuffer;
0 41 2 offset I
0 41 3 length I
12 39 5 n J
Exception table:
from to target type
4 8 9 any
9 10 9 any
12 14 32 any
21 25 32 any
3 20 39 any
21 31 39 any
32 40 39 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=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/DatagramChannelImpl;
0 2 1 block Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
public java.net.SocketAddress localAddress();
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
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
public java.net.SocketAddress remoteAddress();
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
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=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: 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.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 java.lang.Object java.lang.Object
StackMap stack:
aload 1
ifnonnull 12
7: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 10
8: 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 5
start local 5 9: goto 17
end local 5 10: StackMap locals:
StackMap stack:
new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
astore 5
start local 5 11: goto 17
end local 5 12: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 5
start local 5 13: aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpne 17
14: aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 6
start local 6 15: aload 6
instanceof java.net.Inet4Address
ifne 17
16: new java.nio.channels.UnsupportedAddressTypeException
dup
invokespecial java.nio.channels.UnsupportedAddressTypeException.<init>:()V
athrow
end local 6 17: StackMap locals: java.net.InetSocketAddress
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 18: aload 6
ifnull 20
19: aload 6
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
20: 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 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
21: 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;
end local 6 end local 5 22: aload 4
monitorexit
23: goto 26
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
24: aload 4
monitorexit
25: athrow
26: StackMap locals:
StackMap stack:
aload 3
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 3
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
aload 2
monitorexit
31: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
32: aload 2
monitorexit
33: athrow
34: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/nio/ch/DatagramChannelImpl;
0 35 1 local Ljava/net/SocketAddress;
9 10 5 isa Ljava/net/InetSocketAddress;
11 12 5 isa Ljava/net/InetSocketAddress;
13 22 5 isa Ljava/net/InetSocketAddress;
15 17 6 addr Ljava/net/InetAddress;
18 22 6 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
3 23 24 any
24 25 24 any
2 27 28 any
28 29 28 any
1 31 32 any
32 33 32 any
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
void ensureOpenAndUnconnected();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, 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.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
ifeq 5
4: new java.lang.IllegalStateException
dup
ldc "Connect already invoked"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
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:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Exceptions:
throws java.io.IOException
public java.nio.channels.DatagramChannel connect(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpenAndUnconnected:()V
4: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 5
start local 5 5: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 6: aload 6
ifnull 10
7: aload 6
aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
8: aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
9: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
10: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
11: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
12: aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
13: aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
14: invokestatic sun.nio.ch.Net.connect:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
istore 7
start local 7 15: iload 7
ifgt 17
16: new java.lang.Error
dup
invokespecial java.lang.Error.<init>:()V
athrow
17: StackMap locals: int
StackMap stack:
aload 0
iconst_1
putfield sun.nio.ch.DatagramChannelImpl.state:I
18: aload 0
aload 5
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
19: aload 0
aload 5
putfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
20: aload 0
aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderInetAddress:Ljava/net/InetAddress;
21: aload 0
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderPort:I
22: 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;
23: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.blockingLock:()Ljava/lang/Object;
dup
astore 8
monitorenter
24: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 9
start local 9 25: iconst_1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 10
start local 10 26: iload 9
ifeq 28
27: aload 0
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
28: StackMap locals: java.lang.Object int java.nio.ByteBuffer
StackMap stack:
aload 10
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
29: aload 0
aload 10
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
ifnonnull 28
end local 10 30: goto 35
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager int java.lang.Object int
StackMap stack: java.lang.Throwable
31: astore 11
32: iload 9
ifeq 34
33: aload 0
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
34: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager int java.lang.Object int top java.lang.Throwable
StackMap stack:
aload 11
athrow
35: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager int java.lang.Object int
StackMap stack:
iload 9
ifeq 37
36: aload 0
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
end local 9 37: StackMap locals:
StackMap stack:
aload 8
monitorexit
38: goto 41
StackMap locals:
StackMap stack: java.lang.Throwable
39: aload 8
monitorexit
40: athrow
end local 7 end local 6 end local 5 41: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 4
monitorexit
42: goto 45
StackMap locals:
StackMap stack: java.lang.Throwable
43: aload 4
monitorexit
44: athrow
45: StackMap locals:
StackMap stack:
aload 3
monitorexit
46: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
47: aload 3
monitorexit
48: athrow
49: StackMap locals:
StackMap stack:
aload 2
monitorexit
50: goto 53
StackMap locals:
StackMap stack: java.lang.Throwable
51: aload 2
monitorexit
52: athrow
53: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lsun/nio/ch/DatagramChannelImpl;
0 54 1 sa Ljava/net/SocketAddress;
5 41 5 isa Ljava/net/InetSocketAddress;
6 41 6 sm Ljava/lang/SecurityManager;
15 41 7 n I
25 37 9 blocking Z
26 30 10 tmpBuf Ljava/nio/ByteBuffer;
Exception table:
from to target type
25 31 31 any
24 38 39 any
39 40 39 any
3 42 43 any
43 44 43 any
2 46 47 any
47 48 47 any
1 50 51 any
51 52 51 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sa
public java.nio.channels.DatagramChannel disconnect();
descriptor: ()Ljava/nio/channels/DatagramChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifeq 4
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 8
4: StackMap locals: java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 0
aload 3
monitorexit
5: aload 2
monitorexit
6: aload 1
monitorexit
7: areturn
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
astore 4
start local 4 9: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 10: aload 5
ifnull 14
11: aload 5
aload 4
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
12: aload 4
invokevirtual java.net.InetSocketAddress.getPort:()I
13: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
14: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 6
start local 6 17: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 6
invokestatic sun.nio.ch.DatagramChannelImpl.disconnect0:(Ljava/io/FileDescriptor;Z)V
18: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
19: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.state:I
20: 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;
end local 6 end local 5 end local 4 21: aload 3
monitorexit
22: goto 25
StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
23: aload 3
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
aload 2
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 2
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
aload 1
monitorexit
30: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
31: aload 1
monitorexit
32: athrow
33: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/nio/ch/DatagramChannelImpl;
9 21 4 isa Ljava/net/InetSocketAddress;
10 21 5 sm Ljava/lang/SecurityManager;
17 21 6 isIPv6 Z
Exception table:
from to target type
3 5 23 any
8 22 23 any
23 24 23 any
2 6 27 any
8 26 27 any
27 28 27 any
1 7 31 any
8 30 31 any
31 32 31 any
Exceptions:
throws java.io.IOException
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.isOpen:()Z
ifne 22
21: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
22: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
ifnonnull 25
23: 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;
24: goto 29
25: StackMap locals:
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 26: aload 6
ifnull 29
27: aload 6
aload 5
monitorexit
28: areturn
end local 6 29: 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 45
30: aload 1
instanceof java.net.Inet6Address
ifne 31
invokestatic sun.nio.ch.Net.canJoin6WithIPv4Group:()Z
ifeq 45
31: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.net.NetworkInterface.getIndex:()I
istore 7
start local 7 32: iload 7
iconst_m1
if_icmpne 34
33: new java.io.IOException
dup
ldc "Network interface cannot be identified"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
34: 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 35: aload 3
ifnonnull 36
aconst_null
goto 37
36: StackMap locals: byte[]
StackMap stack:
aload 3
invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
37: StackMap locals:
StackMap stack: byte[]
astore 9
start local 9 38: 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 39: iload 10
bipush -2
if_icmpne 41
40: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
41: StackMap locals: byte[] int
StackMap stack:
new sun.nio.ch.MembershipKeyImpl$Type6
dup
aload 0
aload 1
aload 2
aload 3
42: aload 8
iload 7
aload 9
43: 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 44: goto 59
end local 6 45: 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 46: aload 7
ifnonnull 48
47: new java.io.IOException
dup
ldc "Network interface not configured for IPv4"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
48: 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 49: aload 7
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
istore 9
start local 9 50: aload 3
ifnonnull 51
iconst_0
goto 52
StackMap locals: int int
StackMap stack:
51: aload 3
invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
StackMap locals:
StackMap stack: int
52: istore 10
start local 10 53: 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 54: iload 11
bipush -2
if_icmpne 56
55: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
56: StackMap locals: int int
StackMap stack:
new sun.nio.ch.MembershipKeyImpl$Type4
dup
aload 0
aload 1
aload 2
aload 3
57: iload 8
iload 9
iload 10
58: 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 59: 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
60: aload 6
aload 5
monitorexit
61: areturn
end local 6 62: 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
63: athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lsun/nio/ch/DatagramChannelImpl;
0 64 1 group Ljava/net/InetAddress;
0 64 2 interf Ljava/net/NetworkInterface;
0 64 3 source Ljava/net/InetAddress;
17 64 4 sm Ljava/lang/SecurityManager;
26 29 6 key Ljava/nio/channels/MembershipKey;
44 45 6 key Lsun/nio/ch/MembershipKeyImpl;
59 62 6 key Lsun/nio/ch/MembershipKeyImpl;
32 44 7 index I
35 44 8 groupAddress [B
38 44 9 sourceAddress [B
39 44 10 n I
46 59 7 target Ljava/net/Inet4Address;
49 59 8 groupAddress I
50 59 9 targetAddress I
53 59 10 sourceAddress I
54 59 11 n I
Exception table:
from to target type
20 28 62 any
29 61 62 any
62 63 62 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
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "source address is null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
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 3 0 this Lsun/nio/ch/DatagramChannelImpl;
0 3 1 group Ljava/net/InetAddress;
0 3 2 interf Ljava/net/NetworkInterface;
0 3 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
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
protected void implCloseSelectableChannel();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, 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_icmpeq 3
2: 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
3: StackMap locals: java.lang.Object
StackMap stack:
invokestatic sun.net.ResourceManager.afterUdpClose:()V
4: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
ifnull 6
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
invokevirtual sun.nio.ch.MembershipRegistry.invalidateAll:()V
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readerThread:J
dup2
lstore 2
start local 2 7: lconst_0
lcmp
ifeq 9
8: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
9: StackMap locals: long
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writerThread:J
dup2
lstore 2
lconst_0
lcmp
ifeq 11
10: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isRegistered:()Z
ifne 13
12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.kill:()V
end local 2 13: StackMap locals:
StackMap stack:
aload 1
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 1
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/nio/ch/DatagramChannelImpl;
7 13 2 th J
Exception table:
from to target type
1 14 15 any
15 16 15 any
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 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.state:I
iconst_m1
if_icmpne 8
5: aload 0
iconst_2
putfield sun.nio.ch.DatagramChannelImpl.state:I
6: aload 1
monitorexit
7: return
8: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 10
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 9
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isRegistered:()Z
ifeq 10
StackMap locals:
StackMap stack:
9: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
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.close:(Ljava/io/FileDescriptor;)V
11: aload 0
iconst_2
putfield sun.nio.ch.DatagramChannelImpl.state:I
12: aload 1
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 1
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/DatagramChannelImpl;
Exception table:
from to target type
1 3 14 any
4 7 14 any
8 13 14 any
14 15 14 any
Exceptions:
throws java.io.IOException
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
ifnull 2
1: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.close:()V
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.io.IOException
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 sk Lsun/nio/ch/SelectionKeyImpl;
1 19 4 intOps I
2 19 5 oldOps I
3 19 6 newOps I
MethodParameters:
Name Flags
ops
initialOps
sk
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 sk Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
sk
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 sk Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
sk
int poll(int, long);
descriptor: (IJ)I
flags: (0x0000)
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.blockingLock:()Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
ifeq 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.readLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: iconst_0
istore 5
start local 5 4: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 6
monitorenter
6: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 13
7: aload 6
monitorexit
8: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
9: aload 0
iload 5
ifle 10
iconst_1
goto 11
StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.DatagramChannelImpl
10: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.DatagramChannelImpl int
11: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
aload 4
monitorexit
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
14: aload 6
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 6
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
lload 2
invokestatic sun.nio.ch.Net.poll:(Ljava/io/FileDescriptor;IJ)I
istore 5
19: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 7
21: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
22: aload 0
iload 5
ifle 23
iconst_1
goto 24
StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
23: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
24: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
25: aload 7
athrow
26: StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object int
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
27: aload 0
iload 5
ifle 28
iconst_1
goto 29
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
28: iconst_0
StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
29: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
30: iload 5
aload 4
monitorexit
31: ireturn
end local 5 32: StackMap locals: sun.nio.ch.DatagramChannelImpl int long java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
33: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/nio/ch/DatagramChannelImpl;
0 34 1 events I
0 34 2 timeout J
4 32 5 n I
Exception table:
from to target type
6 8 16 any
13 15 16 any
16 17 16 any
4 8 20 any
13 20 20 any
3 12 32 any
13 31 32 any
32 33 32 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
events
timeout
public void translateAndSetInterestOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 1
iconst_1
iand
ifeq 3
2: iload 3
getstatic sun.nio.ch.Net.POLLIN:S
ior
istore 3
3: StackMap locals: int
StackMap stack:
iload 1
iconst_4
iand
ifeq 5
4: iload 3
getstatic sun.nio.ch.Net.POLLOUT:S
ior
istore 3
5: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifeq 7
6: iload 3
getstatic sun.nio.ch.Net.POLLIN:S
ior
istore 3
7: StackMap locals:
StackMap stack:
aload 2
getfield sun.nio.ch.SelectionKeyImpl.selector:Lsun/nio/ch/SelectorImpl;
aload 2
iload 3
invokevirtual sun.nio.ch.SelectorImpl.putEventOps:(Lsun/nio/ch/SelectionKeyImpl;I)V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/DatagramChannelImpl;
0 9 1 ops I
0 9 2 sk Lsun/nio/ch/SelectionKeyImpl;
1 9 3 newOps I
MethodParameters:
Name Flags
ops
sk
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 native void initIDs();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
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 native int receive0(java.io.FileDescriptor, long, int, boolean);
descriptor: (Ljava/io/FileDescriptor;JIZ)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
address
len
connected
private native int send0(boolean, java.io.FileDescriptor, long, int, java.net.InetAddress, int);
descriptor: (ZLjava/io/FileDescriptor;JILjava/net/InetAddress;I)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
preferIPv6
fd
address
len
addr
port
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
}
SourceFile: "DatagramChannelImpl.java"
NestMembers:
sun.nio.ch.DatagramChannelImpl$DefaultOptionsHolder
InnerClasses:
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