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.net.ProtocolFamily family;
    descriptor: Ljava/net/ProtocolFamily;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.FileDescriptor fd;
    descriptor: Ljava/io/FileDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int fdVal;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.net.InetAddress cachedSenderInetAddress;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0002) ACC_PRIVATE

  private int cachedSenderPort;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.util.concurrent.locks.ReentrantLock readLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.locks.ReentrantLock writeLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object stateLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final int ST_UNCONNECTED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int ST_CONNECTED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int ST_CLOSING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int ST_KILLPENDING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int ST_KILLED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private int state;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long readerThread;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long writerThread;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.net.InetSocketAddress localAddress;
    descriptor: Ljava/net/InetSocketAddress;
    flags: (0x0002) ACC_PRIVATE

  private java.net.InetSocketAddress remoteAddress;
    descriptor: Ljava/net/InetSocketAddress;
    flags: (0x0002) ACC_PRIVATE

  private java.net.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: .line 66
            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: .line 71
            new sun.nio.ch.DatagramDispatcher
            dup
            invokespecial sun.nio.ch.DatagramDispatcher.<init>:()V
            putstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
         4: .line 1334
            invokestatic sun.nio.ch.IOUtil.load:()V
         5: .line 1335
            invokestatic sun.nio.ch.DatagramChannelImpl.initIDs:()V
         6: .line 1336
            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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.channels.spi.SelectorProvider sp
         0: .line 130
            aload 0 /* this */
            aload 1 /* sp */
            invokespecial java.nio.channels.DatagramChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
         1: .line 86
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         3: .line 93
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
         4: .line 131
            invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
         5: .line 133
            aload 0 /* this */
            invokestatic sun.nio.ch.Net.isIPv6Available:()Z
            ifeq 7
         6: .line 134
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            goto 8
         7: .line 135
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider
      StackMap stack: sun.nio.ch.DatagramChannelImpl
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
         8: .line 133
      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;
         9: .line 136
            aload 0 /* this */
            aload 0 /* this */
            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;
        10: .line 137
            aload 0 /* this */
            aload 0 /* this */
            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
        11: .line 138
            goto 15
      StackMap locals:
      StackMap stack: java.io.IOException
        12: astore 2 /* ioe */
        start local 2 // java.io.IOException ioe
        13: .line 139
            invokestatic sun.net.ResourceManager.afterUdpClose:()V
        14: .line 140
            aload 2 /* ioe */
            athrow
        end local 2 // java.io.IOException ioe
        15: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.channels.spi.SelectorProvider sp
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lsun/nio/ch/DatagramChannelImpl;
            0   16     1    sp  Ljava/nio/channels/spi/SelectorProvider;
           13   15     2   ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    11      12  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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.channels.spi.SelectorProvider sp
        start local 2 // java.net.ProtocolFamily family
         0: .line 147
            aload 0 /* this */
            aload 1 /* sp */
            invokespecial java.nio.channels.DatagramChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
         1: .line 86
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         3: .line 93
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
         4: .line 148
            aload 2 /* family */
            ldc "'family' is null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 149
            aload 2 /* family */
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            if_acmpeq 8
         6: .line 150
            aload 2 /* family */
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            if_acmpeq 8
         7: .line 151
            new java.lang.UnsupportedOperationException
            dup
            ldc "Protocol family not supported"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 153
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily
      StackMap stack:
            aload 2 /* family */
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            if_acmpne 11
         9: .line 154
            invokestatic sun.nio.ch.Net.isIPv6Available:()Z
            ifne 11
        10: .line 155
            new java.lang.UnsupportedOperationException
            dup
            ldc "IPv6 not available"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 159
      StackMap locals:
      StackMap stack:
            invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
        12: .line 161
            aload 0 /* this */
            aload 2 /* family */
            putfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
        13: .line 162
            aload 0 /* this */
            aload 2 /* family */
            iconst_0
            invokestatic sun.nio.ch.Net.socket:(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
            putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
        14: .line 163
            aload 0 /* this */
            aload 0 /* this */
            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
        15: .line 164
            goto 19
      StackMap locals:
      StackMap stack: java.io.IOException
        16: astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        17: .line 165
            invokestatic sun.net.ResourceManager.afterUdpClose:()V
        18: .line 166
            aload 3 /* ioe */
            athrow
        end local 3 // java.io.IOException ioe
        19: .line 168
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.net.ProtocolFamily family
        end local 1 // java.nio.channels.spi.SelectorProvider sp
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lsun/nio/ch/DatagramChannelImpl;
            0   20     1      sp  Ljava/nio/channels/spi/SelectorProvider;
            0   20     2  family  Ljava/net/ProtocolFamily;
           17   19     3     ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    15      16  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=4, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.channels.spi.SelectorProvider sp
        start local 2 // java.io.FileDescriptor fd
         0: .line 173
            aload 0 /* this */
            aload 1 /* sp */
            invokespecial java.nio.channels.DatagramChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
         1: .line 86
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
         2: .line 89
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
         3: .line 93
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
         4: .line 176
            invokestatic sun.net.ResourceManager.beforeUdpCreate:()V
         5: .line 178
            aload 0 /* this */
            invokestatic sun.nio.ch.Net.isIPv6Available:()Z
            ifeq 7
         6: .line 179
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            goto 8
         7: .line 180
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor
      StackMap stack: sun.nio.ch.DatagramChannelImpl
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
         8: .line 178
      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;
         9: .line 181
            aload 0 /* this */
            aload 2 /* fd */
            putfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
        10: .line 182
            aload 0 /* this */
            aload 2 /* fd */
            invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
            putfield sun.nio.ch.DatagramChannelImpl.fdVal:I
        11: .line 183
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        12: .line 184
            aload 0 /* this */
            aload 2 /* fd */
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
        13: .line 183
            aload 3
            monitorexit
        14: goto 17
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor java.lang.Object
      StackMap stack: java.lang.Throwable
        15: aload 3
            monitorexit
        16: athrow
        17: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.FileDescriptor fd
        end local 1 // java.nio.channels.spi.SelectorProvider sp
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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;
      Exception table:
        from    to  target  type
          12    14      15  any
          15    16      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      sp    
      fd    

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 190
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 2
         1: .line 191
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         2: .line 192
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/ch/DatagramChannelImpl;
    Exceptions:
      throws java.nio.channels.ClosedChannelException

  public java.net.DatagramSocket socket();
    descriptor: ()Ljava/net/DatagramSocket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 196
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 197
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
            ifnonnull 3
         2: .line 198
            aload 0 /* this */
            aload 0 /* this */
            invokestatic sun.nio.ch.DatagramSocketAdaptor.create:(Lsun/nio/ch/DatagramChannelImpl;)Ljava/net/DatagramSocket;
            putfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
         3: .line 199
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.socket:Ljava/net/DatagramSocket;
            aload 1
            monitorexit
         4: areturn
         5: .line 196
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
         0: .line 205
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 206
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         2: .line 208
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            invokestatic sun.nio.ch.Net.getRevealedLocalAddress:(Ljava/net/InetSocketAddress;)Ljava/net/InetSocketAddress;
            aload 1
            monitorexit
         3: areturn
         4: .line 205
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         5: athrow
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/nio/ch/DatagramChannelImpl;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws java.io.IOException

  public java.net.SocketAddress getRemoteAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 214
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 215
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         2: .line 216
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
            aload 1
            monitorexit
         3: areturn
         4: .line 214
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         5: athrow
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/nio/ch/DatagramChannelImpl;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Exceptions:
      throws java.io.IOException

  public <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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.SocketOption name
        start local 2 // java.lang.Object value
         0: .line 224
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 225
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
            aload 1 /* name */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 226
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         4: .line 229
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         5: .line 231
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            if_acmpeq 8
         6: .line 232
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
            if_acmpeq 8
         7: .line 233
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
            if_acmpne 11
         8: .line 236
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            aload 1 /* name */
            aload 2 /* value */
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
         9: .line 237
            aload 0 /* this */
            aload 3
            monitorexit
        10: areturn
        11: .line 240
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
            if_acmpne 28
        12: .line 241
            aload 2 /* value */
            ifnonnull 14
        13: .line 242
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot set IP_MULTICAST_IF to 'null'"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 243
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            checkcast java.net.NetworkInterface
            astore 4 /* interf */
        start local 4 // java.net.NetworkInterface interf
        15: .line 244
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            if_acmpne 21
        16: .line 245
            aload 4 /* interf */
            invokevirtual java.net.NetworkInterface.getIndex:()I
            istore 5 /* index */
        start local 5 // int index
        17: .line 246
            iload 5 /* index */
            iconst_m1
            if_icmpne 19
        18: .line 247
            new java.io.IOException
            dup
            ldc "Network interface cannot be identified"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 248
      StackMap locals: java.net.NetworkInterface int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iload 5 /* index */
            invokestatic sun.nio.ch.Net.setInterface6:(Ljava/io/FileDescriptor;I)V
        end local 5 // int index
        20: .line 249
            goto 26
        21: .line 251
      StackMap locals:
      StackMap stack:
            aload 4 /* interf */
            invokestatic sun.nio.ch.Net.anyInet4Address:(Ljava/net/NetworkInterface;)Ljava/net/Inet4Address;
            astore 5 /* target */
        start local 5 // java.net.Inet4Address target
        22: .line 252
            aload 5 /* target */
            ifnonnull 24
        23: .line 253
            new java.io.IOException
            dup
            ldc "Network interface not configured for IPv4"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 254
      StackMap locals: java.net.Inet4Address
      StackMap stack:
            aload 5 /* target */
            invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
            istore 6 /* targetAddress */
        start local 6 // int targetAddress
        25: .line 255
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iload 6 /* targetAddress */
            invokestatic sun.nio.ch.Net.setInterface4:(Ljava/io/FileDescriptor;I)V
        end local 6 // int targetAddress
        end local 5 // java.net.Inet4Address target
        26: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3
            monitorexit
        27: areturn
        end local 4 // java.net.NetworkInterface interf
        28: .line 259
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            if_acmpne 32
        29: .line 260
            invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
            ifeq 32
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            ifnull 32
        30: .line 261
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.DatagramChannelImpl.reuseAddressEmulated:Z
        31: .line 262
            aload 0 /* this */
            aload 2 /* value */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield sun.nio.ch.DatagramChannelImpl.isReuseAddress:Z
        32: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
            aload 1 /* name */
            aload 2 /* value */
            invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
        33: .line 267
            aload 0 /* this */
            aload 3
            monitorexit
        34: areturn
        35: .line 228
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        36: athrow
        end local 2 // java.lang.Object value
        end local 1 // java.net.SocketOption name
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   37     0           this  Lsun/nio/ch/DatagramChannelImpl;
            0   37     1           name  Ljava/net/SocketOption<TT;>;
            0   37     2          value  TT;
           15   28     4         interf  Ljava/net/NetworkInterface;
           17   20     5          index  I
           22   26     5         target  Ljava/net/Inet4Address;
           25   26     6  targetAddress  I
      Exception table:
        from    to  target  type
           4    10      35  any
          11    27      35  any
          28    34      35  any
          35    36      35  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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.SocketOption name
         0: .line 276
            aload 1 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 277
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.supportedOptions:()Ljava/util/Set;
            aload 1 /* name */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 278
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' not supported"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 281
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         5: .line 283
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
            if_acmpeq 8
         6: .line 284
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_TTL:Ljava/net/SocketOption;
            if_acmpeq 8
         7: .line 285
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_LOOP:Ljava/net/SocketOption;
            if_acmpne 10
         8: .line 287
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            aload 1 /* name */
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
            aload 2
            monitorexit
         9: areturn
        10: .line 290
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.IP_MULTICAST_IF:Ljava/net/SocketOption;
            if_acmpne 31
        11: .line 291
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            if_acmpne 22
        12: .line 292
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.getInterface4:(Ljava/io/FileDescriptor;)I
            istore 3 /* address */
        start local 3 // int address
        13: .line 293
            iload 3 /* address */
            ifne 16
        14: .line 294
            aload 2
            monitorexit
        15: aconst_null
            areturn
        16: .line 296
      StackMap locals: int
      StackMap stack:
            iload 3 /* address */
            invokestatic sun.nio.ch.Net.inet4FromInt:(I)Ljava/net/InetAddress;
            astore 4 /* ia */
        start local 4 // java.net.InetAddress ia
        17: .line 297
            aload 4 /* ia */
            invokestatic java.net.NetworkInterface.getByInetAddress:(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;
            astore 5 /* ni */
        start local 5 // java.net.NetworkInterface ni
        18: .line 298
            aload 5 /* ni */
            ifnonnull 20
        19: .line 299
            new java.io.IOException
            dup
            ldc "Unable to map address to interface"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 300
      StackMap locals: java.net.InetAddress java.net.NetworkInterface
      StackMap stack:
            aload 5 /* ni */
            aload 2
            monitorexit
        21: areturn
        end local 5 // java.net.NetworkInterface ni
        end local 4 // java.net.InetAddress ia
        end local 3 // int address
        22: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.getInterface6:(Ljava/io/FileDescriptor;)I
            istore 3 /* index */
        start local 3 // int index
        23: .line 303
            iload 3 /* index */
            ifne 26
        24: .line 304
            aload 2
            monitorexit
        25: aconst_null
            areturn
        26: .line 306
      StackMap locals: int
      StackMap stack:
            iload 3 /* index */
            invokestatic java.net.NetworkInterface.getByIndex:(I)Ljava/net/NetworkInterface;
            astore 4 /* ni */
        start local 4 // java.net.NetworkInterface ni
        27: .line 307
            aload 4 /* ni */
            ifnonnull 29
        28: .line 308
            new java.io.IOException
            dup
            ldc "Unable to map index to interface"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 309
      StackMap locals: java.net.NetworkInterface
      StackMap stack:
            aload 4 /* ni */
            aload 2
            monitorexit
        30: areturn
        end local 4 // java.net.NetworkInterface ni
        end local 3 // int index
        31: .line 313
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
            if_acmpne 34
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.reuseAddressEmulated:Z
            ifeq 34
        32: .line 314
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.isReuseAddress:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aload 2
            monitorexit
        33: areturn
        34: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
            aload 1 /* name */
            invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
            aload 2
            monitorexit
        35: areturn
        36: .line 280
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        37: athrow
        end local 1 // java.net.SocketOption name
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   38     0     this  Lsun/nio/ch/DatagramChannelImpl;
            0   38     1     name  Ljava/net/SocketOption<TT;>;
           13   22     3  address  I
           17   22     4       ia  Ljava/net/InetAddress;
           18   22     5       ni  Ljava/net/NetworkInterface;
           23   31     3    index  I
           27   31     4       ni  Ljava/net/NetworkInterface;
      Exception table:
        from    to  target  type
           4     9      36  any
          10    15      36  any
          16    21      36  any
          22    25      36  any
          26    30      36  any
          31    33      36  any
          34    35      36  any
          36    37      36  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 // sun.nio.ch.DatagramChannelImpl this
         0: .line 345
            getstatic sun.nio.ch.DatagramChannelImpl$DefaultOptionsHolder.defaultOptions:Ljava/util/Set;
            areturn
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/DatagramChannelImpl;
    Signature: ()Ljava/util/Set<Ljava/net/SocketOption<*>;>;

  private java.net.SocketAddress beginRead(boolean, boolean);
    descriptor: (ZZ)Ljava/net/SocketAddress;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // boolean blocking
        start local 2 // boolean mustBeConnected
         0: .line 361
            iload 1 /* blocking */
            ifeq 2
         1: .line 363
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
         2: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         3: .line 367
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         4: .line 368
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
            astore 3 /* remote */
        start local 3 // java.net.SocketAddress remote
         5: .line 369
            aload 3 /* remote */
            ifnonnull 7
            iload 2 /* mustBeConnected */
            ifeq 7
         6: .line 370
            new java.nio.channels.NotYetConnectedException
            dup
            invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
            athrow
         7: .line 371
      StackMap locals: java.net.SocketAddress java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            ifnonnull 9
         8: .line 372
            aload 0 /* this */
            aconst_null
            invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
         9: .line 373
      StackMap locals:
      StackMap stack:
            iload 1 /* blocking */
            ifeq 11
        10: .line 374
            aload 0 /* this */
            invokestatic sun.nio.ch.NativeThread.current:()J
            putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
        11: .line 366
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        12: goto 15
        end local 3 // java.net.SocketAddress remote
      StackMap locals: sun.nio.ch.DatagramChannelImpl int int top java.lang.Object
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        start local 3 // java.net.SocketAddress remote
        15: .line 376
      StackMap locals: sun.nio.ch.DatagramChannelImpl int int java.net.SocketAddress
      StackMap stack:
            aload 3 /* remote */
            areturn
        end local 3 // java.net.SocketAddress remote
        end local 2 // boolean mustBeConnected
        end local 1 // boolean blocking
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lsun/nio/ch/DatagramChannelImpl;
            0   16     1         blocking  Z
            0   16     2  mustBeConnected  Z
            5   13     3           remote  Ljava/net/SocketAddress;
           15   16     3           remote  Ljava/net/SocketAddress;
      Exception table:
        from    to  target  type
           3    12      13  any
          13    14      13  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      blocking         
      mustBeConnected  

  private void endRead(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // boolean blocking
        start local 2 // boolean completed
         0: .line 387
            iload 1 /* blocking */
            ifeq 10
         1: .line 388
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 389
            aload 0 /* this */
            lconst_0
            putfield sun.nio.ch.DatagramChannelImpl.readerThread:J
         3: .line 391
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_2
            if_icmpne 5
         4: .line 392
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 388
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* completed */
            invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
        10: .line 398
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean completed
        end local 1 // boolean blocking
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/nio/ch/DatagramChannelImpl;
            0   11     1   blocking  Z
            0   11     2  completed  Z
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
    Exceptions:
      throws java.nio.channels.AsynchronousCloseException
    MethodParameters:
           Name  Flags
      blocking   
      completed  

  public java.net.SocketAddress receive(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 404
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 2
         1: .line 405
            new java.lang.IllegalArgumentException
            dup
            ldc "Read-only buffer"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 407
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 409
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 2 /* blocking */
        start local 2 // boolean blocking
         4: .line 410
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         5: .line 411
            aconst_null
            astore 4 /* bb */
        start local 4 // java.nio.ByteBuffer bb
         6: .line 413
            aload 0 /* this */
            iload 2 /* blocking */
            iconst_0
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
            astore 5 /* remote */
        start local 5 // java.net.SocketAddress remote
         7: .line 414
            aload 5 /* remote */
            ifnull 8
            iconst_1
            goto 9
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 6 /* connected */
        start local 6 // boolean connected
        10: .line 415
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 7 /* sm */
        start local 7 // java.lang.SecurityManager sm
        11: .line 416
            iload 6 /* connected */
            ifne 12
            aload 7 /* sm */
            ifnonnull 23
        12: .line 419
      StackMap locals: int java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* dst */
            iload 6 /* connected */
            invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Z)I
            istore 3 /* n */
        13: .line 420
            iload 3 /* n */
            bipush -3
            if_icmpne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 12
        14: .line 421
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            bipush -2
            if_icmpne 46
        15: .line 451
            aload 4 /* bb */
            ifnull 17
        16: .line 452
            aload 4 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        17: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 18
            iconst_1
            goto 19
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        18: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        19: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        20: .line 454
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 21
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        22: .line 422
            aconst_null
            areturn
        23: .line 426
      StackMap locals:
      StackMap stack:
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 4 /* bb */
        24: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 4 /* bb */
            iload 6 /* connected */
            invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Z)I
            istore 3 /* n */
        25: .line 430
            iload 3 /* n */
            bipush -3
            if_icmpne 26
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 24
        26: .line 431
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            bipush -2
            if_icmpne 35
        27: .line 451
            aload 4 /* bb */
            ifnull 29
        28: .line 452
            aload 4 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        29: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 30
            iconst_1
            goto 31
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        30: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        31: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        32: .line 454
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 33
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        34: .line 432
            aconst_null
            areturn
        35: .line 433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            astore 8 /* isa */
        start local 8 // java.net.InetSocketAddress isa
        36: .line 435
            aload 7 /* sm */
            aload 8 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
        37: .line 436
            aload 8 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
        38: .line 435
            invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
        39: .line 437
            goto 44
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager java.net.InetSocketAddress
      StackMap stack: java.lang.SecurityException
        40: pop
        41: .line 439
            aload 4 /* bb */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        42: .line 440
            iconst_0
            istore 3 /* n */
        43: .line 441
            goto 24
        44: .line 443
      StackMap locals:
      StackMap stack:
            aload 4 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        45: .line 444
            aload 1 /* dst */
            aload 4 /* bb */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        end local 8 // java.net.InetSocketAddress isa
        46: .line 445
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 48
        47: .line 448
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
            ifnonnull 48
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        48: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.sender:Ljava/net/SocketAddress;
            astore 10
        49: .line 451
            aload 4 /* bb */
            ifnull 51
        50: .line 452
            aload 4 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        51: .line 453
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager top top java.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 52
            iconst_1
            goto 53
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager top top java.net.SocketAddress
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        52: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer java.net.SocketAddress int java.lang.SecurityManager top top java.net.SocketAddress
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        53: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        54: .line 454
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 55
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 55
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        55: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        56: .line 449
            aload 10
            areturn
        end local 7 // java.lang.SecurityManager sm
        end local 6 // boolean connected
        end local 5 // java.net.SocketAddress remote
        57: .line 450
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 9
        58: .line 451
            aload 4 /* bb */
            ifnull 60
        59: .line 452
            aload 4 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        60: .line 453
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer top top top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 61
            iconst_1
            goto 62
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer top top top top java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        61: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.nio.ByteBuffer top top top top java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        62: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        63: .line 454
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 64
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 64
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        64: .line 455
      StackMap locals:
      StackMap stack:
            aload 9
            athrow
        end local 4 // java.nio.ByteBuffer bb
        end local 3 // int n
        end local 2 // boolean blocking
        65: .line 456
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 11
        66: .line 457
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        67: .line 458
            aload 11
            athrow
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   68     0       this  Lsun/nio/ch/DatagramChannelImpl;
            0   68     1        dst  Ljava/nio/ByteBuffer;
            4   65     2   blocking  Z
            5   65     3          n  I
            6   65     4         bb  Ljava/nio/ByteBuffer;
            7   57     5     remote  Ljava/net/SocketAddress;
           10   57     6  connected  Z
           11   57     7         sm  Ljava/lang/SecurityManager;
           36   46     8        isa  Ljava/net/InetSocketAddress;
      Exception table:
        from    to  target  type
          36    39      40  Class java.lang.SecurityException
           6    15      57  any
          23    27      57  any
          35    49      57  any
           3    21      65  any
          23    33      65  any
          35    55      65  any
          57    65      65  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dst   

  private int receive(java.io.FileDescriptor, java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Z)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.nio.ByteBuffer dst
        start local 3 // boolean connected
         0: .line 464
            aload 2 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 4 /* pos */
        start local 4 // int pos
         1: .line 465
            aload 2 /* dst */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 5 /* lim */
        start local 5 // int lim
         2: .line 466
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 3
            iload 4 /* pos */
            iload 5 /* lim */
            if_icmple 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 467
      StackMap locals: int int
      StackMap stack:
            iload 4 /* pos */
            iload 5 /* lim */
            if_icmpgt 4
            iload 5 /* lim */
            iload 4 /* pos */
            isub
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* rem */
        start local 6 // int rem
         6: .line 468
            aload 2 /* dst */
            instanceof sun.nio.ch.DirectBuffer
            ifeq 8
            iload 6 /* rem */
            ifle 8
         7: .line 469
            aload 0 /* this */
            aload 1 /* fd */
            aload 2 /* dst */
            iload 6 /* rem */
            iload 4 /* pos */
            iload 3 /* connected */
            invokevirtual sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;IIZ)I
            ireturn
         8: .line 474
      StackMap locals: int
      StackMap stack:
            iload 6 /* rem */
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* newSize */
        start local 7 // int newSize
         9: .line 475
            iload 7 /* newSize */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 8 /* bb */
        start local 8 // java.nio.ByteBuffer bb
        10: .line 477
            aload 0 /* this */
            aload 1 /* fd */
            aload 8 /* bb */
            iload 7 /* newSize */
            iconst_0
            iload 3 /* connected */
            invokevirtual sun.nio.ch.DatagramChannelImpl.receiveIntoNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;IIZ)I
            istore 9 /* n */
        start local 9 // int n
        11: .line 478
            aload 8 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        12: .line 479
            iload 9 /* n */
            ifle 14
            iload 6 /* rem */
            ifle 14
        13: .line 480
            aload 2 /* dst */
            aload 8 /* bb */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        14: .line 481
      StackMap locals: int java.nio.ByteBuffer int
      StackMap stack:
            iload 9 /* n */
            istore 11
        15: .line 483
            aload 8 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        16: .line 481
            iload 11
            ireturn
        end local 9 // int n
        17: .line 482
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer int int int int int java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 10
        18: .line 483
            aload 8 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        19: .line 484
            aload 10
            athrow
        end local 8 // java.nio.ByteBuffer bb
        end local 7 // int newSize
        end local 6 // int rem
        end local 5 // int lim
        end local 4 // int pos
        end local 3 // boolean connected
        end local 2 // java.nio.ByteBuffer dst
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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;
            0   20     3  connected  Z
            1   20     4        pos  I
            2   20     5        lim  I
            6   20     6        rem  I
            9   20     7    newSize  I
           10   20     8         bb  Ljava/nio/ByteBuffer;
           11   17     9          n  I
      Exception table:
        from    to  target  type
          10    15      17  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      fd         
      dst        
      connected  

  private int receiveIntoNativeBuffer(java.io.FileDescriptor, java.nio.ByteBuffer, int, int, boolean);
    descriptor: (Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;IIZ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.nio.ByteBuffer bb
        start local 3 // int rem
        start local 4 // int pos
        start local 5 // boolean connected
         0: .line 491
            aload 0 /* this */
            aload 1 /* fd */
            aload 2 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 4 /* pos */
            i2l
            ladd
            iload 3 /* rem */
            iload 5 /* connected */
            invokevirtual sun.nio.ch.DatagramChannelImpl.receive0:(Ljava/io/FileDescriptor;JIZ)I
            istore 6 /* n */
        start local 6 // int n
         1: .line 492
            iload 6 /* n */
            ifle 3
         2: .line 493
            aload 2 /* bb */
            iload 4 /* pos */
            iload 6 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 494
      StackMap locals: int
      StackMap stack:
            iload 6 /* n */
            ireturn
        end local 6 // int n
        end local 5 // boolean connected
        end local 4 // int pos
        end local 3 // int rem
        end local 2 // java.nio.ByteBuffer bb
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/nio/ch/DatagramChannelImpl;
            0    4     1         fd  Ljava/io/FileDescriptor;
            0    4     2         bb  Ljava/nio/ByteBuffer;
            0    4     3        rem  I
            0    4     4        pos  I
            0    4     5  connected  Z
            1    4     6          n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      fd         
      bb         
      rem        
      pos        
      connected  

  public int send(java.nio.ByteBuffer, java.net.SocketAddress);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.net.SocketAddress target
         0: .line 500
            aload 1 /* src */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 501
            aload 2 /* target */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
            astore 3 /* isa */
        start local 3 // java.net.InetSocketAddress isa
         2: .line 503
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 505
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 4 /* blocking */
        start local 4 // boolean blocking
         4: .line 506
            iconst_0
            istore 5 /* n */
        start local 5 // int n
         5: .line 508
            aload 0 /* this */
            iload 4 /* blocking */
            iconst_0
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginWrite:(ZZ)Ljava/net/SocketAddress;
            astore 6 /* remote */
        start local 6 // java.net.SocketAddress remote
         6: .line 509
            aload 6 /* remote */
            ifnull 12
         7: .line 511
            aload 2 /* target */
            aload 6 /* remote */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 512
            new java.nio.channels.AlreadyConnectedException
            dup
            invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
            athrow
         9: .line 515
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int java.net.SocketAddress
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* src */
            ldc -1
            getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 5 /* n */
        10: .line 516
            iload 5 /* n */
            bipush -3
            if_icmpne 28
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 9
        11: .line 517
            goto 28
        12: .line 519
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 7 /* sm */
        start local 7 // java.lang.SecurityManager sm
        13: .line 520
            aload 7 /* sm */
            ifnull 19
        14: .line 521
            aload 3 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            astore 8 /* ia */
        start local 8 // java.net.InetAddress ia
        15: .line 522
            aload 8 /* ia */
            invokevirtual java.net.InetAddress.isMulticastAddress:()Z
            ifeq 18
        16: .line 523
            aload 7 /* sm */
            aload 8 /* ia */
            invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
        17: .line 524
            goto 19
        18: .line 525
      StackMap locals: java.lang.SecurityManager java.net.InetAddress
      StackMap stack:
            aload 7 /* sm */
            aload 8 /* ia */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 3 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
        end local 8 // java.net.InetAddress ia
        19: .line 529
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* src */
            aload 3 /* isa */
            invokevirtual sun.nio.ch.DatagramChannelImpl.send:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
            istore 5 /* n */
        20: .line 530
            iload 5 /* n */
            bipush -3
            if_icmpne 28
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 19
        end local 7 // java.lang.SecurityManager sm
        end local 6 // java.net.SocketAddress remote
        21: .line 532
            goto 28
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int
      StackMap stack: java.lang.Throwable
        22: astore 9
        23: .line 533
            aload 0 /* this */
            iload 4 /* blocking */
            iload 5 /* n */
            ifle 24
            iconst_1
            goto 25
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int top top top java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        24: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int top top top java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        25: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
        26: .line 534
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 27
            iload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 535
      StackMap locals:
      StackMap stack:
            aload 9
            athrow
        28: .line 533
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* blocking */
            iload 5 /* n */
            ifle 29
            iconst_1
            goto 30
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        29: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress int int
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        30: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
        31: .line 534
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 32
            iload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 32
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        32: .line 536
      StackMap locals:
      StackMap stack:
            iload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 11
        33: .line 538
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        34: .line 536
            iload 11
            ireturn
        end local 5 // int n
        end local 4 // boolean blocking
        35: .line 537
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer java.net.SocketAddress java.net.InetSocketAddress
      StackMap stack: java.lang.Throwable
            astore 10
        36: .line 538
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        37: .line 539
            aload 10
            athrow
        end local 3 // java.net.InetSocketAddress isa
        end local 2 // java.net.SocketAddress target
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   38     1       src  Ljava/nio/ByteBuffer;
            0   38     2    target  Ljava/net/SocketAddress;
            2   38     3       isa  Ljava/net/InetSocketAddress;
            4   35     4  blocking  Z
            5   35     5         n  I
            6   21     6    remote  Ljava/net/SocketAddress;
           13   21     7        sm  Ljava/lang/SecurityManager;
           15   19     8        ia  Ljava/net/InetAddress;
      Exception table:
        from    to  target  type
           5    22      22  any
           3    33      35  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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.nio.ByteBuffer src
        start local 3 // java.net.InetSocketAddress target
         0: .line 545
            aload 2 /* src */
            instanceof sun.nio.ch.DirectBuffer
            ifeq 2
         1: .line 546
            aload 0 /* this */
            aload 1 /* fd */
            aload 2 /* src */
            aload 3 /* target */
            invokevirtual sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
            ireturn
         2: .line 549
      StackMap locals:
      StackMap stack:
            aload 2 /* src */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 4 /* pos */
        start local 4 // int pos
         3: .line 550
            aload 2 /* src */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 5 /* lim */
        start local 5 // int lim
         4: .line 551
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 5
            iload 4 /* pos */
            iload 5 /* lim */
            if_icmple 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 552
      StackMap locals: int int
      StackMap stack:
            iload 4 /* pos */
            iload 5 /* lim */
            if_icmpgt 6
            iload 5 /* lim */
            iload 4 /* pos */
            isub
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* rem */
        start local 6 // int rem
         8: .line 554
            iload 6 /* rem */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 7 /* bb */
        start local 7 // java.nio.ByteBuffer bb
         9: .line 556
            aload 7 /* bb */
            aload 2 /* src */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        10: .line 557
            aload 7 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        11: .line 559
            aload 2 /* src */
            iload 4 /* pos */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        12: .line 561
            aload 0 /* this */
            aload 1 /* fd */
            aload 7 /* bb */
            aload 3 /* target */
            invokevirtual sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;Ljava/net/InetSocketAddress;)I
            istore 8 /* n */
        start local 8 // int n
        13: .line 562
            iload 8 /* n */
            ifle 15
        14: .line 564
            aload 2 /* src */
            iload 4 /* pos */
            iload 8 /* n */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        15: .line 566
      StackMap locals: int java.nio.ByteBuffer int
      StackMap stack:
            iload 8 /* n */
            istore 10
        16: .line 568
            aload 7 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        17: .line 566
            iload 10
            ireturn
        end local 8 // int n
        18: .line 567
      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: .line 568
            aload 7 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        20: .line 569
            aload 9
            athrow
        end local 7 // java.nio.ByteBuffer bb
        end local 6 // int rem
        end local 5 // int lim
        end local 4 // int pos
        end local 3 // java.net.InetSocketAddress target
        end local 2 // java.nio.ByteBuffer src
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.nio.ByteBuffer bb
        start local 3 // java.net.InetSocketAddress target
         0: .line 576
            aload 2 /* bb */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 4 /* pos */
        start local 4 // int pos
         1: .line 577
            aload 2 /* bb */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 5 /* lim */
        start local 5 // int lim
         2: .line 578
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 3
            iload 4 /* pos */
            iload 5 /* lim */
            if_icmple 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 579
      StackMap locals: int int
      StackMap stack:
            iload 4 /* pos */
            iload 5 /* lim */
            if_icmpgt 4
            iload 5 /* lim */
            iload 4 /* pos */
            isub
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* rem */
        start local 6 // int rem
         6: .line 581
            aload 0 /* this */
            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 /* preferIPv6 */
        start local 7 // boolean preferIPv6
         9: .line 584
            aload 0 /* this */
            iload 7 /* preferIPv6 */
            aload 1 /* fd */
            aload 2 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.address:()J
            iload 4 /* pos */
            i2l
            ladd
        10: .line 585
            iload 6 /* rem */
            aload 3 /* target */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            aload 3 /* target */
            invokevirtual java.net.InetSocketAddress.getPort:()I
        11: .line 584
            invokevirtual sun.nio.ch.DatagramChannelImpl.send0:(ZLjava/io/FileDescriptor;JILjava/net/InetAddress;I)I
            istore 8 /* written */
        start local 8 // int written
        12: .line 586
            goto 17
        end local 8 // int written
      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 /* pue */
        start local 9 // java.net.PortUnreachableException pue
        14: .line 587
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isConnected:()Z
            ifeq 16
        15: .line 588
            aload 9 /* pue */
            athrow
        16: .line 589
      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 /* rem */
            istore 8 /* written */
        end local 9 // java.net.PortUnreachableException pue
        start local 8 // int written
        17: .line 591
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.io.FileDescriptor java.nio.ByteBuffer java.net.InetSocketAddress int int int int int
      StackMap stack:
            iload 8 /* written */
            ifle 19
        18: .line 592
            aload 2 /* bb */
            iload 4 /* pos */
            iload 8 /* written */
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        19: .line 593
      StackMap locals:
      StackMap stack:
            iload 8 /* written */
            ireturn
        end local 8 // int written
        end local 7 // boolean preferIPv6
        end local 6 // int rem
        end local 5 // int lim
        end local 4 // int pos
        end local 3 // java.net.InetSocketAddress target
        end local 2 // java.nio.ByteBuffer bb
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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=7, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 598
            aload 1 /* buf */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 600
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 602
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 2 /* blocking */
        start local 2 // boolean blocking
         3: .line 603
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         4: .line 605
            aload 0 /* this */
            iload 2 /* blocking */
            iconst_1
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
            pop
         5: .line 607
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* buf */
            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 /* n */
         6: .line 608
            iload 3 /* n */
            bipush -3
            if_icmpne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 5
         7: .line 610
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
         9: .line 611
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 10
            iconst_1
            goto 11
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        10: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        11: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        12: .line 612
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 13
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 613
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        14: .line 611
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        15: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        16: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        17: .line 612
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 18
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 614
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 6
        19: .line 616
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 614
            iload 6
            ireturn
        end local 3 // int n
        end local 2 // boolean blocking
        21: .line 615
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 5
        22: .line 616
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 617
            aload 5
            athrow
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   24     1       buf  Ljava/nio/ByteBuffer;
            3   21     2  blocking  Z
            4   21     3         n  I
      Exception table:
        from    to  target  type
           4     8       8  any
           2    19      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   

  public long read(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
         0: .line 624
            iload 2 /* offset */
            iload 3 /* length */
            aload 1 /* dsts */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         1: .line 626
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 628
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 4 /* blocking */
        start local 4 // boolean blocking
         3: .line 629
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
         4: .line 631
            aload 0 /* this */
            iload 4 /* blocking */
            iconst_1
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
            pop
         5: .line 633
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            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 /* n */
         6: .line 634
            lload 5 /* n */
            ldc -3
            lcmp
            ifne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 5
         7: .line 636
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 7
         9: .line 637
            aload 0 /* this */
            iload 4 /* blocking */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 10
            iconst_1
            goto 11
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        10: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        11: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        12: .line 638
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 13
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 639
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        14: .line 637
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* blocking */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        15: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        16: invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        17: .line 638
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 18
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 640
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 9
        19: .line 642
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 640
            lload 9
            lreturn
        end local 5 // long n
        end local 4 // boolean blocking
        21: .line 641
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int
      StackMap stack: java.lang.Throwable
            astore 8
        22: .line 642
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 643
            aload 8
            athrow
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   24     1      dsts  [Ljava/nio/ByteBuffer;
            0   24     2    offset  I
            0   24     3    length  I
            3   21     4  blocking  Z
            4   21     5         n  J
      Exception table:
        from    to  target  type
           4     8       8  any
           2    19      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      dsts    
      offset  
      length  

  private java.net.SocketAddress beginWrite(boolean, boolean);
    descriptor: (ZZ)Ljava/net/SocketAddress;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // boolean blocking
        start local 2 // boolean mustBeConnected
         0: .line 658
            iload 1 /* blocking */
            ifeq 2
         1: .line 660
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.begin:()V
         2: .line 663
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         3: .line 664
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         4: .line 665
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
            astore 3 /* remote */
        start local 3 // java.net.SocketAddress remote
         5: .line 666
            aload 3 /* remote */
            ifnonnull 7
            iload 2 /* mustBeConnected */
            ifeq 7
         6: .line 667
            new java.nio.channels.NotYetConnectedException
            dup
            invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
            athrow
         7: .line 668
      StackMap locals: java.net.SocketAddress java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            ifnonnull 9
         8: .line 669
            aload 0 /* this */
            aconst_null
            invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
         9: .line 670
      StackMap locals:
      StackMap stack:
            iload 1 /* blocking */
            ifeq 11
        10: .line 671
            aload 0 /* this */
            invokestatic sun.nio.ch.NativeThread.current:()J
            putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
        11: .line 663
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        12: goto 15
        end local 3 // java.net.SocketAddress remote
      StackMap locals: sun.nio.ch.DatagramChannelImpl int int top java.lang.Object
      StackMap stack: java.lang.Throwable
        13: aload 4
            monitorexit
        14: athrow
        start local 3 // java.net.SocketAddress remote
        15: .line 673
      StackMap locals: sun.nio.ch.DatagramChannelImpl int int java.net.SocketAddress
      StackMap stack:
            aload 3 /* remote */
            areturn
        end local 3 // java.net.SocketAddress remote
        end local 2 // boolean mustBeConnected
        end local 1 // boolean blocking
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Lsun/nio/ch/DatagramChannelImpl;
            0   16     1         blocking  Z
            0   16     2  mustBeConnected  Z
            5   13     3           remote  Ljava/net/SocketAddress;
           15   16     3           remote  Ljava/net/SocketAddress;
      Exception table:
        from    to  target  type
           3    12      13  any
          13    14      13  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      blocking         
      mustBeConnected  

  private void endWrite(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // boolean blocking
        start local 2 // boolean completed
         0: .line 684
            iload 1 /* blocking */
            ifeq 10
         1: .line 685
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 686
            aload 0 /* this */
            lconst_0
            putfield sun.nio.ch.DatagramChannelImpl.writerThread:J
         3: .line 688
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_2
            if_icmpne 5
         4: .line 689
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         5: .line 685
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* completed */
            invokevirtual sun.nio.ch.DatagramChannelImpl.end:(Z)V
        10: .line 695
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean completed
        end local 1 // boolean blocking
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/nio/ch/DatagramChannelImpl;
            0   11     1   blocking  Z
            0   11     2  completed  Z
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
    Exceptions:
      throws java.nio.channels.AsynchronousCloseException
    MethodParameters:
           Name  Flags
      blocking   
      completed  

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.ByteBuffer buf
         0: .line 699
            aload 1 /* buf */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 701
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 703
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 2 /* blocking */
        start local 2 // boolean blocking
         3: .line 704
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         4: .line 706
            aload 0 /* this */
            iload 2 /* blocking */
            iconst_1
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginWrite:(ZZ)Ljava/net/SocketAddress;
            pop
         5: .line 708
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* buf */
            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 /* n */
         6: .line 709
            iload 3 /* n */
            bipush -3
            if_icmpne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 5
         7: .line 710
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 4
         9: .line 711
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 10
            iconst_1
            goto 11
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        10: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        11: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
        12: .line 712
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 13
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 713
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        14: .line 711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* blocking */
            iload 3 /* n */
            ifle 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        15: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer int int
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        16: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
        17: .line 712
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 18
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 714
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 6
        19: .line 716
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 714
            iload 6
            ireturn
        end local 3 // int n
        end local 2 // boolean blocking
        21: .line 715
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
            astore 5
        22: .line 716
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 717
            aload 5
            athrow
        end local 1 // java.nio.ByteBuffer buf
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   24     1       buf  Ljava/nio/ByteBuffer;
            3   21     2  blocking  Z
            4   21     3         n  I
      Exception table:
        from    to  target  type
           4     8       8  any
           2    19      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 724
            iload 2 /* offset */
            iload 3 /* length */
            aload 1 /* srcs */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         1: .line 726
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 728
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 4 /* blocking */
        start local 4 // boolean blocking
         3: .line 729
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
         4: .line 731
            aload 0 /* this */
            iload 4 /* blocking */
            iconst_1
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginWrite:(ZZ)Ljava/net/SocketAddress;
            pop
         5: .line 733
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            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 /* n */
         6: .line 734
            lload 5 /* n */
            ldc -3
            lcmp
            ifne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifne 5
         7: .line 735
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 7
         9: .line 736
            aload 0 /* this */
            iload 4 /* blocking */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 10
            iconst_1
            goto 11
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        10: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        11: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
        12: .line 737
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 13
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 738
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        14: .line 736
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* blocking */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
      StackMap stack: sun.nio.ch.DatagramChannelImpl int
        15: iconst_0
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int int long
      StackMap stack: sun.nio.ch.DatagramChannelImpl int int
        16: invokevirtual sun.nio.ch.DatagramChannelImpl.endWrite:(ZZ)V
        17: .line 737
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 18
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 739
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 9
        19: .line 741
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 739
            lload 9
            lreturn
        end local 5 // long n
        end local 4 // boolean blocking
        21: .line 740
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.nio.ByteBuffer[] int int
      StackMap stack: java.lang.Throwable
            astore 8
        22: .line 741
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 742
            aload 8
            athrow
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   24     1      srcs  [Ljava/nio/ByteBuffer;
            0   24     2    offset  I
            0   24     3    length  I
            3   21     4  blocking  Z
            4   21     5         n  J
      Exception table:
        from    to  target  type
           4     8       8  any
           2    19      21  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=5, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // boolean block
         0: .line 747
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 749
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 751
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 752
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         4: .line 753
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iload 1 /* block */
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
         5: .line 751
            aload 2
            monitorexit
         6: goto 12
      StackMap locals: sun.nio.ch.DatagramChannelImpl int java.lang.Object
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 755
      StackMap locals: sun.nio.ch.DatagramChannelImpl int
      StackMap stack: java.lang.Throwable
            astore 3
        10: .line 756
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        11: .line 757
            aload 3
            athrow
        12: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 758
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
        15: .line 759
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 760
            aload 4
            athrow
        17: .line 759
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 761
            return
        end local 1 // boolean block
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lsun/nio/ch/DatagramChannelImpl;
            0   19     1  block  Z
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
           2     9       9  any
           1    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      block  

  java.net.InetSocketAddress localAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 764
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 765
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            aload 1
            monitorexit
         2: areturn
         3: .line 764
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/DatagramChannelImpl;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  java.net.InetSocketAddress remoteAddress();
    descriptor: ()Ljava/net/InetSocketAddress;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 770
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 771
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
            aload 1
            monitorexit
         2: areturn
         3: .line 770
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/nio/ch/DatagramChannelImpl;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public java.nio.channels.DatagramChannel bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.SocketAddress local
         0: .line 777
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 779
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 781
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 782
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
         4: .line 783
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            ifnull 6
         5: .line 784
            new java.nio.channels.AlreadyBoundException
            dup
            invokespecial java.nio.channels.AlreadyBoundException.<init>:()V
            athrow
         6: .line 785
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* local */
            invokevirtual sun.nio.ch.DatagramChannelImpl.bindInternal:(Ljava/net/SocketAddress;)V
         7: .line 781
            aload 2
            monitorexit
         8: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 787
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress
      StackMap stack: java.lang.Throwable
            astore 3
        12: .line 788
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        13: .line 789
            aload 3
            athrow
        14: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        15: .line 790
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 4
        17: .line 791
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        18: .line 792
            aload 4
            athrow
        19: .line 791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 793
            aload 0 /* this */
            areturn
        end local 1 // java.net.SocketAddress local
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   21     0   this  Lsun/nio/ch/DatagramChannelImpl;
            0   21     1  local  Ljava/net/SocketAddress;
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
           2    11      11  any
           1    16      16  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      local  

  private void bindInternal(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.SocketAddress local
         0: .line 797
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
            ifnull 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 800
      StackMap locals:
      StackMap stack:
            aload 1 /* local */
            ifnonnull 8
         3: .line 802
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            if_acmpne 6
         4: .line 803
            new java.net.InetSocketAddress
            dup
            ldc "0.0.0.0"
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iconst_0
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 2 /* isa */
        start local 2 // java.net.InetSocketAddress isa
         5: .line 804
            goto 9
        end local 2 // java.net.InetSocketAddress isa
         6: .line 805
      StackMap locals:
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            iconst_0
            invokespecial java.net.InetSocketAddress.<init>:(I)V
            astore 2 /* isa */
        start local 2 // java.net.InetSocketAddress isa
         7: .line 807
            goto 9
        end local 2 // java.net.InetSocketAddress isa
         8: .line 808
      StackMap locals:
      StackMap stack:
            aload 1 /* local */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
            astore 2 /* isa */
        start local 2 // java.net.InetSocketAddress isa
         9: .line 810
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
        10: .line 811
            aload 3 /* sm */
            ifnull 12
        11: .line 812
            aload 3 /* sm */
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual java.lang.SecurityManager.checkListen:(I)V
        12: .line 814
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokestatic sun.nio.ch.Net.bind:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
        13: .line 815
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
            putfield sun.nio.ch.DatagramChannelImpl.localAddress:Ljava/net/InetSocketAddress;
        14: .line 816
            return
        end local 3 // java.lang.SecurityManager sm
        end local 2 // java.net.InetSocketAddress isa
        end local 1 // java.net.SocketAddress local
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lsun/nio/ch/DatagramChannelImpl;
            0   15     1  local  Ljava/net/SocketAddress;
            5    6     2    isa  Ljava/net/InetSocketAddress;
            7    8     2    isa  Ljava/net/InetSocketAddress;
            9   15     2    isa  Ljava/net/InetSocketAddress;
           10   15     3     sm  Ljava/lang/SecurityManager;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      local  

  public boolean isConnected();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 820
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 821
            aload 0 /* this */
            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: .line 820
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/nio/ch/DatagramChannelImpl;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public java.nio.channels.DatagramChannel connect(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.SocketAddress sa
         0: .line 827
            aload 1 /* sa */
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
            astore 2 /* isa */
        start local 2 // java.net.InetSocketAddress isa
         1: .line 828
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 3 /* sm */
        start local 3 // java.lang.SecurityManager sm
         2: .line 829
            aload 3 /* sm */
            ifnull 9
         3: .line 830
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            astore 4 /* ia */
        start local 4 // java.net.InetAddress ia
         4: .line 831
            aload 4 /* ia */
            invokevirtual java.net.InetAddress.isMulticastAddress:()Z
            ifeq 7
         5: .line 832
            aload 3 /* sm */
            aload 4 /* ia */
            invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
         6: .line 833
            goto 9
         7: .line 834
      StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress
      StackMap stack:
            aload 3 /* sm */
            aload 4 /* ia */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
         8: .line 835
            aload 3 /* sm */
            aload 4 /* ia */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
        end local 4 // java.net.InetAddress ia
         9: .line 839
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        10: .line 841
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        11: .line 843
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        12: .line 844
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
        13: .line 845
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_1
            if_icmpne 15
        14: .line 846
            new java.nio.channels.AlreadyConnectedException
            dup
            invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
            athrow
        15: .line 848
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
        16: .line 849
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
        17: .line 850
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
        18: .line 851
            aload 2 /* isa */
            invokevirtual java.net.InetSocketAddress.getPort:()I
        19: .line 848
            invokestatic sun.nio.ch.Net.connect:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
            istore 5 /* n */
        start local 5 // int n
        20: .line 852
            iload 5 /* n */
            ifgt 22
        21: .line 853
            new java.lang.Error
            dup
            invokespecial java.lang.Error.<init>:()V
            athrow
        22: .line 856
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* isa */
            putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
        23: .line 857
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.DatagramChannelImpl.state:I
        24: .line 860
            aload 0 /* this */
            aload 0 /* this */
            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;
        25: .line 863
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 6 /* blocking */
        start local 6 // boolean blocking
        26: .line 864
            iload 6 /* blocking */
            ifeq 28
        27: .line 865
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iconst_0
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
        28: .line 868
      StackMap locals: int
      StackMap stack:
            bipush 100
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 7 /* buf */
        start local 7 // java.nio.ByteBuffer buf
        29: .line 869
            goto 31
        30: .line 870
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            aload 7 /* buf */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        31: .line 869
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* buf */
            invokevirtual sun.nio.ch.DatagramChannelImpl.receive:(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
            ifnonnull 30
        end local 7 // java.nio.ByteBuffer buf
        32: .line 872
            goto 37
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int int
      StackMap stack: java.lang.Throwable
        33: astore 8
        34: .line 873
            iload 6 /* blocking */
            ifeq 36
        35: .line 874
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iconst_1
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
        36: .line 876
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int int top java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        37: .line 873
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int int
      StackMap stack:
            iload 6 /* blocking */
            ifeq 39
        38: .line 874
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iconst_1
            invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
        end local 6 // boolean blocking
        end local 5 // int n
        39: .line 843
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        40: goto 46
      StackMap locals:
      StackMap stack: java.lang.Throwable
        41: aload 4
            monitorexit
        42: athrow
        43: .line 878
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager
      StackMap stack: java.lang.Throwable
            astore 9
        44: .line 879
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        45: .line 880
            aload 9
            athrow
        46: .line 879
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        47: .line 881
            goto 51
      StackMap locals:
      StackMap stack: java.lang.Throwable
        48: astore 10
        49: .line 882
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        50: .line 883
            aload 10
            athrow
        51: .line 882
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        52: .line 884
            aload 0 /* this */
            areturn
        end local 3 // java.lang.SecurityManager sm
        end local 2 // java.net.InetSocketAddress isa
        end local 1 // java.net.SocketAddress sa
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   53     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   53     1        sa  Ljava/net/SocketAddress;
            1   53     2       isa  Ljava/net/InetSocketAddress;
            2   53     3        sm  Ljava/lang/SecurityManager;
            4    9     4        ia  Ljava/net/InetAddress;
           20   39     5         n  I
           26   39     6  blocking  Z
           29   32     7       buf  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
          28    33      33  any
          12    40      41  any
          41    42      41  any
          11    43      43  any
          10    48      48  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=2, locals=6, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 889
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         1: .line 891
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         2: .line 893
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 894
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifeq 4
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_1
            if_icmpeq 8
         4: .line 895
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            astore 4
            aload 1
            monitorexit
         5: .line 909
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         6: .line 912
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         7: .line 895
            aload 4
            areturn
         8: .line 898
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* isIPv6 */
        start local 2 // boolean isIPv6
        11: .line 899
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iload 2 /* isIPv6 */
            invokestatic sun.nio.ch.DatagramChannelImpl.disconnect0:(Ljava/io/FileDescriptor;Z)V
        12: .line 902
            aload 0 /* this */
            aconst_null
            putfield sun.nio.ch.DatagramChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
        13: .line 903
            aload 0 /* this */
            iconst_0
            putfield sun.nio.ch.DatagramChannelImpl.state:I
        14: .line 906
            aload 0 /* this */
            aload 0 /* this */
            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 2 // boolean isIPv6
        15: .line 893
            aload 1
            monitorexit
        16: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 1
            monitorexit
        18: athrow
        19: .line 908
      StackMap locals: sun.nio.ch.DatagramChannelImpl
      StackMap stack: java.lang.Throwable
            astore 3
        20: .line 909
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        21: .line 910
            aload 3
            athrow
        22: .line 909
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        23: .line 911
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 5
        25: .line 912
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        26: .line 913
            aload 5
            athrow
        27: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        28: .line 914
            aload 0 /* this */
            areturn
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   29     0    this  Lsun/nio/ch/DatagramChannelImpl;
           11   15     2  isIPv6  Z
      Exception table:
        from    to  target  type
           3     5      17  any
           8    16      17  any
          17    18      17  any
           2     5      19  any
           8    19      19  any
           1     6      24  any
           8    24      24  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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.InetAddress group
        start local 2 // java.net.NetworkInterface interf
        start local 3 // java.net.InetAddress source
         0: .line 926
            aload 1 /* group */
            invokevirtual java.net.InetAddress.isMulticastAddress:()Z
            ifne 2
         1: .line 927
            new java.lang.IllegalArgumentException
            dup
            ldc "Group not a multicast address"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 930
      StackMap locals:
      StackMap stack:
            aload 1 /* group */
            instanceof java.net.Inet4Address
            ifeq 5
         3: .line 931
            aload 0 /* this */
            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: .line 932
            new java.lang.IllegalArgumentException
            dup
            ldc "IPv6 socket cannot join IPv4 multicast group"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 933
      StackMap locals:
      StackMap stack:
            aload 1 /* group */
            instanceof java.net.Inet6Address
            ifeq 8
         6: .line 934
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            if_acmpeq 9
         7: .line 935
            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: .line 937
      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: .line 941
      StackMap locals:
      StackMap stack:
            aload 3 /* source */
            ifnull 16
        10: .line 942
            aload 3 /* source */
            invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
            ifeq 12
        11: .line 943
            new java.lang.IllegalArgumentException
            dup
            ldc "Source address is a wildcard address"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 944
      StackMap locals:
      StackMap stack:
            aload 3 /* source */
            invokevirtual java.net.InetAddress.isMulticastAddress:()Z
            ifeq 14
        13: .line 945
            new java.lang.IllegalArgumentException
            dup
            ldc "Source address is multicast address"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 946
      StackMap locals:
      StackMap stack:
            aload 3 /* source */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* group */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 16
        15: .line 947
            new java.lang.IllegalArgumentException
            dup
            ldc "Source address is different type to group"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 950
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 4 /* sm */
        start local 4 // java.lang.SecurityManager sm
        17: .line 951
            aload 4 /* sm */
            ifnull 19
        18: .line 952
            aload 4 /* sm */
            aload 1 /* group */
            invokevirtual java.lang.SecurityManager.checkMulticast:(Ljava/net/InetAddress;)V
        19: .line 954
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        20: .line 955
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.ensureOpen:()V
        21: .line 958
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
            ifnonnull 24
        22: .line 959
            aload 0 /* this */
            new sun.nio.ch.MembershipRegistry
            dup
            invokespecial sun.nio.ch.MembershipRegistry.<init>:()V
            putfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
        23: .line 960
            goto 28
        24: .line 962
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
            aload 1 /* group */
            aload 2 /* interf */
            aload 3 /* source */
            invokevirtual sun.nio.ch.MembershipRegistry.checkMembership:(Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
            astore 6 /* key */
        start local 6 // java.nio.channels.MembershipKey key
        25: .line 963
            aload 6 /* key */
            ifnull 28
        26: .line 964
            aload 6 /* key */
            aload 5
            monitorexit
        27: areturn
        end local 6 // java.nio.channels.MembershipKey key
        28: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.family:Ljava/net/ProtocolFamily;
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            if_acmpne 44
        29: .line 969
            aload 1 /* group */
            instanceof java.net.Inet6Address
            ifne 30
            invokestatic sun.nio.ch.Net.canJoin6WithIPv4Group:()Z
            ifeq 44
        30: .line 971
      StackMap locals:
      StackMap stack:
            aload 2 /* interf */
            invokevirtual java.net.NetworkInterface.getIndex:()I
            istore 7 /* index */
        start local 7 // int index
        31: .line 972
            iload 7 /* index */
            iconst_m1
            if_icmpne 33
        32: .line 973
            new java.io.IOException
            dup
            ldc "Network interface cannot be identified"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 976
      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 /* group */
            invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
            astore 8 /* groupAddress */
        start local 8 // byte[] groupAddress
        34: .line 977
            aload 3 /* source */
            ifnonnull 35
            aconst_null
            goto 36
        35: .line 978
      StackMap locals: byte[]
      StackMap stack:
            aload 3 /* source */
            invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
        36: .line 977
      StackMap locals:
      StackMap stack: byte[]
            astore 9 /* sourceAddress */
        start local 9 // byte[] sourceAddress
        37: .line 981
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 8 /* groupAddress */
            iload 7 /* index */
            aload 9 /* sourceAddress */
            invokestatic sun.nio.ch.Net.join6:(Ljava/io/FileDescriptor;[BI[B)I
            istore 10 /* n */
        start local 10 // int n
        38: .line 982
            iload 10 /* n */
            bipush -2
            if_icmpne 40
        39: .line 983
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        40: .line 985
      StackMap locals: byte[] int
      StackMap stack:
            new sun.nio.ch.MembershipKeyImpl$Type6
            dup
            aload 0 /* this */
            aload 1 /* group */
            aload 2 /* interf */
            aload 3 /* source */
        41: .line 986
            aload 8 /* groupAddress */
            iload 7 /* index */
            aload 9 /* sourceAddress */
        42: .line 985
            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 /* key */
        end local 10 // int n
        end local 9 // byte[] sourceAddress
        end local 8 // byte[] groupAddress
        end local 7 // int index
        start local 6 // sun.nio.ch.MembershipKeyImpl key
        43: .line 988
            goto 58
        end local 6 // sun.nio.ch.MembershipKeyImpl key
        44: .line 990
      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 /* interf */
            invokestatic sun.nio.ch.Net.anyInet4Address:(Ljava/net/NetworkInterface;)Ljava/net/Inet4Address;
            astore 7 /* target */
        start local 7 // java.net.Inet4Address target
        45: .line 991
            aload 7 /* target */
            ifnonnull 47
        46: .line 992
            new java.io.IOException
            dup
            ldc "Network interface not configured for IPv4"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 994
      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 /* group */
            invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
            istore 8 /* groupAddress */
        start local 8 // int groupAddress
        48: .line 995
            aload 7 /* target */
            invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
            istore 9 /* targetAddress */
        start local 9 // int targetAddress
        49: .line 996
            aload 3 /* source */
            ifnonnull 50
            iconst_0
            goto 51
      StackMap locals: int int
      StackMap stack:
        50: aload 3 /* source */
            invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
      StackMap locals:
      StackMap stack: int
        51: istore 10 /* sourceAddress */
        start local 10 // int sourceAddress
        52: .line 999
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            iload 8 /* groupAddress */
            iload 9 /* targetAddress */
            iload 10 /* sourceAddress */
            invokestatic sun.nio.ch.Net.join4:(Ljava/io/FileDescriptor;III)I
            istore 11 /* n */
        start local 11 // int n
        53: .line 1000
            iload 11 /* n */
            bipush -2
            if_icmpne 55
        54: .line 1001
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        55: .line 1003
      StackMap locals: int int
      StackMap stack:
            new sun.nio.ch.MembershipKeyImpl$Type4
            dup
            aload 0 /* this */
            aload 1 /* group */
            aload 2 /* interf */
            aload 3 /* source */
        56: .line 1004
            iload 8 /* groupAddress */
            iload 9 /* targetAddress */
            iload 10 /* sourceAddress */
        57: .line 1003
            invokespecial sun.nio.ch.MembershipKeyImpl$Type4.<init>:(Ljava/nio/channels/MulticastChannel;Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;III)V
            astore 6 /* key */
        end local 11 // int n
        end local 10 // int sourceAddress
        end local 9 // int targetAddress
        end local 8 // int groupAddress
        end local 7 // java.net.Inet4Address target
        start local 6 // sun.nio.ch.MembershipKeyImpl key
        58: .line 1007
      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 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
            aload 6 /* key */
            invokevirtual sun.nio.ch.MembershipRegistry.add:(Lsun/nio/ch/MembershipKeyImpl;)V
        59: .line 1008
            aload 6 /* key */
            aload 5
            monitorexit
        60: areturn
        end local 6 // sun.nio.ch.MembershipKeyImpl key
        61: .line 954
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.net.InetAddress java.net.NetworkInterface java.net.InetAddress java.lang.SecurityManager java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        62: athrow
        end local 4 // java.lang.SecurityManager sm
        end local 3 // java.net.InetAddress source
        end local 2 // java.net.NetworkInterface interf
        end local 1 // java.net.InetAddress group
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   63     0           this  Lsun/nio/ch/DatagramChannelImpl;
            0   63     1          group  Ljava/net/InetAddress;
            0   63     2         interf  Ljava/net/NetworkInterface;
            0   63     3         source  Ljava/net/InetAddress;
           17   63     4             sm  Ljava/lang/SecurityManager;
           25   28     6            key  Ljava/nio/channels/MembershipKey;
           43   44     6            key  Lsun/nio/ch/MembershipKeyImpl;
           58   61     6            key  Lsun/nio/ch/MembershipKeyImpl;
           31   43     7          index  I
           34   43     8   groupAddress  [B
           37   43     9  sourceAddress  [B
           38   43    10              n  I
           45   58     7         target  Ljava/net/Inet4Address;
           48   58     8   groupAddress  I
           49   58     9  targetAddress  I
           52   58    10  sourceAddress  I
           53   58    11              n  I
      Exception table:
        from    to  target  type
          20    27      61  any
          28    60      61  any
          61    62      61  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      group   
      interf  
      source  

  public java.nio.channels.MembershipKey join(java.net.InetAddress, java.net.NetworkInterface);
    descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;)Ljava/nio/channels/MembershipKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.InetAddress group
        start local 2 // java.net.NetworkInterface interf
         0: .line 1017
            aload 0 /* this */
            aload 1 /* group */
            aload 2 /* interf */
            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 // java.net.NetworkInterface interf
        end local 1 // java.net.InetAddress group
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // java.net.InetAddress group
        start local 2 // java.net.NetworkInterface interf
        start local 3 // java.net.InetAddress source
         0: .line 1026
            aload 3 /* source */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1027
            aload 0 /* this */
            aload 1 /* group */
            aload 2 /* interf */
            aload 3 /* source */
            invokevirtual sun.nio.ch.DatagramChannelImpl.innerJoin:(Ljava/net/InetAddress;Ljava/net/NetworkInterface;Ljava/net/InetAddress;)Ljava/nio/channels/MembershipKey;
            areturn
        end local 3 // java.net.InetAddress source
        end local 2 // java.net.NetworkInterface interf
        end local 1 // java.net.InetAddress group
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/nio/ch/DatagramChannelImpl;
            0    2     1   group  Ljava/net/InetAddress;
            0    2     2  interf  Ljava/net/NetworkInterface;
            0    2     3  source  Ljava/net/InetAddress;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      group   
      interf  
      source  

  void drop(sun.nio.ch.MembershipKeyImpl);
    descriptor: (Lsun/nio/ch/MembershipKeyImpl;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // sun.nio.ch.MembershipKeyImpl key
         0: .line 1032
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.channel:()Ljava/nio/channels/MulticastChannel;
            aload 0 /* this */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1034
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         2: .line 1035
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.isValid:()Z
            ifne 5
         3: .line 1036
            aload 2
            monitorexit
         4: return
         5: .line 1039
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* key */
            instanceof sun.nio.ch.MembershipKeyImpl$Type6
            ifeq 10
         6: .line 1041
            aload 1 /* key */
            checkcast sun.nio.ch.MembershipKeyImpl$Type6
         7: .line 1040
            astore 3 /* key6 */
        start local 3 // sun.nio.ch.MembershipKeyImpl$Type6 key6
         8: .line 1042
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 3 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
            aload 3 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
            aload 3 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.source:()[B
            invokestatic sun.nio.ch.Net.drop6:(Ljava/io/FileDescriptor;[BI[B)V
        end local 3 // sun.nio.ch.MembershipKeyImpl$Type6 key6
         9: .line 1043
            goto 17
        10: .line 1044
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            checkcast sun.nio.ch.MembershipKeyImpl$Type4
            astore 3 /* key4 */
        start local 3 // sun.nio.ch.MembershipKeyImpl$Type4 key4
        11: .line 1045
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 3 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
            aload 3 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
        12: .line 1046
            aload 3 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.source:()I
        13: .line 1045
            invokestatic sun.nio.ch.Net.drop4:(Ljava/io/FileDescriptor;III)V
        end local 3 // sun.nio.ch.MembershipKeyImpl$Type4 key4
        14: .line 1048
            goto 17
      StackMap locals:
      StackMap stack: java.io.IOException
        15: astore 3 /* ioe */
        start local 3 // java.io.IOException ioe
        16: .line 1050
            new java.lang.AssertionError
            dup
            aload 3 /* ioe */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // java.io.IOException ioe
        17: .line 1053
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.invalidate:()V
        18: .line 1054
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipRegistry.remove:(Lsun/nio/ch/MembershipKeyImpl;)V
        19: .line 1034
            aload 2
            monitorexit
        20: goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: aload 2
            monitorexit
        22: athrow
        23: .line 1056
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.nio.ch.MembershipKeyImpl key
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // sun.nio.ch.MembershipKeyImpl key
        start local 2 // java.net.InetAddress source
         0: .line 1065
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.channel:()Ljava/nio/channels/MulticastChannel;
            aload 0 /* this */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1066
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.sourceAddress:()Ljava/net/InetAddress;
            ifnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1068
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 1069
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.isValid:()Z
            ifne 5
         4: .line 1070
            new java.lang.IllegalStateException
            dup
            ldc "key is no longer valid"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1071
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* source */
            invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
            ifeq 7
         6: .line 1072
            new java.lang.IllegalArgumentException
            dup
            ldc "Source address is a wildcard address"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1073
      StackMap locals:
      StackMap stack:
            aload 2 /* source */
            invokevirtual java.net.InetAddress.isMulticastAddress:()Z
            ifeq 9
         8: .line 1074
            new java.lang.IllegalArgumentException
            dup
            ldc "Source address is multicast address"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1075
      StackMap locals:
      StackMap stack:
            aload 2 /* source */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.group:()Ljava/net/InetAddress;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 11
        10: .line 1076
            new java.lang.IllegalArgumentException
            dup
            ldc "Source address is different type to group"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1079
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            instanceof sun.nio.ch.MembershipKeyImpl$Type6
            ifeq 18
        12: .line 1081
            aload 1 /* key */
            checkcast sun.nio.ch.MembershipKeyImpl$Type6
        13: .line 1080
            astore 5 /* key6 */
        start local 5 // sun.nio.ch.MembershipKeyImpl$Type6 key6
        14: .line 1082
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 5 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
            aload 5 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
        15: .line 1083
            aload 2 /* source */
            invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
        16: .line 1082
            invokestatic sun.nio.ch.Net.block6:(Ljava/io/FileDescriptor;[BI[B)I
            istore 4 /* n */
        end local 5 // sun.nio.ch.MembershipKeyImpl$Type6 key6
        start local 4 // int n
        17: .line 1084
            goto 23
        end local 4 // int n
        18: .line 1086
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            checkcast sun.nio.ch.MembershipKeyImpl$Type4
        19: .line 1085
            astore 5 /* key4 */
        start local 5 // sun.nio.ch.MembershipKeyImpl$Type4 key4
        20: .line 1087
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 5 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
            aload 5 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
        21: .line 1088
            aload 2 /* source */
            invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
        22: .line 1087
            invokestatic sun.nio.ch.Net.block4:(Ljava/io/FileDescriptor;III)I
            istore 4 /* n */
        end local 5 // sun.nio.ch.MembershipKeyImpl$Type4 key4
        start local 4 // int n
        23: .line 1090
      StackMap locals: int
      StackMap stack:
            iload 4 /* n */
            bipush -2
            if_icmpne 25
        24: .line 1092
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 4 // int n
        25: .line 1068
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        26: goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: aload 3
            monitorexit
        28: athrow
        29: .line 1095
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.net.InetAddress source
        end local 1 // sun.nio.ch.MembershipKeyImpl key
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // sun.nio.ch.MembershipKeyImpl key
        start local 2 // java.net.InetAddress source
         0: .line 1101
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.channel:()Ljava/nio/channels/MulticastChannel;
            aload 0 /* this */
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1102
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 2
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.sourceAddress:()Ljava/net/InetAddress;
            ifnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 1104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 1105
            aload 1 /* key */
            invokevirtual sun.nio.ch.MembershipKeyImpl.isValid:()Z
            ifne 5
         4: .line 1106
            new java.lang.IllegalStateException
            dup
            ldc "key is no longer valid"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1109
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* key */
            instanceof sun.nio.ch.MembershipKeyImpl$Type6
            ifeq 12
         6: .line 1111
            aload 1 /* key */
            checkcast sun.nio.ch.MembershipKeyImpl$Type6
         7: .line 1110
            astore 4 /* key6 */
        start local 4 // sun.nio.ch.MembershipKeyImpl$Type6 key6
         8: .line 1112
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 4 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.groupAddress:()[B
            aload 4 /* key6 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type6.index:()I
         9: .line 1113
            aload 2 /* source */
            invokestatic sun.nio.ch.Net.inet6AsByteArray:(Ljava/net/InetAddress;)[B
        10: .line 1112
            invokestatic sun.nio.ch.Net.unblock6:(Ljava/io/FileDescriptor;[BI[B)V
        end local 4 // sun.nio.ch.MembershipKeyImpl$Type6 key6
        11: .line 1114
            goto 20
        12: .line 1116
      StackMap locals:
      StackMap stack:
            aload 1 /* key */
            checkcast sun.nio.ch.MembershipKeyImpl$Type4
        13: .line 1115
            astore 4 /* key4 */
        start local 4 // sun.nio.ch.MembershipKeyImpl$Type4 key4
        14: .line 1117
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 4 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.groupAddress:()I
            aload 4 /* key4 */
            invokevirtual sun.nio.ch.MembershipKeyImpl$Type4.interfaceAddress:()I
        15: .line 1118
            aload 2 /* source */
            invokestatic sun.nio.ch.Net.inet4AsInt:(Ljava/net/InetAddress;)I
        16: .line 1117
            invokestatic sun.nio.ch.Net.unblock4:(Ljava/io/FileDescriptor;III)V
        end local 4 // sun.nio.ch.MembershipKeyImpl$Type4 key4
        17: .line 1120
            goto 20
      StackMap locals:
      StackMap stack: java.io.IOException
        18: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        19: .line 1122
            new java.lang.AssertionError
            dup
            aload 4 /* ioe */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // java.io.IOException ioe
        20: .line 1104
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        21: goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 3
            monitorexit
        23: athrow
        24: .line 1125
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.net.InetAddress source
        end local 1 // sun.nio.ch.MembershipKeyImpl key
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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=8, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 1142
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isOpen:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1145
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* interrupted */
        start local 2 // boolean interrupted
         2: .line 1148
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 1149
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_2
            if_icmplt 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 1150
      StackMap locals: sun.nio.ch.DatagramChannelImpl top int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 1 /* blocking */
        start local 1 // boolean blocking
         5: .line 1151
            aload 0 /* this */
            iconst_2
            putfield sun.nio.ch.DatagramChannelImpl.state:I
         6: .line 1154
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
            ifnull 8
         7: .line 1155
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.registry:Lsun/nio/ch/MembershipRegistry;
            invokevirtual sun.nio.ch.MembershipRegistry.invalidateAll:()V
         8: .line 1148
      StackMap locals: sun.nio.ch.DatagramChannelImpl int int java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         9: goto 12
        end local 1 // boolean blocking
      StackMap locals: sun.nio.ch.DatagramChannelImpl top int java.lang.Object
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        start local 1 // boolean blocking
        12: .line 1159
      StackMap locals: sun.nio.ch.DatagramChannelImpl int int
      StackMap stack:
            iload 1 /* blocking */
            ifeq 33
        13: .line 1160
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        14: .line 1161
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_2
            if_icmpeq 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 1162
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readerThread:J
            lstore 4 /* reader */
        start local 4 // long reader
        16: .line 1163
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writerThread:J
            lstore 6 /* writer */
        start local 6 // long writer
        17: .line 1164
            lload 4 /* reader */
            lconst_0
            lcmp
            ifne 18
            lload 6 /* writer */
            lconst_0
            lcmp
            ifeq 29
        18: .line 1165
      StackMap locals: long long
      StackMap stack:
            getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.NativeDispatcher.preClose:(Ljava/io/FileDescriptor;)V
        19: .line 1167
            lload 4 /* reader */
            lconst_0
            lcmp
            ifeq 21
        20: .line 1168
            lload 4 /* reader */
            invokestatic sun.nio.ch.NativeThread.signal:(J)V
        21: .line 1169
      StackMap locals:
      StackMap stack:
            lload 6 /* writer */
            lconst_0
            lcmp
            ifeq 28
        22: .line 1170
            lload 6 /* writer */
            invokestatic sun.nio.ch.NativeThread.signal:(J)V
        23: .line 1173
            goto 28
        24: .line 1175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
        25: .line 1176
            goto 28
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        26: pop
        27: .line 1177
            iconst_1
            istore 2 /* interrupted */
        28: .line 1173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readerThread:J
            lconst_0
            lcmp
            ifne 24
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writerThread:J
            lconst_0
            lcmp
            ifne 24
        end local 6 // long writer
        end local 4 // long reader
        29: .line 1160
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        30: goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 3
            monitorexit
        32: athrow
        33: .line 1184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        34: .line 1186
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        35: .line 1187
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        36: .line 1188
            goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: astore 3
        38: .line 1189
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        39: .line 1190
            aload 3
            athrow
        40: .line 1189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        41: .line 1194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
        42: .line 1195
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 43
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_2
            if_icmpeq 43
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        43: .line 1196
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            iconst_3
            putfield sun.nio.ch.DatagramChannelImpl.state:I
        44: .line 1194
            aload 3
            monitorexit
        45: goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: aload 3
            monitorexit
        47: athrow
        48: .line 1200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isRegistered:()Z
            ifne 50
        49: .line 1201
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.kill:()V
        50: .line 1204
      StackMap locals:
      StackMap stack:
            iload 2 /* interrupted */
            ifeq 52
        51: .line 1205
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        52: .line 1206
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean interrupted
        end local 1 // boolean blocking
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   53     0         this  Lsun/nio/ch/DatagramChannelImpl;
            5   10     1     blocking  Z
           12   53     1     blocking  Z
            2   53     2  interrupted  Z
           16   29     4       reader  J
           17   29     6       writer  J
      Exception table:
        from    to  target  type
           3     9      10  any
          10    11      10  any
          24    25      26  Class java.lang.InterruptedException
          14    30      31  any
          31    32      31  any
          34    37      37  any
          42    45      46  any
          46    47      46  any
    Exceptions:
      throws java.io.IOException

  public void kill();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 1210
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.stateLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 1211
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.state:I
            iconst_3
            if_icmpne 9
         2: .line 1212
            aload 0 /* this */
            iconst_4
            putfield sun.nio.ch.DatagramChannelImpl.state:I
         3: .line 1214
            getstatic sun.nio.ch.DatagramChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
         4: .line 1215
            goto 8
      StackMap locals: sun.nio.ch.DatagramChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
         5: astore 2
         6: .line 1217
            invokestatic sun.net.ResourceManager.afterUdpClose:()V
         7: .line 1218
            aload 2
            athrow
         8: .line 1217
      StackMap locals:
      StackMap stack:
            invokestatic sun.net.ResourceManager.afterUdpClose:()V
         9: .line 1210
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 1221
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/nio/ch/DatagramChannelImpl;
      Exception table:
        from    to  target  type
           3     5       5  any
           1    10      11  any
          11    12      11  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 // sun.nio.ch.DatagramChannelImpl this
         0: .line 1226
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            ifnull 2
         1: .line 1227
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.close:()V
         2: .line 1228
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // int ops
        start local 2 // int initialOps
        start local 3 // sun.nio.ch.SelectionKeyImpl ski
         0: .line 1234
            aload 3 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
            istore 4 /* intOps */
        start local 4 // int intOps
         1: .line 1235
            aload 3 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
            istore 5 /* oldOps */
        start local 5 // int oldOps
         2: .line 1236
            iload 2 /* initialOps */
            istore 6 /* newOps */
        start local 6 // int newOps
         3: .line 1238
            iload 1 /* ops */
            getstatic sun.nio.ch.Net.POLLNVAL:S
            iand
            ifeq 5
         4: .line 1242
            iconst_0
            ireturn
         5: .line 1245
      StackMap locals: int int int
      StackMap stack:
            iload 1 /* ops */
            getstatic sun.nio.ch.Net.POLLERR:S
            getstatic sun.nio.ch.Net.POLLHUP:S
            ior
            iand
            ifeq 10
         6: .line 1246
            iload 4 /* intOps */
            istore 6 /* newOps */
         7: .line 1247
            aload 3 /* ski */
            iload 6 /* newOps */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
         8: .line 1248
            iload 6 /* newOps */
            iload 5 /* oldOps */
            iconst_m1
            ixor
            iand
            ifeq 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        10: .line 1251
      StackMap locals:
      StackMap stack:
            iload 1 /* ops */
            getstatic sun.nio.ch.Net.POLLIN:S
            iand
            ifeq 13
        11: .line 1252
            iload 4 /* intOps */
            iconst_1
            iand
            ifeq 13
        12: .line 1253
            iload 6 /* newOps */
            iconst_1
            ior
            istore 6 /* newOps */
        13: .line 1255
      StackMap locals:
      StackMap stack:
            iload 1 /* ops */
            getstatic sun.nio.ch.Net.POLLOUT:S
            iand
            ifeq 16
        14: .line 1256
            iload 4 /* intOps */
            iconst_4
            iand
            ifeq 16
        15: .line 1257
            iload 6 /* newOps */
            iconst_4
            ior
            istore 6 /* newOps */
        16: .line 1259
      StackMap locals:
      StackMap stack:
            aload 3 /* ski */
            iload 6 /* newOps */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
        17: .line 1260
            iload 6 /* newOps */
            iload 5 /* oldOps */
            iconst_m1
            ixor
            iand
            ifeq 18
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        18: iconst_0
            ireturn
        end local 6 // int newOps
        end local 5 // int oldOps
        end local 4 // int intOps
        end local 3 // sun.nio.ch.SelectionKeyImpl ski
        end local 2 // int initialOps
        end local 1 // int ops
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lsun/nio/ch/DatagramChannelImpl;
            0   19     1         ops  I
            0   19     2  initialOps  I
            0   19     3         ski  Lsun/nio/ch/SelectionKeyImpl;
            1   19     4      intOps  I
            2   19     5      oldOps  I
            3   19     6      newOps  I
    MethodParameters:
            Name  Flags
      ops         
      initialOps  
      ski         

  public boolean translateAndUpdateReadyOps(int, sun.nio.ch.SelectionKeyImpl);
    descriptor: (ILsun/nio/ch/SelectionKeyImpl;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // int ops
        start local 2 // sun.nio.ch.SelectionKeyImpl ski
         0: .line 1264
            aload 0 /* this */
            iload 1 /* ops */
            aload 2 /* ski */
            invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
            aload 2 /* ski */
            invokevirtual sun.nio.ch.DatagramChannelImpl.translateReadyOps:(IILsun/nio/ch/SelectionKeyImpl;)Z
            ireturn
        end local 2 // sun.nio.ch.SelectionKeyImpl ski
        end local 1 // int ops
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/DatagramChannelImpl;
            0    1     1   ops  I
            0    1     2   ski  Lsun/nio/ch/SelectionKeyImpl;
    MethodParameters:
      Name  Flags
      ops   
      ski   

  public boolean translateAndSetReadyOps(int, sun.nio.ch.SelectionKeyImpl);
    descriptor: (ILsun/nio/ch/SelectionKeyImpl;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // int ops
        start local 2 // sun.nio.ch.SelectionKeyImpl ski
         0: .line 1268
            aload 0 /* this */
            iload 1 /* ops */
            iconst_0
            aload 2 /* ski */
            invokevirtual sun.nio.ch.DatagramChannelImpl.translateReadyOps:(IILsun/nio/ch/SelectionKeyImpl;)Z
            ireturn
        end local 2 // sun.nio.ch.SelectionKeyImpl ski
        end local 1 // int ops
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/DatagramChannelImpl;
            0    1     1   ops  I
            0    1     2   ski  Lsun/nio/ch/SelectionKeyImpl;
    MethodParameters:
      Name  Flags
      ops   
      ski   

  boolean pollRead(long);
    descriptor: (J)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // long timeout
         0: .line 1276
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.isBlocking:()Z
            istore 3 /* blocking */
        start local 3 // boolean blocking
         1: .line 1277
            getstatic sun.nio.ch.DatagramChannelImpl.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            invokevirtual sun.nio.ch.DatagramChannelImpl.blockingLock:()Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 2
            iload 3 /* blocking */
            ifne 3
      StackMap locals: int
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 1279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         4: .line 1281
            iconst_0
            istore 4 /* polled */
        start local 4 // boolean polled
         5: .line 1283
            aload 0 /* this */
            iload 3 /* blocking */
            iconst_0
            invokevirtual sun.nio.ch.DatagramChannelImpl.beginRead:(ZZ)Ljava/net/SocketAddress;
            pop
         6: .line 1284
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            getstatic sun.nio.ch.Net.POLLIN:S
            lload 1 /* timeout */
            invokestatic sun.nio.ch.Net.poll:(Ljava/io/FileDescriptor;IJ)I
            istore 5 /* events */
        start local 5 // int events
         7: .line 1285
            iload 5 /* events */
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: int int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* polled */
        end local 5 // int events
        10: .line 1286
            goto 14
      StackMap locals: sun.nio.ch.DatagramChannelImpl long int int
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 1287
            aload 0 /* this */
            iload 3 /* blocking */
            iload 4 /* polled */
            invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        13: .line 1288
            aload 6
            athrow
        14: .line 1287
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* blocking */
            iload 4 /* polled */
            invokevirtual sun.nio.ch.DatagramChannelImpl.endRead:(ZZ)V
        15: .line 1289
            iload 4 /* polled */
            istore 8
        16: .line 1291
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        17: .line 1289
            iload 8
            ireturn
        end local 4 // boolean polled
        18: .line 1290
      StackMap locals: sun.nio.ch.DatagramChannelImpl long int
      StackMap stack: java.lang.Throwable
            astore 7
        19: .line 1291
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        20: .line 1292
            aload 7
            athrow
        end local 3 // boolean blocking
        end local 1 // long timeout
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lsun/nio/ch/DatagramChannelImpl;
            0   21     1   timeout  J
            1   21     3  blocking  Z
            5   18     4    polled  Z
            7   10     5    events  I
      Exception table:
        from    to  target  type
           5    11      11  any
           4    16      18  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      timeout  

  public int translateInterestOps(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.DatagramChannelImpl this
        start local 1 // int ops
         0: .line 1299
            iconst_0
            istore 2 /* newOps */
        start local 2 // int newOps
         1: .line 1300
            iload 1 /* ops */
            iconst_1
            iand
            ifeq 3
         2: .line 1301
            iload 2 /* newOps */
            getstatic sun.nio.ch.Net.POLLIN:S
            ior
            istore 2 /* newOps */
         3: .line 1302
      StackMap locals: int
      StackMap stack:
            iload 1 /* ops */
            iconst_4
            iand
            ifeq 5
         4: .line 1303
            iload 2 /* newOps */
            getstatic sun.nio.ch.Net.POLLOUT:S
            ior
            istore 2 /* newOps */
         5: .line 1304
      StackMap locals:
      StackMap stack:
            iload 1 /* ops */
            bipush 8
            iand
            ifeq 7
         6: .line 1305
            iload 2 /* newOps */
            getstatic sun.nio.ch.Net.POLLIN:S
            ior
            istore 2 /* newOps */
         7: .line 1306
      StackMap locals:
      StackMap stack:
            iload 2 /* newOps */
            ireturn
        end local 2 // int newOps
        end local 1 // int ops
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/nio/ch/DatagramChannelImpl;
            0    8     1     ops  I
            1    8     2  newOps  I
    MethodParameters:
      Name  Flags
      ops   

  public java.io.FileDescriptor getFD();
    descriptor: ()Ljava/io/FileDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.DatagramChannelImpl this
         0: .line 1310
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fd:Ljava/io/FileDescriptor;
            areturn
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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 // sun.nio.ch.DatagramChannelImpl this
         0: .line 1314
            aload 0 /* this */
            getfield sun.nio.ch.DatagramChannelImpl.fdVal:I
            ireturn
        end local 0 // sun.nio.ch.DatagramChannelImpl this
      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: .line 1
            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: .line 1
            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