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

(cherry picked from commit beb65c9465)
This commit is contained in:
Junping Du 2015-08-28 05:57:34 -07:00
parent 5f9b323eb0
commit 792b9c0eaf
3 changed files with 20 additions and 2 deletions

View File

@ -361,12 +361,15 @@ Release 2.8.0 - UNRELEASED
YARN-4026. Refactored ContainerAllocator to accept a list of priorites YARN-4026. Refactored ContainerAllocator to accept a list of priorites
rather than a single priority. (Wangda Tan via jianhe) rather than a single priority. (Wangda Tan via jianhe)
YARN-4031. Add JvmPauseMonitor to ApplicationHistoryServer and YARN-4031. Add JvmPauseMonitor to ApplicationHistoryServer and
WebAppProxyServer (djp via rkanter) WebAppProxyServer (djp via rkanter)
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

@ -314,6 +314,9 @@ public class ClientRMService extends AbstractService implements
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 class TestClientRMService {
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();
} }