diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java index 9ebcc23d92..e85505f73e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-applicationhistoryservice/src/main/java/org/apache/hadoop/yarn/server/timeline/RollingLevelDBTimelineStore.java @@ -793,39 +793,42 @@ private TimelineEntities getEntityByTime(byte[] base, String entityType, entity = getEntity(entityId, entityType, startTime, queryFields, iterator, key, kp.getOffset()); } - // determine if the retrieved entity matches the provided secondary - // filters, and if so add it to the list of entities to return - boolean filterPassed = true; - if (secondaryFilters != null) { - for (NameValuePair filter : secondaryFilters) { - Object v = entity.getOtherInfo().get(filter.getName()); - if (v == null) { - Set vs = entity.getPrimaryFilters() - .get(filter.getName()); - if (vs == null || !vs.contains(filter.getValue())) { + + if (entity != null) { + // determine if the retrieved entity matches the provided secondary + // filters, and if so add it to the list of entities to return + boolean filterPassed = true; + if (secondaryFilters != null) { + for (NameValuePair filter : secondaryFilters) { + Object v = entity.getOtherInfo().get(filter.getName()); + if (v == null) { + Set vs = entity.getPrimaryFilters() + .get(filter.getName()); + if (vs == null || !vs.contains(filter.getValue())) { + filterPassed = false; + break; + } + } else if (!v.equals(filter.getValue())) { filterPassed = false; break; } - } else if (!v.equals(filter.getValue())) { - filterPassed = false; - break; } } - } - if (filterPassed) { - if (entity.getDomainId() == null) { - entity.setDomainId(DEFAULT_DOMAIN_ID); - } - if (checkAcl == null || checkAcl.check(entity)) { - // Remove primary filter and other info if they are added for - // matching secondary filters - if (addPrimaryFilters) { - entity.setPrimaryFilters(null); + if (filterPassed) { + if (entity.getDomainId() == null) { + entity.setDomainId(DEFAULT_DOMAIN_ID); } - if (addOtherInfo) { - entity.setOtherInfo(null); + if (checkAcl == null || checkAcl.check(entity)) { + // Remove primary filter and other info if they are added for + // matching secondary filters + if (addPrimaryFilters) { + entity.setPrimaryFilters(null); + } + if (addOtherInfo) { + entity.setOtherInfo(null); + } + entities.addEntity(entity); } - entities.addEntity(entity); } } }