YARN-1556. NPE getting application report with a null appId. Contributed by Weiwei Yang.

This commit is contained in:
Junping Du 2015-08-28 05:57:34 -07:00
parent e166c038c0
commit beb65c9465
3 changed files with 20 additions and 2 deletions

View File

@ -419,6 +419,9 @@ Release 2.8.0 - UNRELEASED
YARN-4057. If ContainersMonitor is not enabled, only print YARN-4057. If ContainersMonitor is not enabled, only print
related log info one time. (Jun Gong via zxu) related log info one time. (Jun Gong via zxu)
YARN-1556. NPE getting application report with a null appId. (Weiwei Yang via
junping_du)
OPTIMIZATIONS OPTIMIZATIONS
YARN-3339. TestDockerContainerExecutor should pull a single image and not YARN-3339. TestDockerContainerExecutor should pull a single image and not

View File

@ -315,6 +315,9 @@ public GetNewApplicationResponse getNewApplication(
public GetApplicationReportResponse getApplicationReport( public GetApplicationReportResponse getApplicationReport(
GetApplicationReportRequest request) throws YarnException { GetApplicationReportRequest request) throws YarnException {
ApplicationId applicationId = request.getApplicationId(); ApplicationId applicationId = request.getApplicationId();
if (applicationId == null) {
throw new ApplicationNotFoundException("Invalid application id: null");
}
UserGroupInformation callerUGI; UserGroupInformation callerUGI;
try { try {

View File

@ -333,6 +333,18 @@ public void testGetApplicationReport() throws Exception {
report.getApplicationResourceUsageReport(); report.getApplicationResourceUsageReport();
Assert.assertEquals(10, usageReport.getMemorySeconds()); Assert.assertEquals(10, usageReport.getMemorySeconds());
Assert.assertEquals(3, usageReport.getVcoreSeconds()); Assert.assertEquals(3, usageReport.getVcoreSeconds());
// if application id is null
GetApplicationReportRequest invalidRequest = recordFactory
.newRecordInstance(GetApplicationReportRequest.class);
invalidRequest.setApplicationId(null);
try {
rmService.getApplicationReport(invalidRequest);
} catch (YarnException e) {
// rmService should return a ApplicationNotFoundException
// when a null application id is provided
Assert.assertTrue(e instanceof ApplicationNotFoundException);
}
} finally { } finally {
rmService.close(); rmService.close();
} }