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

mkhl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 0cc18eb4cae SOLR-16611: fix collapse hint=top_fc bug (#1274)
0cc18eb4cae is described below

commit 0cc18eb4cae37dd7b560d73b8f35affb7396aba6
Author: taku <[email protected]>
AuthorDate: Mon Jan 9 02:04:26 2023 +0900

    SOLR-16611: fix collapse hint=top_fc bug (#1274)
    
    * fixed collapse top_fc getSorted
    
    Co-authored-by: Mikhail Khludnev <[email protected]>
---
 solr/CHANGES.txt                                                  | 1 +
 .../src/java/org/apache/solr/search/CollapsingQParserPlugin.java  | 7 ++++++-
 .../test/org/apache/solr/search/TestCollapseQParserPlugin.java    | 8 ++++++--
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index fe25dac5d6f..844f71d613c 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -161,6 +161,7 @@ Bug Fixes
 
 * SOLR-16605: CPU percent calculation incorrect in admin UI cloud->nodes tab 
(Shawn Heisey)
 
+* SOLR-16611: NullPointerException occus when there are no segments in 
`{!collapse hint=top_fc}` (Minami Takuya via Mikhail Khludnev)
 
 Build
 ---------------------
diff --git 
a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java 
b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
index a44673efbb2..8026fa16328 100644
--- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
@@ -2092,7 +2092,12 @@ public class CollapsingQParserPlugin extends 
QParserPlugin {
               new EmptyDocValuesProducer() {
                 @Override
                 public SortedDocValues getSorted(FieldInfo ignored) throws 
IOException {
-                  return uninvertingReader.getSortedDocValues(collapseField);
+                  SortedDocValues values = 
uninvertingReader.getSortedDocValues(collapseField);
+                  if (values != null) {
+                    return values;
+                  } else {
+                    return DocValues.emptySorted();
+                  }
                 }
               };
         } else {
diff --git 
a/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java 
b/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
index d6e20ed93d6..c28db60dfd9 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
@@ -440,6 +440,10 @@ public class TestCollapseQParserPlugin extends 
SolrTestCaseJ4 {
   }
 
   private void testCollapseQueries(String group, String hint, boolean numeric) 
{
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.add("q", "*:*");
+    params.add("fq", "{!collapse field=" + group + "" + hint + "}");
+    assertQ(req(params, "indent", "on"), "*[count(//doc)=0]");
 
     String[] doc = {
       "id", "1", "term_s", "YYYY", group, "1", "test_i", "5", "test_l", "10", 
"test_f", "2000"
@@ -479,7 +483,7 @@ public class TestCollapseQParserPlugin extends 
SolrTestCaseJ4 {
     assertU(commit());
 
     // Test collapse by score and following sort by score
-    ModifiableSolrParams params = new ModifiableSolrParams();
+    params = new ModifiableSolrParams();
     params.add("q", "*:*");
     params.add("fq", "{!collapse field=" + group + "" + hint + "}");
     params.add("defType", "edismax");
@@ -1095,7 +1099,7 @@ public class TestCollapseQParserPlugin extends 
SolrTestCaseJ4 {
             " sort='bogus_sort_s desc' ",
           }) {
 
-        ModifiableSolrParams params = null;
+        ModifiableSolrParams params;
 
         // w/default nullPolicy, no groups found
         params = new ModifiableSolrParams();

Reply via email to