java.net.InetAddress.getAllByName(null) throws UnknownHostException instead of 
valid InetAddress
------------------------------------------------------------------------------------------------

         Key: HARMONY-56
         URL: http://issues.apache.org/jira/browse/HARMONY-56
     Project: Harmony
        Type: Bug
  Components: Classlib  
    Reporter: Svetlana Samoilenko


According to j2se 1.4.2 specification java.net.InetAddress.getAllByName(String 
host) method allows a host is null. In this case the  InetAddress representing 
an address of the loopback interface is returned.
But as we can see from the test listed below 
java.net.InetAddress.getAllByName(null) throws UnknownHostException instead of 
valid InetAddress.

Code to reproduce: 
import java.net.*;
public class test2 {
    public static void main (String[] args) {
 
        try {
           InetAddress[] ia = InetAddress.getAllByName(null); 
           for (int i = 0; i<ia.length; i++) {
               System.out.println("***InetAddress.getAllByName(null)["+i+"] 
returned " + ia[i]); 
           }
        } catch (Exception e) {
            System.out.println("***Unexpected exception:" + e); 
       }
    } 
}

Steps to Reproduce: 
1. Build Harmony (check-out on 2006-01-30) j2se subset as described in 
README.txt. 
2. Compile test2.java using BEA 1.4 javac 
> javac -d . test2.java 
3. Run java using compatible VM (J9) 
> java -showversion test2 

Output: 
C:\tmp>C:\jrockit-j2sdk1.4.2_04\bin\java.exe -showversion test2 
java version "1.4.2_04" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05) 
BEA WebLogic JRockit(TM) 1.4.2_04 JVM (build ari-31788-20040616-1132-win-ia32, 
Native Threads, GC strategy: parallel) 
***InetAddress.getAllByName(null)[0] returned localhost/127.0.0.1

C:\tmp>C:\harmony\trunk\deploy\jre\bin\java -showversion test2 
(c) Copyright 1991, 2005 The Apache Software Foundation or its licensors, as 
applicable.
***Unexpected exception:java.net.UnknownHostException: No host name provided

Suggested junit test case:
------------------------ InetAddressTest.java 
------------------------------------------------- 
import java.net.*; 
import junit.framework.*; 

public class InetAddressTest extends TestCase { 
    public static void main(String[] args) { 
        junit.textui.TestRunner.run(InetAddressTest.class); 
    } 

    public void test_getAllByName() { 
        try {
           InetAddress[] ia = InetAddress.getAllByName(null); 
           assertEquals ("Assert 0: getAllByName() returns incorrect value " + 
ia[0].toString(),"localhost/127.0.0.1",ia[0].toString()); 
        } catch (Exception e) {            
           fail("Assert 1: Unexpected exception:" + e);
        }
    } 
}


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to