Hi Jaikiran,
On 13/04/18 15:29, Jaikiran Pai wrote:
The javadoc of InetAddress.getByName(host) and getAllByName(host) states
that:
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
address.
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 " + java.net.InetAddress.getByName(""));
System.out.println("InetAddress.getAllByName() for empty string
returns "
+
java.util.Arrays.toString(java.net.InetAddress.getAllByName("")));
}
}
This outputs:
InetAddress.getByName() for empty string returns localhost/127.0.0.1
InetAddress.getAllByName() for empty string returns [localhost/127.0.0.1]
Is it intentional for these APIs to behave this way for empty string?
Yes.
If
so, should the javadoc be updated to explicitly state this behaviour?
Yeah, probably.
The following JIRA issue has been filed to track this:
https://bugs.openjdk.java.net/browse/JDK-8201545
-Chris.