Hi,
I am trying to evaluate a query in AEM. This query return the result while executing in querybuilder tool : Link
During execution in code, I am getting NPE. Here is the map printed in logs :
Map is {path=/content/dam, p.limit=-1, group.3_group.property.operation=exists, group.2_daterange.upperBound=2018-07-03, group.1_daterange.property=@jcr:content/jcr:lastModified, group.1_daterange.upperBound=2018-07-03, group.2_daterange.property=@jcr:content/cq:lastReplicated, group.3_group.property=@jcr:content/expireDate, type=dam:Asset, group.3_group.property.value=false, group.p.and=true}
Below is the code snippet :
private Query prepareQueryForExpiredAssets() {
final int monthsAgo = Integer.parseInt(assetExpirationTimeInMonths)*-1;
final String assetExpireDate = DateTimeUtils.getCurrentDateInTextFormat(DATE_FORMAT_TYPE1, monthsAgo);
LOGGER.info("assetExpireDate ::: {}",assetExpireDate);
Map<String, String> map = new HashMap<String, String>();
map.put("path", "/content/dam");
map.put("type", "dam:Asset");
map.put("group.p.and", "true");
map.put("group.1_daterange.property", "@jcr:content/jcr:lastModified");
map.put("group.1_daterange.upperBound", assetExpireDate);
// map.put("group.1_daterange.timeZone", "-5");
map.put("group.2_daterange.property", "@jcr:content/cq:lastReplicated");
map.put("group.2_daterange.upperBound", assetExpireDate);
// map.put("group.1_daterange.timeZone", "-5");
map.put("group.3_group.property", "@jcr:content/expireDate");
map.put("group.3_group.property.operation", "exists");
map.put("group.3_group.property.value", "false");
map.put("p.limit", "-1");
LOGGER.info("Map is {}",map.toString());
LOGGER.info("queryBuilder ::: {}",queryBuilder.getClass());
return queryBuilder.createQuery(PredicateGroup.create(map), this.session);
}
Stacktrace :
java.lang.NullPointerException: null
at com.day.cq.search.eval.DateRangePredicateEvaluator.parseDateString(DateRangePredicateEvaluator.java:95)
at com.day.cq.search.eval.DateRangePredicateEvaluator.getXPathExpression(DateRangePredicateEvaluator.java:68)
at com.day.cq.search.eval.PredicateGroupEvaluator.getXPathExpression(PredicateGroupEvaluator.java:72)
at com.day.cq.search.impl.builder.RootEvaluator.getPropertyConstraintsXpathSubExpre(RootEvaluator.java:437)
at com.day.cq.search.impl.builder.RootEvaluator.getAllSubQueryObjects(RootEvaluator.java:399)
at com.day.cq.search.impl.builder.RootEvaluator.getAllSubQueryObjects(RootEvaluator.java:337)
at com.day.cq.search.impl.builder.RootEvaluator.getXPathExpressionWithUnion(RootEvaluator.java:261)
at com.day.cq.search.impl.builder.RootEvaluator.getXPathExpression(RootEvaluator.java:95)
at com.day.cq.search.impl.builder.QueryImpl.executeXpath(QueryImpl.java:385)
at com.day.cq.search.impl.builder.QueryImpl.execute(QueryImpl.java:442)
at com.day.cq.search.impl.builder.QueryImpl.getResult(QueryImpl.java:106)
Any idea to fix this issue.
Thanks,