You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by sk...@apache.org on 2019/02/20 10:40:17 UTC
[syncope] branch 2_1_X updated: [SYNCOPE-1437] Fixed error while
searching for users / groups / any objects with Elasticsearch when no data
are present
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 <ma...@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) {