InetAddress.getByName/getAllByName for empty host string

Jaikiran Pai jai.forums2013 at
Fri Apr 13 14:29:26 UTC 2018

The javadoc of InetAddress.getByName(host) and getAllByName(host) states 

If the host is null then an InetAddress representing an address of the 
loopback interface is returned.

For non-null values the javadoc explains what the implementation does. 
However, there seems to be no mention of what it does with an empty 
string (length == 0) value for the host param. Right now, the 
implementation seems to treat an empty value the same way it treats the 
host == null case and returns an InetAddress representing the loopback 

Consider the following example:

public class InetAddressTest {
     public static void main(final String[] args) throws Exception {
         System.out.println("InetAddress.getByName() for empty string 
returns " +""));
         System.out.println("InetAddress.getAllByName() for empty string 
returns "


This outputs:

InetAddress.getByName() for empty string returns localhost/
InetAddress.getAllByName() for empty string returns [localhost/]

Is it intentional for these APIs to behave this way for empty string? If 
so, should the javadoc be updated to explicitly state this behaviour?


More information about the core-libs-dev mailing list