diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 9e6f6dff42f..d293b52b3f7 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -203,6 +203,10 @@ Release 0.23.2 - UNRELEASED MAPREDUCE-3816. capacity scheduler web ui bar graphs for used capacity wrong (tgraves via bobby) + MAPREDUCE-3930. Fixed an NPE while accessing the AM page/webservice for a + task attempt without an assigned container. (Robert Joseph Evans via + sseth) + Release 0.23.1 - 2012-02-17 INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java b/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java index fdebd3925b8..21fe2d9874c 100644 --- a/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java +++ b/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java @@ -142,7 +142,7 @@ private static ApplicationId toApplicationId( } public static String toString(ContainerId cId) { - return cId.toString(); + return cId == null ? null : cId.toString(); } public static NodeId toNodeId(String nodeIdStr) { diff --git a/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java b/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java index 0e2eb14a40a..7924124bf40 100644 --- a/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java +++ b/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java @@ -22,6 +22,7 @@ import java.net.URISyntaxException; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.URL; import org.junit.Test; @@ -35,4 +36,17 @@ public void testConvertUrlWithNoPort() throws URISyntaxException { assertEquals(expectedPath, actualPath); } + @Test + public void testContainerId() throws URISyntaxException { + ContainerId id = BuilderUtils.newContainerId(0, 0, 0, 0); + String cid = ConverterUtils.toString(id); + assertEquals("container_0_0000_00_000000", cid); + ContainerId gen = ConverterUtils.toContainerId(cid); + assertEquals(gen, id); + } + + @Test + public void testContainerIdNull() throws URISyntaxException { + assertNull(ConverterUtils.toString((ContainerId)null)); + } }