class java.net.DualStackPlainDatagramSocketImpl extends java.net.AbstractPlainDatagramSocketImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.net.DualStackPlainDatagramSocketImpl
  super_class: java.net.AbstractPlainDatagramSocketImpl
{
  static sun.misc.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Lsun/misc/JavaIOFileDescriptorAccess;
    flags: (0x0008) ACC_STATIC

  private final boolean exclusiveBind;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean reuseAddressEmulated;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean isReuseAddress;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 46
            invokestatic sun.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Lsun/misc/JavaIOFileDescriptorAccess;
            putstatic java.net.DualStackPlainDatagramSocketImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
         1: .line 49
            invokestatic java.net.DualStackPlainDatagramSocketImpl.initIDs:()V
         2: .line 50
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // boolean exclBind
         0: .line 64
            aload 0 /* this */
            invokespecial java.net.AbstractPlainDatagramSocketImpl.<init>:()V
         1: .line 65
            aload 0 /* this */
            iload 1 /* exclBind */
            putfield java.net.DualStackPlainDatagramSocketImpl.exclusiveBind:Z
         2: .line 66
            return
        end local 1 // boolean exclBind
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    3     1  exclBind  Z
    MethodParameters:
          Name  Flags
      exclBind  

  protected void datagramSocketCreate();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
         0: .line 69
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            ifnonnull 2
         1: .line 70
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 72
      StackMap locals:
      StackMap stack:
            iconst_0
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketCreate:(Z)I
            istore 1 /* newfd */
        start local 1 // int newfd
         3: .line 74
            getstatic java.net.DualStackPlainDatagramSocketImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            iload 1 /* newfd */
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
         4: .line 75
            return
        end local 1 // int newfd
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/net/DualStackPlainDatagramSocketImpl;
            3    5     1  newfd  I
    Exceptions:
      throws java.net.SocketException

  protected synchronized void bind0(int, java.net.InetAddress);
    descriptor: (ILjava/net/InetAddress;)V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // int lport
        start local 2 // java.net.InetAddress laddr
         0: .line 79
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 3 /* nativefd */
        start local 3 // int nativefd
         1: .line 81
            aload 2 /* laddr */
            ifnonnull 3
         2: .line 82
            new java.lang.NullPointerException
            dup
            ldc "argument address"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 84
      StackMap locals: int
      StackMap stack:
            iload 3 /* nativefd */
            aload 2 /* laddr */
            iload 1 /* lport */
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.exclusiveBind:Z
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketBind:(ILjava/net/InetAddress;IZ)V
         4: .line 85
            iload 1 /* lport */
            ifne 7
         5: .line 86
            aload 0 /* this */
            iload 3 /* nativefd */
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketLocalPort:(I)I
            putfield java.net.DualStackPlainDatagramSocketImpl.localPort:I
         6: .line 87
            goto 8
         7: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* lport */
            putfield java.net.DualStackPlainDatagramSocketImpl.localPort:I
         8: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int nativefd
        end local 2 // java.net.InetAddress laddr
        end local 1 // int lport
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    9     1     lport  I
            0    9     2     laddr  Ljava/net/InetAddress;
            1    9     3  nativefd  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
       Name  Flags
      lport  
      laddr  

  protected synchronized int peek(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)I
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.InetAddress address
         0: .line 93
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            pop
         1: .line 95
            aload 1 /* address */
            ifnonnull 3
         2: .line 96
            new java.lang.NullPointerException
            dup
            ldc "Null address in peek()"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 99
      StackMap locals:
      StackMap stack:
            new java.net.DatagramPacket
            dup
            iconst_1
            newarray 8
            iconst_1
            invokespecial java.net.DatagramPacket.<init>:([BI)V
            astore 2 /* peekPacket */
        start local 2 // java.net.DatagramPacket peekPacket
         4: .line 100
            aload 0 /* this */
            aload 2 /* peekPacket */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.peekData:(Ljava/net/DatagramPacket;)I
            istore 3 /* peekPort */
        start local 3 // int peekPort
         5: .line 101
            aload 2 /* peekPacket */
            invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
            astore 1 /* address */
         6: .line 102
            iload 3 /* peekPort */
            ireturn
        end local 3 // int peekPort
        end local 2 // java.net.DatagramPacket peekPacket
        end local 1 // java.net.InetAddress address
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    7     1     address  Ljava/net/InetAddress;
            4    7     2  peekPacket  Ljava/net/DatagramPacket;
            5    7     3    peekPort  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      address  

  protected synchronized int peekData(java.net.DatagramPacket);
    descriptor: (Ljava/net/DatagramPacket;)I
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.DatagramPacket p
         0: .line 106
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 2 /* nativefd */
        start local 2 // int nativefd
         1: .line 108
            aload 1 /* p */
            ifnonnull 3
         2: .line 109
            new java.lang.NullPointerException
            dup
            ldc "packet"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 110
      StackMap locals: int
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getData:()[B
            ifnonnull 5
         4: .line 111
            new java.lang.NullPointerException
            dup
            ldc "packet buffer"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 113
      StackMap locals:
      StackMap stack:
            iload 2 /* nativefd */
            aload 1 /* p */
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.timeout:I
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.connected:Z
            iconst_1
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketReceiveOrPeekData:(ILjava/net/DatagramPacket;IZZ)I
            ireturn
        end local 2 // int nativefd
        end local 1 // java.net.DatagramPacket p
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    6     1         p  Ljava/net/DatagramPacket;
            1    6     2  nativefd  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  protected synchronized void receive0(java.net.DatagramPacket);
    descriptor: (Ljava/net/DatagramPacket;)V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.DatagramPacket p
         0: .line 117
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 2 /* nativefd */
        start local 2 // int nativefd
         1: .line 119
            aload 1 /* p */
            ifnonnull 3
         2: .line 120
            new java.lang.NullPointerException
            dup
            ldc "packet"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 121
      StackMap locals: int
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getData:()[B
            ifnonnull 5
         4: .line 122
            new java.lang.NullPointerException
            dup
            ldc "packet buffer"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 124
      StackMap locals:
      StackMap stack:
            iload 2 /* nativefd */
            aload 1 /* p */
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.timeout:I
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.connected:Z
            iconst_0
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketReceiveOrPeekData:(ILjava/net/DatagramPacket;IZZ)I
            pop
         6: .line 125
            return
        end local 2 // int nativefd
        end local 1 // java.net.DatagramPacket p
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    7     1         p  Ljava/net/DatagramPacket;
            1    7     2  nativefd  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  protected void send(java.net.DatagramPacket);
    descriptor: (Ljava/net/DatagramPacket;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.DatagramPacket p
         0: .line 128
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 2 /* nativefd */
        start local 2 // int nativefd
         1: .line 130
            aload 1 /* p */
            ifnonnull 3
         2: .line 131
            new java.lang.NullPointerException
            dup
            ldc "null packet"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 133
      StackMap locals: int
      StackMap stack:
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
            ifnull 4
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getData:()[B
            ifnonnull 5
         4: .line 134
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
            ldc "null address || null buffer"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 136
      StackMap locals:
      StackMap stack:
            iload 2 /* nativefd */
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getData:()[B
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getOffset:()I
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getLength:()I
         6: .line 137
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getAddress:()Ljava/net/InetAddress;
            aload 1 /* p */
            invokevirtual java.net.DatagramPacket.getPort:()I
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.connected:Z
         7: .line 136
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketSend:(I[BIILjava/net/InetAddress;IZ)V
         8: .line 138
            return
        end local 2 // int nativefd
        end local 1 // java.net.DatagramPacket p
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    9     1         p  Ljava/net/DatagramPacket;
            1    9     2  nativefd  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  protected void connect0(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.InetAddress address
        start local 2 // int port
         0: .line 141
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 3 /* nativefd */
        start local 3 // int nativefd
         1: .line 143
            aload 1 /* address */
            ifnonnull 3
         2: .line 144
            new java.lang.NullPointerException
            dup
            ldc "address"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 146
      StackMap locals: int
      StackMap stack:
            iload 3 /* nativefd */
            aload 1 /* address */
            iload 2 /* port */
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketConnect:(ILjava/net/InetAddress;I)V
         4: .line 147
            return
        end local 3 // int nativefd
        end local 2 // int port
        end local 1 // java.net.InetAddress address
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    5     1   address  Ljava/net/InetAddress;
            0    5     2      port  I
            1    5     3  nativefd  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
         Name  Flags
      address  
      port     

  protected void disconnect0(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // int family
         0: .line 150
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            ifnull 1
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual java.io.FileDescriptor.valid:()Z
            ifne 2
         1: .line 151
      StackMap locals:
      StackMap stack:
            return
         2: .line 153
      StackMap locals:
      StackMap stack:
            getstatic java.net.DualStackPlainDatagramSocketImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketDisconnect:(I)V
         3: .line 154
            return
        end local 1 // int family
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    4     1  family  I
    MethodParameters:
        Name  Flags
      family  

  protected void datagramSocketClose();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
         0: .line 157
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            ifnull 1
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual java.io.FileDescriptor.valid:()Z
            ifne 2
         1: .line 158
      StackMap locals:
      StackMap stack:
            return
         2: .line 160
      StackMap locals:
      StackMap stack:
            getstatic java.net.DualStackPlainDatagramSocketImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketClose:(I)V
         3: .line 161
            getstatic java.net.DualStackPlainDatagramSocketImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            iconst_m1
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
         4: .line 162
            return
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/net/DualStackPlainDatagramSocketImpl;

  protected void socketSetOption(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // int opt
        start local 2 // java.lang.Object val
         0: .line 166
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 3 /* nativefd */
        start local 3 // int nativefd
         1: .line 168
            iconst_0
            istore 4 /* optionValue */
        start local 4 // int optionValue
         2: .line 170
            iload 1 /* opt */
            lookupswitch { // 5
                    3: 3
                    4: 5
                   32: 9
                 4097: 3
                 4098: 3
              default: 13
          }
         3: .line 174
      StackMap locals: int int
      StackMap stack:
            aload 2 /* val */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* optionValue */
         4: .line 175
            goto 14
         5: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.exclusiveBind:Z
            ifeq 9
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.localPort:I
            ifeq 9
         6: .line 179
            aload 0 /* this */
            iconst_1
            putfield java.net.DualStackPlainDatagramSocketImpl.reuseAddressEmulated:Z
         7: .line 180
            aload 0 /* this */
            aload 2 /* val */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield java.net.DualStackPlainDatagramSocketImpl.isReuseAddress:Z
         8: .line 181
            return
         9: .line 185
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 4 /* optionValue */
        12: .line 186
            goto 14
        13: .line 188
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Option not supported"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 191
      StackMap locals:
      StackMap stack:
            iload 3 /* nativefd */
            iload 1 /* opt */
            iload 4 /* optionValue */
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketSetIntOption:(III)V
        15: .line 192
            return
        end local 4 // int optionValue
        end local 3 // int nativefd
        end local 2 // java.lang.Object val
        end local 1 // int opt
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0   16     1          opt  I
            0   16     2          val  Ljava/lang/Object;
            1   16     3     nativefd  I
            2   16     4  optionValue  I
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      opt   
      val   

  protected java.lang.Object socketGetOption(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // int opt
         0: .line 195
            aload 0 /* this */
            invokevirtual java.net.DualStackPlainDatagramSocketImpl.checkAndReturnNativeFD:()I
            istore 2 /* nativefd */
        start local 2 // int nativefd
         1: .line 198
            iload 1 /* opt */
            bipush 15
            if_icmpne 3
         2: .line 199
            iload 2 /* nativefd */
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketLocalAddress:(I)Ljava/lang/Object;
            areturn
         3: .line 201
      StackMap locals: int
      StackMap stack:
            iload 1 /* opt */
            iconst_4
            if_icmpne 5
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.reuseAddressEmulated:Z
            ifeq 5
         4: .line 202
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.isReuseAddress:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         5: .line 204
      StackMap locals:
      StackMap stack:
            iload 2 /* nativefd */
            iload 1 /* opt */
            invokestatic java.net.DualStackPlainDatagramSocketImpl.socketGetIntOption:(II)I
            istore 3 /* value */
        start local 3 // int value
         6: .line 205
            aconst_null
            astore 4 /* returnValue */
        start local 4 // java.lang.Object returnValue
         7: .line 207
            iload 1 /* opt */
            lookupswitch { // 5
                    3: 12
                    4: 8
                   32: 8
                 4097: 12
                 4098: 12
              default: 14
          }
         8: .line 210
      StackMap locals: int java.lang.Object
      StackMap stack:
            iload 3 /* value */
            ifne 9
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            goto 10
      StackMap locals:
      StackMap stack:
         9: getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
      StackMap locals:
      StackMap stack: java.lang.Boolean
        10: astore 4 /* returnValue */
        11: .line 211
            goto 15
        12: .line 215
      StackMap locals:
      StackMap stack:
            new java.lang.Integer
            dup
            iload 3 /* value */
            invokespecial java.lang.Integer.<init>:(I)V
            astore 4 /* returnValue */
        13: .line 216
            goto 15
        14: .line 218
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Option not supported"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 221
      StackMap locals:
      StackMap stack:
            aload 4 /* returnValue */
            areturn
        end local 4 // java.lang.Object returnValue
        end local 3 // int value
        end local 2 // int nativefd
        end local 1 // int opt
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0   16     1          opt  I
            1   16     2     nativefd  I
            6   16     3        value  I
            7   16     4  returnValue  Ljava/lang/Object;
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      opt   

  protected void join(java.net.InetAddress, java.net.NetworkInterface);
    descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.InetAddress inetaddr
        start local 2 // java.net.NetworkInterface netIf
         0: .line 231
            new java.io.IOException
            dup
            ldc "Method not implemented!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.net.NetworkInterface netIf
        end local 1 // java.net.InetAddress inetaddr
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    1     1  inetaddr  Ljava/net/InetAddress;
            0    1     2     netIf  Ljava/net/NetworkInterface;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      inetaddr  
      netIf     

  protected void leave(java.net.InetAddress, java.net.NetworkInterface);
    descriptor: (Ljava/net/InetAddress;Ljava/net/NetworkInterface;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // java.net.InetAddress inetaddr
        start local 2 // java.net.NetworkInterface netIf
         0: .line 236
            new java.io.IOException
            dup
            ldc "Method not implemented!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.net.NetworkInterface netIf
        end local 1 // java.net.InetAddress inetaddr
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    1     1  inetaddr  Ljava/net/InetAddress;
            0    1     2     netIf  Ljava/net/NetworkInterface;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      inetaddr  
      netIf     

  protected void setTimeToLive(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // int ttl
         0: .line 240
            new java.io.IOException
            dup
            ldc "Method not implemented!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int ttl
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    1     1   ttl  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ttl   

  protected int getTimeToLive();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
         0: .line 244
            new java.io.IOException
            dup
            ldc "Method not implemented!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DualStackPlainDatagramSocketImpl;
    Exceptions:
      throws java.io.IOException

  protected void setTTL(byte);
    descriptor: (B)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
        start local 1 // byte ttl
         0: .line 249
            new java.io.IOException
            dup
            ldc "Method not implemented!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // byte ttl
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DualStackPlainDatagramSocketImpl;
            0    1     1   ttl  B
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      ttl   

  protected byte getTTL();
    descriptor: ()B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
         0: .line 254
            new java.io.IOException
            dup
            ldc "Method not implemented!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/net/DualStackPlainDatagramSocketImpl;
    Exceptions:
      throws java.io.IOException
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private int checkAndReturnNativeFD();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.net.DualStackPlainDatagramSocketImpl this
         0: .line 259
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            ifnull 1
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual java.io.FileDescriptor.valid:()Z
            ifne 2
         1: .line 260
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
            ldc "Socket closed"
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 262
      StackMap locals:
      StackMap stack:
            getstatic java.net.DualStackPlainDatagramSocketImpl.fdAccess:Lsun/misc/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield java.net.DualStackPlainDatagramSocketImpl.fd:Ljava/io/FileDescriptor;
            invokeinterface sun.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
            ireturn
        end local 0 // java.net.DualStackPlainDatagramSocketImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/net/DualStackPlainDatagramSocketImpl;
    Exceptions:
      throws java.net.SocketException

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native int socketCreate(boolean);
    descriptor: (Z)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      v6Only  

  private static native void socketBind(int, java.net.InetAddress, int, boolean);
    descriptor: (ILjava/net/InetAddress;IZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
              Name  Flags
      fd            
      localAddress  
      localport     
      exclBind      

  private static native void socketConnect(int, java.net.InetAddress, int);
    descriptor: (ILjava/net/InetAddress;I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
         Name  Flags
      fd       
      address  
      port     

  private static native void socketDisconnect(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native void socketClose(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native int socketLocalPort(int);
    descriptor: (I)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      fd    

  private static native java.lang.Object socketLocalAddress(int);
    descriptor: (I)Ljava/lang/Object;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      fd    

  private static native int socketReceiveOrPeekData(int, java.net.DatagramPacket, int, boolean, boolean);
    descriptor: (ILjava/net/DatagramPacket;IZZ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      fd         
      packet     
      timeout    
      connected  
      peek       

  private static native void socketSend(int, byte[], int, int, java.net.InetAddress, int, boolean);
    descriptor: (I[BIILjava/net/InetAddress;IZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      fd         
      data       
      offset     
      length     
      address    
      port       
      connected  

  private static native void socketSetIntOption(int, int, int);
    descriptor: (III)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
             Name  Flags
      fd           
      cmd          
      optionValue  

  private static native int socketGetIntOption(int, int);
    descriptor: (II)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.net.SocketException
    MethodParameters:
      Name  Flags
      fd    
      cmd   

  native int dataAvailable();
    descriptor: ()I
    flags: (0x0100) ACC_NATIVE
}
SourceFile: "DualStackPlainDatagramSocketImpl.java"