This is an automated email from the ASF dual-hosted git repository.

skylark17 pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_1_X by this push:
     new b57e1ce  [SYNCOPE-1437] Fixed error while searching for users / groups 
/ any objects with Elasticsearch when no data are present
b57e1ce is described below

commit b57e1cee216cf7cadd76841b2c756119c2f79d35
Author: skylark17 <matteo.alessandr...@tirasa.net>
AuthorDate: Wed Feb 20 11:39:46 2019 +0100

    [SYNCOPE-1437] Fixed error while searching for users / groups / any objects 
with Elasticsearch when no data are present
---
 .../persistence/jpa/dao/ElasticsearchAnySearchDAO.java  | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git 
a/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
 
b/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
index 58fd9a9..bf8490f 100644
--- 
a/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
+++ 
b/ext/elasticsearch/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/ElasticsearchAnySearchDAO.java
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.syncope.common.lib.SyncopeClientException;
@@ -64,6 +65,7 @@ import org.elasticsearch.index.query.DisMaxQueryBuilder;
 import org.elasticsearch.index.query.MatchNoneQueryBuilder;
 import org.elasticsearch.index.query.QueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.search.SearchHit;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
 import org.elasticsearch.search.sort.FieldSortBuilder;
 import org.elasticsearch.search.sort.SortBuilder;
@@ -201,14 +203,17 @@ public class ElasticsearchAnySearchDAO extends 
AbstractAnySearchDAO {
                 (page <= 0 ? 0 : page - 1),
                 (itemsPerPage < 0 ? 
elasticsearchUtils.getIndexMaxResultWindow() : itemsPerPage),
                 sortBuilders(kind, orderBy));
+
+        SearchHit[] esResult = null;
         try {
-            return buildResult(Stream.of(client.search(request, 
RequestOptions.DEFAULT).getHits().getHits()).
-                    map(hit -> hit.getId()).collect(Collectors.toList()),
-                    kind);
-        } catch (IOException e) {
-            LOG.error("Search error", e);
-            return Collections.emptyList();
+            esResult = client.search(request, 
RequestOptions.DEFAULT).getHits().getHits();
+        } catch (Exception e) {
+            LOG.error("While searching in Elasticsearch", e);
         }
+
+        return ArrayUtils.isEmpty(esResult)
+                ? Collections.emptyList()
+                : buildResult(Stream.of(esResult).map(hit -> 
hit.getId()).collect(Collectors.toList()), kind);
     }
 
     private QueryBuilder getQueryBuilder(final SearchCond cond, final 
AnyTypeKind kind) {

Reply via email to