Author: cnauroth Date: Wed Feb 26 00:25:29 2014 New Revision: 1571881 URL: http://svn.apache.org/r1571881 Log: HDFS-6008. Namenode dead node link is giving HTTP error 500. Contributed by Benoy Antony.
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/JspHelper.java hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/common/TestJspHelper.java Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1571881&r1=1571880&r2=1571881&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Feb 26 00:25:29 2014 @@ -625,6 +625,9 @@ Release 2.4.0 - UNRELEASED HDFS-5922. DN heartbeat thread can get stuck in tight loop. (Arpit Agarwal) + HDFS-6008. Namenode dead node link is giving HTTP error 500. + (Benoy Antony via cnauroth) + Release 2.3.1 - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/JspHelper.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/JspHelper.java?rev=1571881&r1=1571880&r2=1571881&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/JspHelper.java (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/JspHelper.java Wed Feb 26 00:25:29 2014 @@ -147,7 +147,9 @@ public class JspHelper { */ public static final class Url { public static String authority(String scheme, DatanodeID d) { - String fqdn = canonicalize(d.getIpAddr()); + String fqdn = (d.getIpAddr() != null && !d.getIpAddr().isEmpty())? + canonicalize(d.getIpAddr()): + d.getHostName(); if (scheme.equals("http")) { return fqdn + ":" + d.getInfoPort(); } else if (scheme.equals("https")) { Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/common/TestJspHelper.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/common/TestJspHelper.java?rev=1571881&r1=1571880&r2=1571881&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/common/TestJspHelper.java (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/common/TestJspHelper.java Wed Feb 26 00:25:29 2014 @@ -20,6 +20,7 @@ package org.apache.hadoop.hdfs.server.co import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; @@ -641,5 +642,20 @@ public class TestJspHelper { assertTrue(upgradeStatusReport.getStatusText(true).equals( MessageFormat.format(EXPECTED__NOTF_PATTERN, version))); } + + @Test + public void testAuthority(){ + DatanodeID dnWithIp = new DatanodeID("127.0.0.1", "hostName", null, + 50020, 50075, 50076, 50010); + assertNotNull(JspHelper.Url.authority("http", dnWithIp)); + + DatanodeID dnWithNullIp = new DatanodeID(null, "hostName", null, + 50020, 50075, 50076, 50010); + assertNotNull(JspHelper.Url.authority("http", dnWithNullIp)); + + DatanodeID dnWithEmptyIp = new DatanodeID("", "hostName", null, + 50020, 50075, 50076, 50010); + assertNotNull(JspHelper.Url.authority("http", dnWithEmptyIp)); + } }