diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 317d1f89d21..4ffb7f92db5 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -32,6 +32,9 @@ Release 2.0.3-alpha - Unreleased HADOOP-8889. Upgrade to Surefire 2.12.3 (todd) + HADOOP-8804. Improve Web UIs when the wildcard address is used. + (Senthil Kumar via eli) + OPTIMIZATIONS HADOOP-8866. SampleQuantiles#query is O(N^2) instead of O(N). (Andrew Wang diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java index 67a8f82d938..09c17ef932f 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/StringUtils.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Locale; import java.util.StringTokenizer; +import com.google.common.net.InetAddresses; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.fs.Path; @@ -77,6 +78,9 @@ public class StringUtils { * @return the hostname to the first dot */ public static String simpleHostname(String fullHostname) { + if (InetAddresses.isInetAddress(fullHostname)) { + return fullHostname; + } int offset = fullHostname.indexOf('.'); if (offset != -1) { return fullHostname.substring(0, offset); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java index fc90984608f..d07afcc5f0a 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestStringUtils.java @@ -281,6 +281,19 @@ public class TestStringUtils extends UnitTestcaseTimeLimit { } } + @Test + public void testSimpleHostName() { + assertEquals("Should return hostname when FQDN is specified", + "hadoop01", + StringUtils.simpleHostname("hadoop01.domain.com")); + assertEquals("Should return hostname when only hostname is specified", + "hadoop01", + StringUtils.simpleHostname("hadoop01")); + assertEquals("Should not truncate when IP address is passed", + "10.10.5.68", + StringUtils.simpleHostname("10.10.5.68")); + } + // Benchmark for StringUtils split public static void main(String []args) { final String TO_SPLIT = "foo,bar,baz,blah,blah";