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
java.io.FileDescriptor fd;
descriptor: Ljava/io/FileDescriptor;
flags: (0x0000)
int fdVal;
descriptor: I
flags: (0x0000)
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 int ST_UNCONNECTED;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int ST_CONNECTED;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
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
java.net.InetSocketAddress remoteAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0000)
private sun.nio.ch.SocketOpts$IP options;
descriptor: Lsun/nio/ch/SocketOpts$IP;
flags: (0x0002) ACC_PRIVATE
private java.net.DatagramSocket socket;
descriptor: Ljava/net/DatagramSocket;
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: iconst_0
putstatic sun.nio.ch.DatagramChannelImpl.ST_UNCONNECTED:I
5: iconst_1
putstatic sun.nio.ch.DatagramChannelImpl.ST_CONNECTED:I
6: invokestatic sun.nio.ch.IOUtil.load:()V
7: invokestatic sun.nio.ch.DatagramChannelImpl.initIDs:()V
8: 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
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
3: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
4: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderInetAddress:Ljava/net/InetAddress;
5: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderPort:I
6: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
7: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
8: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
9: aload 0
iconst_m1
putfield sun.nio.ch.DatagramChannelImpl.state:I
10: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
11: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
12: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.options:Lsun/nio/ch/SocketOpts$IP;
13: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
14: invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
15: aload 0
iconst_0
invokestatic sun.nio.ch.Net.socket:(Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
16: 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
17: aload 0
getstatic sun.nio.ch.DatagramChannelImpl.ST_UNCONNECTED:I
putfield sun.nio.ch.DatagramChannelImpl.state:I
18: goto 22
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider
StackMap stack: java.io.IOException
19: astore 2
start local 2 20: invokestatic sun.net.ResourceManager.afterUdpClose:()V
21: aload 2
athrow
end local 2 22: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/nio/ch/DatagramChannelImpl;
0 23 1 sp Ljava/nio/channels/spi/SelectorProvider;
20 22 2 ioe Ljava/io/IOException;
Exception table:
from to target type
15 18 19 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
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
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
2: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
3: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
4: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderInetAddress:Ljava/net/InetAddress;
5: aload 0
iconst_0
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderPort:I
6: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
7: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
8: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
9: aload 0
iconst_m1
putfield sun.nio.ch.DatagramChannelImpl.state:I
10: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
11: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
12: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.options:Lsun/nio/ch/SocketOpts$IP;
13: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
14: aload 0
aload 2
putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
15: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.DatagramChannelImpl.fdVal:I
16: aload 0
getstatic sun.nio.ch.DatagramChannelImpl.ST_UNCONNECTED:I
putfield sun.nio.ch.DatagramChannelImpl.state:I
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/nio/ch/DatagramChannelImpl;
0 18 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 18 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
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.isBound:()Z
ifne 9
7: aload 2
monitorexit
8: aconst_null
areturn
9: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
istore 3
start local 3 10: aconst_null
astore 4
start local 4 11: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
12: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
13: aload 4
ifnull 15
14: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
15: StackMap locals: int java.nio.ByteBuffer
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
16: aload 0
iload 3
ifgt 17
iload 3
bipush -2
if_icmpeq 17
iconst_0
goto 18
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
17: 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
18: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
19: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 20
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
20: aload 2
monitorexit
21: aconst_null
areturn
22: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 23: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
24: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifne 25
aload 5
ifnonnull 37
25: 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
26: iload 3
bipush -3
if_icmpne 27
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 25
27: StackMap locals:
StackMap stack:
iload 3
bipush -2
if_icmpne 62
28: aload 4
ifnull 30
29: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
30: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
31: aload 0
iload 3
ifgt 32
iload 3
bipush -2
if_icmpeq 32
iconst_0
goto 33
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
32: 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
33: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
34: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 35
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 35
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
35: aload 2
monitorexit
36: aconst_null
areturn
37: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 4
38: 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
39: iload 3
bipush -3
if_icmpne 40
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 38
40: StackMap locals:
StackMap stack:
iload 3
bipush -2
if_icmpne 50
41: aload 4
ifnull 43
42: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
43: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
44: aload 0
iload 3
ifgt 45
iload 3
bipush -2
if_icmpeq 45
iconst_0
goto 46
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
45: 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
46: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
47: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 48
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 48
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
48: aload 2
monitorexit
49: aconst_null
areturn
50: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
astore 6
start local 6 51: aload 5
52: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
53: aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
54: invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
55: goto 60
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
56: pop
57: aload 4
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
58: iconst_0
istore 3
59: goto 38
60: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
61: aload 1
aload 4
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
end local 6 62: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
astore 8
63: aload 4
ifnull 65
64: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
65: 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
66: aload 0
iload 3
ifgt 67
iload 3
bipush -2
if_icmpeq 67
iconst_0
goto 68
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
67: 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
68: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
69: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 70
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 70
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
70: StackMap locals:
StackMap stack:
aload 2
monitorexit
71: aload 8
areturn
end local 5 72: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 7
73: aload 4
ifnull 75
74: aload 4
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
75: 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
76: aload 0
iload 3
ifgt 77
iload 3
bipush -2
if_icmpeq 77
iconst_0
goto 78
StackMap locals:
StackMap stack: sun.nio.ch.DatagramChannelImpl
77: 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
78: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
79: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 80
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 80
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
80: StackMap locals:
StackMap stack:
aload 7
athrow
end local 4 end local 3 81: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
82: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 83 0 this Lsun/nio/ch/DatagramChannelImpl;
0 83 1 dst Ljava/nio/ByteBuffer;
10 81 3 n I
11 81 4 bb Ljava/nio/ByteBuffer;
23 72 5 security Ljava/lang/SecurityManager;
51 62 6 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
51 55 56 Class java.lang.SecurityException
11 13 72 any
22 28 72 any
37 41 72 any
50 63 72 any
5 8 81 any
9 21 81 any
22 36 81 any
37 49 81 any
50 71 81 any
72 82 81 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: aconst_null
astore 7
start local 7 10: iload 6
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 7
11: 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 12: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
13: iload 8
ifle 15
iload 5
ifle 15
14: aload 2
aload 7
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
15: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 8
istore 10
16: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
17: iload 10
ireturn
end local 8 18: StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer int 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 dst Ljava/nio/ByteBuffer;
1 21 3 pos I
2 21 4 lim I
6 21 5 rem I
9 21 6 newSize I
10 21 7 bb Ljava/nio/ByteBuffer;
12 18 8 n I
Exception table:
from to target type
10 16 18 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=9, 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:
iload 6
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 8
46: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
47: aload 0
iload 6
ifgt 48
iload 6
bipush -2
if_icmpeq 48
iconst_0
goto 49
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int top int
StackMap stack: sun.nio.ch.DatagramChannelImpl
48: 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 int
StackMap stack: sun.nio.ch.DatagramChannelImpl int
49: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
50: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 51
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 51
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
51: StackMap locals:
StackMap stack:
aload 3
monitorexit
52: iload 8
ireturn
53: 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 7
54: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
55: aload 0
iload 6
ifgt 56
iload 6
bipush -2
if_icmpeq 56
iconst_0
goto 57
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl
56: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object java.net.InetSocketAddress java.net.InetAddress int java.lang.Throwable
StackMap stack: sun.nio.ch.DatagramChannelImpl int
57: invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
58: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 59
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 59
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
59: StackMap locals:
StackMap stack:
aload 7
athrow
end local 6 end local 5 end local 4 60: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
61: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lsun/nio/ch/DatagramChannelImpl;
0 62 1 src Ljava/nio/ByteBuffer;
0 62 2 target Ljava/net/SocketAddress;
5 60 4 isa Ljava/net/InetSocketAddress;
6 60 5 ia Ljava/net/InetAddress;
13 20 7 sm Ljava/lang/SecurityManager;
33 60 6 n I
Exception table:
from to target type
9 26 30 any
28 29 30 any
30 31 30 any
33 35 53 any
42 46 53 any
3 27 60 any
28 41 60 any
42 52 60 any
53 61 60 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: aconst_null
astore 7
start local 7 9: iload 6
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 7
10: aload 7
aload 2
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
11: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
12: aload 2
iload 4
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
13: 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 14: iload 8
ifle 16
15: aload 2
iload 4
iload 8
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
16: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 8
istore 10
17: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
18: iload 10
ireturn
end local 8 19: 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
20: aload 7
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
21: 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 22 0 this Lsun/nio/ch/DatagramChannelImpl;
0 22 1 fd Ljava/io/FileDescriptor;
0 22 2 src Ljava/nio/ByteBuffer;
0 22 3 target Ljava/net/InetSocketAddress;
3 22 4 pos I
4 22 5 lim I
8 22 6 rem I
9 22 7 bb Ljava/nio/ByteBuffer;
14 19 8 n I
Exception table:
from to target type
9 17 19 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
src
target
private int sendFromNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, java.net.InetSocketAddress);
descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 4
start local 4 1: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5
start local 5 2: getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
ifne 3
iload 4
iload 5
if_icmple 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int int
StackMap stack:
iload 4
iload 5
if_icmpgt 4
iload 5
iload 4
isub
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 6
start local 6 6: aload 0
aload 1
aload 2
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 4
i2l
ladd
7: iload 6
aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
8: invokevirtual sun.nio.ch.DatagramChannelImpl.send0:(Ljava/io/FileDescriptor;JILjava/net/InetAddress;I)I
istore 7
start local 7 9: iload 7
ifle 11
10: aload 2
iload 4
iload 7
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
11: StackMap locals: int int
StackMap stack:
iload 7
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/DatagramChannelImpl;
0 12 1 fd Ljava/io/FileDescriptor;
0 12 2 bb Ljava/nio/ByteBuffer;
0 12 3 target Ljava/net/InetSocketAddress;
1 12 4 pos I
2 12 5 lim I
6 12 6 rem I
9 12 7 written I
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=6, 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;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;Ljava/lang/Object;)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
private long read0(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, 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:
lconst_0
lstore 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
lload 3
lconst_0
lcmp
ifgt 16
lload 3
ldc -2
lcmp
ifeq 16
iconst_0
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] java.lang.Object long
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] 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 3
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 2
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
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
lstore 3
23: lload 3
ldc -3
lcmp
ifne 24
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
24: StackMap locals:
StackMap stack:
lload 3
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 6
25: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
26: aload 0
lload 3
lconst_0
lcmp
ifgt 27
lload 3
ldc -2
lcmp
ifeq 27
iconst_0
goto 28
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] java.lang.Object long top long
StackMap stack: sun.nio.ch.DatagramChannelImpl
27: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] 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 3
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 2
monitorexit
31: lload 6
lreturn
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] java.lang.Object long
StackMap stack: java.lang.Throwable
astore 5
33: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
34: aload 0
lload 3
lconst_0
lcmp
ifgt 35
lload 3
ldc -2
lcmp
ifeq 35
iconst_0
goto 36
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] 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[] 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 3
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 5
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 bufs [Ljava/nio/ByteBuffer;
12 39 3 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
bufs
public long read(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
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: 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
aload 1
iload 2
iload 3
invokestatic sun.nio.ch.Util.subsequence:([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
invokevirtual sun.nio.ch.DatagramChannelImpl.read0:([Ljava/nio/ByteBuffer;)J
lreturn
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 dsts [Ljava/nio/ByteBuffer;
0 3 2 offset I
0 3 3 length I
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=6, 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;
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/lang/Object;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;Ljava/lang/Object;)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
private long write0(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, 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:
lconst_0
lstore 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
lload 3
lconst_0
lcmp
ifgt 16
lload 3
ldc -2
lcmp
ifeq 16
iconst_0
goto 17
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] java.lang.Object long
StackMap stack: sun.nio.ch.DatagramChannelImpl
16: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] 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 3
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 2
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
getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
lstore 3
23: lload 3
ldc -3
lcmp
ifne 24
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
ifne 22
24: StackMap locals:
StackMap stack:
lload 3
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 6
25: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
26: aload 0
lload 3
lconst_0
lcmp
ifgt 27
lload 3
ldc -2
lcmp
ifeq 27
iconst_0
goto 28
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] java.lang.Object long top long
StackMap stack: sun.nio.ch.DatagramChannelImpl
27: iconst_1
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] 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 3
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 2
monitorexit
31: lload 6
lreturn
32: StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] java.lang.Object long
StackMap stack: java.lang.Throwable
astore 5
33: aload 0
lconst_0
putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
34: aload 0
lload 3
lconst_0
lcmp
ifgt 35
lload 3
ldc -2
lcmp
ifeq 35
iconst_0
goto 36
StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] 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[] 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 3
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 5
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 bufs [Ljava/nio/ByteBuffer;
12 39 3 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
bufs
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
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: 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
aload 1
iload 2
iload 3
invokestatic sun.nio.ch.Util.subsequence:([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
invokevirtual sun.nio.ch.DatagramChannelImpl.write0:([Ljava/nio/ByteBuffer;)J
lreturn
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 srcs [Ljava/nio/ByteBuffer;
0 3 2 offset I
0 3 3 length I
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 sun.nio.ch.SocketOpts options();
descriptor: ()Lsun/nio/ch/SocketOpts;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, 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.options:Lsun/nio/ch/SocketOpts$IP;
ifnonnull 5
2: new sun.nio.ch.DatagramChannelImpl$1
dup
aload 0
invokespecial sun.nio.ch.DatagramChannelImpl$1.<init>:(Lsun/nio/ch/DatagramChannelImpl;)V
3: astore 2
start local 2 4: aload 0
new sun.nio.ch.SocketOptsImpl$IP
dup
aload 2
invokespecial sun.nio.ch.SocketOptsImpl$IP.<init>:(Lsun/nio/ch/SocketOptsImpl$Dispatcher;)V
putfield sun.nio.ch.DatagramChannelImpl.options:Lsun/nio/ch/SocketOpts$IP;
end local 2 5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.options:Lsun/nio/ch/SocketOpts$IP;
aload 1
monitorexit
6: areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
8: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/DatagramChannelImpl;
4 5 2 d Lsun/nio/ch/SocketOptsImpl$Dispatcher;
Exception table:
from to target type
1 6 7 any
7 8 7 any
public boolean isBound();
descriptor: ()Z
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;
invokestatic sun.nio.ch.Net.localPortNumber:(Ljava/io/FileDescriptor;)I
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/DatagramChannelImpl;
public java.net.SocketAddress localAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, 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
invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
ifeq 3
aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 3
2: 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;
3: StackMap locals: java.lang.Object
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 4: aload 2
ifnull 7
5: aload 0
getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
astore 3
start local 3 6: aload 2
aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
iconst_m1
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
end local 3 7: StackMap locals: java.lang.SecurityManager
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
8: areturn
end local 2 9: StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
10: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/DatagramChannelImpl;
4 9 2 sm Ljava/lang/SecurityManager;
6 7 3 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
1 8 9 any
9 10 9 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 void bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, 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
invokevirtual sun.nio.ch.DatagramChannelImpl.isBound:()Z
ifeq 6
5: new sun.nio.ch.AlreadyBoundException
dup
invokespecial sun.nio.ch.AlreadyBoundException.<init>:()V
athrow
6: StackMap locals: java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 5
start local 5 7: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 8: aload 6
ifnull 10
9: aload 6
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
10: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
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/io/FileDescriptor;Ljava/net/InetAddress;I)V
11: 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;
12: iconst_0
istore 7
start local 7 13: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.blockingLock:()Ljava/lang/Object;
dup
astore 8
monitorenter
14: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
istore 7
15: iconst_1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 9
start local 9 16: iload 7
ifeq 18
17: aload 0
iconst_0
invokevirtual sun.nio.ch.DatagramChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
18: StackMap locals: int java.lang.Object java.nio.ByteBuffer
StackMap stack:
aload 9
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
19: aload 0
aload 9
invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
ifnonnull 18
end local 9 20: goto 25
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
StackMap stack: java.lang.Throwable
21: astore 10
22: iload 7
ifeq 24
23: aload 0
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
24: 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 top java.lang.Throwable
StackMap stack:
aload 10
athrow
25: 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
StackMap stack:
iload 7
ifeq 27
26: aload 0
iconst_1
invokevirtual sun.nio.ch.DatagramChannelImpl.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
27: StackMap locals:
StackMap stack:
aload 8
monitorexit
28: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 8
monitorexit
30: athrow
end local 7 end local 6 end local 5 31: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 4
monitorexit
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 4
monitorexit
34: athrow
35: StackMap locals:
StackMap stack:
aload 3
monitorexit
36: goto 39
StackMap locals:
StackMap stack: java.lang.Throwable
37: aload 3
monitorexit
38: athrow
39: StackMap locals:
StackMap stack:
aload 2
monitorexit
40: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
41: aload 2
monitorexit
42: athrow
43: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lsun/nio/ch/DatagramChannelImpl;
0 44 1 local Ljava/net/SocketAddress;
7 31 5 isa Ljava/net/InetSocketAddress;
8 31 6 sm Ljava/lang/SecurityManager;
13 31 7 blocking Z
16 20 9 tmpBuf Ljava/nio/ByteBuffer;
Exception table:
from to target type
14 21 21 any
14 28 29 any
29 30 29 any
3 32 33 any
33 34 33 any
2 36 37 any
37 38 37 any
1 40 41 any
41 42 41 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
getstatic sun.nio.ch.DatagramChannelImpl.ST_CONNECTED:I
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
getstatic sun.nio.ch.DatagramChannelImpl.ST_UNCONNECTED:I
if_icmpeq 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=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: 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.ensureOpenAndUnconnected:()V
5: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 6
start local 6 6: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 7
start local 7 7: aload 7
ifnull 11
8: aload 7
aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
9: aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
10: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
11: StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
12: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
13: aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
14: iload 2
15: invokestatic sun.nio.ch.Net.connect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)I
istore 8
start local 8 16: iload 8
ifgt 18
17: new java.lang.Error
dup
invokespecial java.lang.Error.<init>:()V
athrow
18: StackMap locals: int
StackMap stack:
aload 0
getstatic sun.nio.ch.DatagramChannelImpl.ST_CONNECTED:I
putfield sun.nio.ch.DatagramChannelImpl.state:I
19: aload 0
aload 6
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
20: aload 0
aload 6
putfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
21: aload 0
aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderInetAddress:Ljava/net/InetAddress;
22: aload 0
aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
putfield sun.nio.ch.DatagramChannelImpl.cachedSenderPort:I
end local 8 end local 7 end local 6 23: aload 5
monitorexit
24: goto 27
StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
25: aload 5
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
aload 4
monitorexit
28: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 4
monitorexit
30: athrow
31: StackMap locals:
StackMap stack:
aload 3
monitorexit
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 3
monitorexit
34: athrow
35: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/nio/ch/DatagramChannelImpl;
0 36 1 sa Ljava/net/SocketAddress;
1 36 2 trafficClass I
6 23 6 isa Ljava/net/InetSocketAddress;
7 23 7 sm Ljava/lang/SecurityManager;
16 23 8 n I
Exception table:
from to target type
4 24 25 any
25 26 25 any
3 28 29 any
29 30 29 any
2 32 33 any
33 34 33 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=6, 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.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.DatagramChannelImpl.disconnect0:(Ljava/io/FileDescriptor;)V
15: aload 0
aconst_null
putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
16: aload 0
getstatic sun.nio.ch.DatagramChannelImpl.ST_UNCONNECTED:I
putfield sun.nio.ch.DatagramChannelImpl.state:I
end local 5 end local 4 17: aload 3
monitorexit
18: goto 21
StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
19: aload 3
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
aload 2
monitorexit
22: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
23: aload 2
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
aload 1
monitorexit
26: goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
27: aload 1
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/nio/ch/DatagramChannelImpl;
9 17 4 isa Ljava/net/InetSocketAddress;
10 17 5 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
3 5 19 any
8 18 19 any
19 20 19 any
2 6 23 any
8 22 23 any
23 24 23 any
1 7 27 any
8 26 27 any
27 28 27 any
Exceptions:
throws java.io.IOException
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: 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
2: invokestatic sun.net.ResourceManager.afterUdpClose:()V
3: aload 0
getfield sun.nio.ch.DatagramChannelImpl.readerThread:J
dup2
lstore 2
start local 2 4: lconst_0
lcmp
ifeq 6
5: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
6: StackMap locals: java.lang.Object long
StackMap stack:
aload 0
getfield sun.nio.ch.DatagramChannelImpl.writerThread:J
dup2
lstore 2
lconst_0
lcmp
ifeq 8
7: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.isRegistered:()Z
ifne 10
9: aload 0
invokevirtual sun.nio.ch.DatagramChannelImpl.kill:()V
end local 2 10: StackMap locals:
StackMap stack:
aload 1
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 1
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/DatagramChannelImpl;
4 10 2 th J
Exception table:
from to target type
1 11 12 any
12 13 12 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
bipush 32
iand
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: int int int
StackMap stack:
iload 1
bipush 24
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
iconst_1
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
iconst_4
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
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
iconst_1
ior
istore 3
3: StackMap locals: int
StackMap stack:
iload 1
iconst_4
iand
ifeq 5
4: iload 3
iconst_4
ior
istore 3
5: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifeq 7
6: iload 3
iconst_1
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);
descriptor: (Ljava/io/FileDescriptor;)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
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(java.io.FileDescriptor, long, int, java.net.InetAddress, int);
descriptor: (Ljava/io/FileDescriptor;JILjava/net/InetAddress;I)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
address
len
addr
port
}
SourceFile: "DatagramChannelImpl.java"
NestMembers:
sun.nio.ch.DatagramChannelImpl$1
InnerClasses:
sun.nio.ch.DatagramChannelImpl$1
public abstract IP = sun.nio.ch.SocketOpts$IP of sun.nio.ch.SocketOpts
abstract Dispatcher = sun.nio.ch.SocketOptsImpl$Dispatcher of sun.nio.ch.SocketOptsImpl
IP = sun.nio.ch.SocketOptsImpl$IP of sun.nio.ch.SocketOptsImpl