You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2019/06/07 15:50:51 UTC
[lucene-solr] branch branch_8x updated: SOLR-13496: Fix distributed
grouping related NullPointerException in JSONWriter.writeSolrDocument
This is an automated email from the ASF dual-hosted git repository.
cpoerschke pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new 1710a8a SOLR-13496: Fix distributed grouping related NullPointerException in JSONWriter.writeSolrDocument
1710a8a is described below
commit 1710a8a36de225c819cf3e89dd05c325019ac9fe
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Fri Jun 7 16:05:10 2019 +0100
SOLR-13496: Fix distributed grouping related NullPointerException in JSONWriter.writeSolrDocument
---
solr/CHANGES.txt | 2 ++
.../GroupedEndResultTransformer.java | 18 ++++++++++++------
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 77fd3f2..72851a0 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -92,6 +92,8 @@ Bug Fixes
* SOLR-13521: Fix input parameter handling in SchemaRequest.DynamicField and SchemaRequest.FieldTypes (Schema API)
(Tomás Fernández Löbbe)
+* SOLR-13496: Fix distributed grouping related NullPointerException in JSONWriter.writeSolrDocument (Christine Poerschke)
+
Other Changes
----------------------
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java
index 2c622d4..6757d9c 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/GroupedEndResultTransformer.java
@@ -28,6 +28,7 @@ import org.apache.lucene.search.TotalHits;
import org.apache.lucene.search.grouping.GroupDocs;
import org.apache.lucene.search.grouping.TopGroups;
import org.apache.lucene.util.BytesRef;
+import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -90,9 +91,7 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
docList.setMaxScore(group.maxScore);
}
docList.setStart(rb.getGroupingSpec().getWithinGroupOffset());
- for (ScoreDoc scoreDoc : group.scoreDocs) {
- docList.add(solrDocumentSource.retrieve(scoreDoc));
- }
+ retrieveAndAdd(docList, solrDocumentSource, group.scoreDocs);
groupResult.add("doclist", docList);
groups.add(groupResult);
}
@@ -110,9 +109,7 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
docList.setMaxScore(queryCommandResult.getMaxScore());
}
docList.setStart(rb.getGroupingSpec().getWithinGroupOffset());
- for (ScoreDoc scoreDoc :queryCommandResult.getTopDocs().scoreDocs){
- docList.add(solrDocumentSource.retrieve(scoreDoc));
- }
+ retrieveAndAdd(docList, solrDocumentSource, queryCommandResult.getTopDocs().scoreDocs);
command.add("doclist", docList);
commands.add(entry.getKey(), command);
}
@@ -120,4 +117,13 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
rb.rsp.add("grouped", commands);
}
+ private static void retrieveAndAdd(SolrDocumentList solrDocumentList, SolrDocumentSource solrDocumentSource, ScoreDoc[] scoreDocs) {
+ for (ScoreDoc scoreDoc : scoreDocs) {
+ SolrDocument solrDocument = solrDocumentSource.retrieve(scoreDoc);
+ if (solrDocument != null) {
+ solrDocumentList.add(solrDocument);
+ }
+ }
+ }
+
}