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/master
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);

Reply via email to