YARN-4246. NPE while listing app attempt. (Nijel S F via rohithsharmaks)

Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b57f08c0
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b57f08c0
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b57f08c0

Branch: refs/heads/HDFS-8966
Commit: b57f08c0d2dae57b545a3baa213e18464060ae3b
Parents: 1aa735c
Author: Rohith Sharma K S <rohithsharm...@apache.org>
Authored: Mon Oct 26 11:56:36 2015 +0530
Committer: Rohith Sharma K S <rohithsharm...@apache.org>
Committed: Mon Oct 26 11:56:36 2015 +0530

----------------------------------------------------------------------
 hadoop-yarn-project/CHANGES.txt                 |  2 ++
 .../hadoop/yarn/client/cli/ApplicationCLI.java  |  6 +++--
 .../hadoop/yarn/client/cli/TestYarnCLI.java     | 23 ++++++++++++++++++++
 3 files changed, 29 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/b57f08c0/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 0169163..192843e 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -997,6 +997,8 @@ Release 2.8.0 - UNRELEASED
 
     YARN-3724. Use POSIX nftw(3) instead of fts(3) (Alan Burlison via aw)
 
+    YARN-4246. NPE while listing app attempt. (Nijel S F via rohithsharmaks)
+
 Release 2.7.2 - UNRELEASED
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b57f08c0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
index e34675a..b486074 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java/org/apache/hadoop/yarn/client/cli/ApplicationCLI.java
@@ -349,8 +349,9 @@ public class ApplicationCLI extends YarnCLI {
       appAttemptReportStr.println(appAttemptReport
           .getYarnApplicationAttemptState());
       appAttemptReportStr.print("\tAMContainer : ");
-      appAttemptReportStr.println(appAttemptReport.getAMContainerId()
-          .toString());
+      appAttemptReportStr
+          .println(appAttemptReport.getAMContainerId() == null ? "N/A"
+              : appAttemptReport.getAMContainerId().toString());
       appAttemptReportStr.print("\tTracking-URL : ");
       appAttemptReportStr.println(appAttemptReport.getTrackingUrl());
       appAttemptReportStr.print("\tRPC Port : ");
@@ -667,6 +668,7 @@ public class ApplicationCLI extends YarnCLI {
       writer.printf(APPLICATION_ATTEMPTS_PATTERN, appAttemptReport
           .getApplicationAttemptId(), appAttemptReport
           .getYarnApplicationAttemptState(), appAttemptReport
+          .getAMContainerId() == null ? "N/A" : appAttemptReport
           .getAMContainerId().toString(), appAttemptReport.getTrackingUrl());
     }
     writer.flush();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b57f08c0/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
----------------------------------------------------------------------
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
index 069ff7d..3dab504 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/cli/TestYarnCLI.java
@@ -1590,4 +1590,27 @@ public class TestYarnCLI {
   private static String normalize(String s) {
     return SPACES_PATTERN.matcher(s).replaceAll(" "); // single space
   }
+
+  @Test
+  public void testAppAttemptReportWhileContainerIsNotAssigned()
+      throws Exception {
+    ApplicationCLI cli = createAndGetAppCLI();
+    ApplicationId applicationId = ApplicationId.newInstance(1234, 5);
+    ApplicationAttemptId attemptId =
+        ApplicationAttemptId.newInstance(applicationId, 1);
+    ApplicationAttemptReport attemptReport =
+        ApplicationAttemptReport.newInstance(attemptId, "host", 124, "url",
+            "oUrl", "diagnostics", YarnApplicationAttemptState.SCHEDULED, null,
+            1000l, 2000l);
+    when(client.getApplicationAttemptReport(any(ApplicationAttemptId.class)))
+        .thenReturn(attemptReport);
+    int result =
+        cli.run(new String[] { "applicationattempt", "-status",
+            attemptId.toString() });
+    assertEquals(0, result);
+    result =
+        cli.run(new String[] { "applicationattempt", "-list",
+            applicationId.toString() });
+    assertEquals(0, result);
+  }
 }

Reply via email to