[ 
http://issues.apache.org/jira/browse/HARMONY-84?page=comments#action_12365837 ] 

Paulex Yang commented on HARMONY-84:
------------------------------------

A suggested simple fix is rewrite the toString() as below:
<code>
        public String toString() {
                return (hostName==null?"":hostName)+"/"+getHostAddress();
        }
</code>

> java.net.InetAddress() shouldn't perform reverse name lookup
> ------------------------------------------------------------
>
>          Key: HARMONY-84
>          URL: http://issues.apache.org/jira/browse/HARMONY-84
>      Project: Harmony
>         Type: Bug
>   Components: Classlib
>     Reporter: Paulex Yang
>     Priority: Minor

>
> Currently,  the java.net.InetAddress.toString() is as below:
>     <code>
>     public String toString() {
>         return getHostName() + "/" + getHostAddress();
>     }
>     </code>
>     But actually the toString() should behave differently with getHostName()!
>     the Java spec for toString():
>     <spec>
>         Converts this IP address to a String. The string returned is of the 
> form: hostname / literal IP address. If the host name is unresolved, no 
> reverse name service loopup is performed. The hostname part will be 
> represented by an empty string.
>     </spec>
>     and the spec for getHostName() says:
>     <spec>
>     If this InetAddress was created with a host name, this host name will be 
> remembered and returned; otherwise, a reverse name lookup will be performed 
> and the result will be returned based on the system configured name lookup 
> service.
>     </spec>
>     Spec shows that toString() shouldn't perform reverse name lookup while 
> getHostName() should!
>     A simple test show this bug:
>     <code>
>     public class ToStringTest{
>     public static void main(String[] args) throws Exception{
>         InetAddress addr = InetAddress.getByName("localhost");
>         System.out.println(addr);
>         InetAddress addr2 = InetAddress.getByAddress(new byte[]{127, 0, 0, 
> 1});
>         System.out.println(addr2);
>     }
>     }
>     </code>
>     on RI, it outputs:
>         localhost/127.0.0.1
>         /127.0.0.1
>     and on Harmony, it outputs:
>         localhost/127.0.0.1
>         localhost/127.0.0.1

-- 
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