diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java index 5d0d65a..c9b9618 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/ContainerId.java @@ -22,6 +22,8 @@ import java.text.NumberFormat; import java.util.Iterator; +import java.util.NoSuchElementException; + import org.apache.hadoop.classification.InterfaceAudience.Private; import org.apache.hadoop.classification.InterfaceAudience.Public; import org.apache.hadoop.classification.InterfaceStability.Stable; @@ -231,6 +233,9 @@ public static ContainerId fromString(String containerIdStr) { } catch (NumberFormatException n) { throw new IllegalArgumentException("Invalid ContainerId: " + containerIdStr, n); + } catch (NoSuchElementException e) { + throw new IllegalArgumentException("Invalid ContainerId: " + + containerIdStr, e); } } 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 0aa68a2..d19191a 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; @@ -190,6 +191,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 +210,9 @@ public static ApplicationId toApplicationId( } catch (NumberFormatException n) { throw new IllegalArgumentException("Invalid ApplicationId: " + 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"); + } }