Harmony
  1. Harmony
  2. HARMONY-890

[classlib][net] compatibility: incorrect default port number for new DatagramPacket(new byte[], int)

    Details

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

      Description

      The Harmony method new DatagramPacket(new byte[], int) construct the object with '0' port number while RI with '-1'.
      It leads to different exception behavior for Harmony vs RI.

      ===================== test.java ====================
      import java.net.*;

      public class test {
      public static void main (String [] args) {
      try

      { System.out.println("getPort = " + new DatagramPacket(new byte[942],4).getPort()); }

      catch (Exception e)

      { e.printStackTrace(); }
      try { System.out.println("getSocketAddress = " + new DatagramPacket(new byte[942],4).getSocketAddress()); } catch (Exception e) { e.printStackTrace(); }


      }
      }
      ================================================

      Output:
      C:\tmp\tmp17>C:\jrockit-jdk1.5.0-windows-ia32\bin\java.exe -cp . -showversion test
      java version "1.5.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
      BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32, R25.0.0-75, GC: System optimized over throughput (initial strategy singleparpar))

      getPort = -1
      java.lang.IllegalArgumentException: port out of range:-1
      at java.net.InetSocketAddress.<init>(InetSocketAddress.java:83)
      at java.net.DatagramPacket.getSocketAddress()Ljava.net.SocketAddress;(Unknown Source)
      at test.main(test.java:11)

      C:\tmp\tmp17>C:\harmony\trunk_0427\deploy\jdk\jre\bin\java.exe -cp . -showversion test
      java version 1.5 (subset)

      (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
      getPort = 0
      getSocketAddress = 0.0.0.0/0.0.0.0:0

      C:\tmp\tmp17>C:\harmony\drlvm\trunk\build\win_ia32_msvc_debug\deploy\jre\bin\ij -cp . -showversion test
      Apache Harmony DRLVM HEAD-4807 (2006-05-02), Windows/ia32/msvc 1310, debug
      getPort = 0
      getSocketAddress = 0.0.0.0/0.0.0.0:0

      1. DatagramPacket.patch
        1 kB
        Vladimir Ivanov
      2. 890.diff
        2 kB
        spark shen

        Activity

        Hide
        Paulex Yang added a comment -

        Verified by Vladimir.

        Show
        Paulex Yang added a comment - Verified by Vladimir.
        Hide
        Vladimir Ivanov added a comment -

        verified, thanks

        Show
        Vladimir Ivanov added a comment - verified, thanks
        Hide
        Paulex Yang added a comment -

        Vladimir and Spark, updated patch applied at revision r448767, thanks a lot for this enhancement. Please verify the problem is fully resolved as you expected.

        Show
        Paulex Yang added a comment - Vladimir and Spark, updated patch applied at revision r448767, thanks a lot for this enhancement. Please verify the problem is fully resolved as you expected.
        Hide
        spark shen added a comment -

        The old patch of JIRA 890 is outdated. I update the patch for
        this JIRA. Would you please try this patch?

        Best regards

        Show
        spark shen added a comment - The old patch of JIRA 890 is outdated. I update the patch for this JIRA. Would you please try this patch? Best regards
        Hide
        Vladimir Ivanov added a comment -

        unit test + patch

        Show
        Vladimir Ivanov added a comment - unit test + patch

          People

          • Assignee:
            Paulex Yang
            Reporter:
            Vladimir Ivanov
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development