diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java index 73ec906..db92b8f 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/ConverterUtils.java @@ -27,6 +27,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; +import java.util.NoSuchElementException; import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.fs.Path; @@ -175,7 +176,12 @@ public static NodeId toNodeId(String nodeIdStr) { } public static ContainerId toContainerId(String containerIdStr) { - return ContainerId.fromString(containerIdStr); + try { + return ContainerId.fromString(containerIdStr); + } catch (NoSuchElementException e){ + throw new IllegalArgumentException("Invalid ContainerId: " + + containerIdStr, e); + } } public static ApplicationAttemptId toApplicationAttemptId( @@ -190,6 +196,9 @@ public static ApplicationAttemptId toApplicationAttemptId( } catch (NumberFormatException n) { throw new IllegalArgumentException("Invalid AppAttemptId: " + applicationAttmeptIdStr, n); + } catch (NoSuchElementException e){ + throw new IllegalArgumentException("Invalid AppAttemptId: " + + applicationAttmeptIdStr, e); } } @@ -206,6 +215,9 @@ public static ApplicationId toApplicationId( } catch (NumberFormatException n) { throw new IllegalArgumentException("Invalid AppAttemptId: " + appIdStr, n); + } catch (NoSuchElementException e){ + throw new IllegalArgumentException("Invalid ApplicationId: " + appIdStr, + e); } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java index 7d53785..3cec38b 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/TestConverterUtils.java @@ -99,4 +99,19 @@ public void testNodeIdWithDefaultPort() throws URISyntaxException { assertEquals(nid.getPort(), 0); assertEquals(nid.getHost(), "node"); } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidContainerId() { + ConverterUtils.toContainerId("container_e20_1423221031460_0003_01"); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidAppattemptId() { + ConverterUtils.toApplicationAttemptId("appattempt_1423221031460"); + } + + @Test(expected = IllegalArgumentException.class) + public void testApplicationId() { + ConverterUtils.toApplicationId("application_1423221031460"); + } }