Repository: incubator-unomi Updated Branches: refs/heads/feature-UNOMI-70-ES5X f9418501f -> b81234998
DMF-1133 Error when displaying an empty list in MF - Fixed by not generating sorts or aggregations if there is no data for a field. Signed-off-by: Serge Huber <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/b8123499 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/b8123499 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/b8123499 Branch: refs/heads/feature-UNOMI-70-ES5X Commit: b81234998fb227b2727d51d77b42f13f674b29bc Parents: f941850 Author: Serge Huber <[email protected]> Authored: Thu Jan 5 10:12:43 2017 +0100 Committer: Serge Huber <[email protected]> Committed: Thu Jan 5 10:12:43 2017 +0100 ---------------------------------------------------------------------- .../ElasticSearchPersistenceServiceImpl.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b8123499/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java ---------------------------------------------------------------------- diff --git a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java index 0958bcd..f98854b 100644 --- a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java +++ b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java @@ -1300,11 +1300,16 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, } } else { String name = getPropertyNameWithData(StringUtils.substringBeforeLast(sortByElement,":"), itemType); - if (sortByElement.endsWith(":desc")) { - requestBuilder = requestBuilder.addSort(name, SortOrder.DESC); + if (name != null) { + if (sortByElement.endsWith(":desc")) { + requestBuilder = requestBuilder.addSort(name, SortOrder.DESC); + } else { + requestBuilder = requestBuilder.addSort(name, SortOrder.ASC); + } } else { - requestBuilder = requestBuilder.addSort(name, SortOrder.ASC); + // in the case of no data existing for the property, we will not add the sorting to the request. } + } } } @@ -1456,7 +1461,11 @@ public class ElasticSearchPersistenceServiceImpl implements PersistenceService, } else { fieldName = getPropertyNameWithData(fieldName, itemType); //default - bucketsAggregation = AggregationBuilders.terms("buckets").field(fieldName).size(5000); + if (fieldName != null) { + bucketsAggregation = AggregationBuilders.terms("buckets").field(fieldName).size(5000); + } else { + // field name could be null if no existing data exists + } } if (bucketsAggregation != null) { final MissingAggregationBuilder missingBucketsAggregation = AggregationBuilders.missing("missing").field(fieldName);
