Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
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
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