diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 444735113a..9d59c25428 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1211,6 +1211,8 @@ Release 2.8.0 - UNRELEASED HADOOP-12284. UserGroupInformation doAs can throw misleading exception (Aaron Dosset via stevel) + HADOOP-12449. TestDNS and TestNetUtils failing if no network. (stevel) + OPTIMIZATIONS HADOOP-12051. ProtobufRpcEngine.invoke() should use Exception.toString() diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestDNS.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestDNS.java index 2a3098ad23..b26c7caa61 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestDNS.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestDNS.java @@ -25,6 +25,7 @@ import java.net.UnknownHostException; import java.net.InetAddress; +import javax.naming.CommunicationException; import javax.naming.NameNotFoundException; import org.apache.commons.logging.Log; @@ -165,8 +166,8 @@ public void testRDNS() throws Exception { InetAddress localhost = getLocalIPAddr(); try { String s = DNS.reverseDns(localhost, null); - LOG.info("Local revers DNS hostname is " + s); - } catch (NameNotFoundException e) { + LOG.info("Local reverse DNS hostname is " + s); + } catch (NameNotFoundException | CommunicationException e) { if (!localhost.isLinkLocalAddress() || localhost.isLoopbackAddress()) { //these addresses probably won't work with rDNS anyway, unless someone //has unusual entries in their DNS server mapping 1.0.0.127 to localhost diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java index a12054b1b3..c93ede8bf6 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java @@ -615,20 +615,30 @@ public void testCanonicalUriWithNoPortNoDefaultPort() { * Test for {@link NetUtils#normalizeHostNames} */ @Test - public void testNormalizeHostName() { - List hosts = Arrays.asList(new String[] {"127.0.0.1", - "localhost", "1.kanyezone.appspot.com", "UnknownHost123"}); + public void testNormalizeHostName() { + String oneHost = "1.kanyezone.appspot.com"; + try { + InetAddress.getByName(oneHost); + } catch (UnknownHostException e) { + Assume.assumeTrue("Network not resolving "+ oneHost, false); + } + List hosts = Arrays.asList("127.0.0.1", + "localhost", oneHost, "UnknownHost123"); List normalizedHosts = NetUtils.normalizeHostNames(hosts); + String summary = "original [" + StringUtils.join(hosts, ", ") + "]" + + " normalized [" + StringUtils.join(normalizedHosts, ", ") + "]"; // when ipaddress is normalized, same address is expected in return - assertEquals(normalizedHosts.get(0), hosts.get(0)); + assertEquals(summary, hosts.get(0), normalizedHosts.get(0)); // for normalizing a resolvable hostname, resolved ipaddress is expected in return - assertFalse(normalizedHosts.get(1).equals(hosts.get(1))); - assertEquals(normalizedHosts.get(1), hosts.get(0)); + assertFalse("Element 1 equal "+ summary, + normalizedHosts.get(1).equals(hosts.get(1))); + assertEquals(summary, hosts.get(0), normalizedHosts.get(1)); // this address HADOOP-8372: when normalizing a valid resolvable hostname start with numeric, // its ipaddress is expected to return - assertFalse(normalizedHosts.get(2).equals(hosts.get(2))); + assertFalse("Element 2 equal " + summary, + normalizedHosts.get(2).equals(hosts.get(2))); // return the same hostname after normalizing a irresolvable hostname. - assertEquals(normalizedHosts.get(3), hosts.get(3)); + assertEquals(summary, hosts.get(3), normalizedHosts.get(3)); } @Test