Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-6411

[classlib][luni]DatagramSock do NOT throw Exception

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.0M13
    • Component/s: Classlib
    • Labels:
      None

      Description

      Run following simple test case, got different results from RI:

      public static void main(String[] args) throws SocketException, IOException {
      InetSocketAddress sa = InetSocketAddress.createUnresolved("localhost",0);
      new DatagramSocket().send(new DatagramPacket(new byte[272], 3, sa));
      }

      RI 5:
      Exception in thread "main" java.lang.NullPointerException: null address || null buffer
      at java.net.PlainDatagramSocketImpl.send(Native Method)
      at java.net.DatagramSocket.send(DatagramSocket.java:612)
      at DST2.main(DST2.java:10)
      Harmony 5: No Exception

      RI 6:
      Exception in thread "main" java.lang.IllegalArgumentException: unresolved address
      at java.net.DatagramPacket.setSocketAddress(DatagramPacket.java:295)
      at java.net.DatagramPacket.<init>(DatagramPacket.java:123)
      at java.net.DatagramPacket.<init>(DatagramPacket.java:158)
      at DST2.main(DST2.java:10)
      Harmony 6: No Exception

      According to the spec, InetSocketAddress.createUnresolved() says "A port number of zero will let the system pick up an ephemeral port in a bind operation."
      But DatagramPacket just says "throws IllegalArgumentException - if address type is not supported"

      Harmony's behavior should be as same as RI's

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              chleicdl Ray Chen
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: