You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by is...@apache.org on 2020/04/06 17:03:49 UTC

[lucene-solr] branch jira/solr-13004 updated: SOLR-13004: Fixing unit tests to handle the integer/long conversion

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

ishan pushed a commit to branch jira/solr-13004
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/jira/solr-13004 by this push:
     new 071524c  SOLR-13004: Fixing unit tests to handle the integer/long conversion
071524c is described below

commit 071524c6a370f839e026f24dc2ea4f93c48a7322
Author: Ishan Chattopadhyaya <is...@apache.org>
AuthorDate: Mon Apr 6 22:33:31 2020 +0530

    SOLR-13004: Fixing unit tests to handle the integer/long conversion
---
 solr/core/src/java/org/apache/solr/search/Grouping.java            | 5 +++--
 .../shardresultserializer/TopGroupsResultTransformer.java          | 2 +-
 .../grouping/endresulttransformer/GroupedEndResultTransformer.java | 7 ++++---
 .../grouping/endresulttransformer/SimpleEndResultTransformer.java  | 5 +++--
 solr/core/src/test/org/apache/solr/TestDistributedGrouping.java    | 4 ++--
 solr/core/src/test/org/apache/solr/TestGroupingSearch.java         | 2 +-
 solr/solrj/src/test-files/solrj/sampleGroupResponse.xml            | 4 ++--
 7 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/search/Grouping.java b/solr/core/src/java/org/apache/solr/search/Grouping.java
index ce7f649..723d078 100644
--- a/solr/core/src/java/org/apache/solr/search/Grouping.java
+++ b/solr/core/src/java/org/apache/solr/search/Grouping.java
@@ -63,6 +63,7 @@ import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.Utils;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.SchemaField;
@@ -606,10 +607,10 @@ public class Grouping {
       grouped.add(key, groupResult);  // grouped={ key={
 
       long matches = getMatches();
-      groupResult.add("matches", matches);
+      groupResult.add("matches", Utils.intIfNotOverflown(matches));
       if (totalCount == TotalCount.grouped) {
         Long totalNrOfGroups = getNumberOfGroups();
-        groupResult.add("ngroups", totalNrOfGroups == null ? Long.valueOf(0) : totalNrOfGroups);
+        groupResult.add("ngroups", Utils.intIfNotOverflown(totalNrOfGroups == null ? Long.valueOf(0) : totalNrOfGroups));
       }
       maxMatches = Math.max(maxMatches, matches);
       return groupResult;
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java
index ae5bd4c..6e6a693 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/TopGroupsResultTransformer.java
@@ -99,7 +99,7 @@ public class TopGroupsResultTransformer implements ShardResultTransformer<List<C
       Long totalGroupedHitCount = commandResult.get("totalGroupedHitCount")==null? null: ((Number) commandResult.get("totalGroupedHitCount")).longValue();
       Number totalHits = (Number) commandResult.get("totalHits"); // previously Integer now Long
       if (totalHits != null) {
-        Long matches = (Long) commandResult.get("matches");
+        long matches = ((Number) commandResult.get("matches")).longValue();
         Float maxScore = (Float) commandResult.get("maxScore");
         if (maxScore == null) {
           maxScore = Float.NaN;
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 9f26b8f..4fabcc1 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
@@ -34,6 +34,7 @@ import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.Utils;
 import org.apache.solr.handler.component.ResponseBuilder;
 import org.apache.solr.schema.FieldType;
 import org.apache.solr.schema.SchemaField;
@@ -62,10 +63,10 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
         @SuppressWarnings("unchecked")
         TopGroups<BytesRef> topGroups = (TopGroups<BytesRef>) value;
         NamedList<Object> command = new SimpleOrderedMap<>();
-        command.add("matches", rb.totalHitCount);
+        command.add("matches", Utils.intIfNotOverflown(rb.totalHitCount));
         Long totalGroupCount = rb.mergedGroupCounts.get(entry.getKey());
         if (totalGroupCount != null) {
-          command.add("ngroups", totalGroupCount);
+          command.add("ngroups", Utils.intIfNotOverflown(totalGroupCount));
         }
 
         List<NamedList> groups = new ArrayList<>();
@@ -102,7 +103,7 @@ public class GroupedEndResultTransformer implements EndResultTransformer {
       } else if (QueryCommandResult.class.isInstance(value)) {
         QueryCommandResult queryCommandResult = (QueryCommandResult) value;
         NamedList<Object> command = new SimpleOrderedMap<>();
-        command.add("matches", queryCommandResult.getMatches());
+        command.add("matches", Utils.intIfNotOverflown(queryCommandResult.getMatches()));
         SolrDocumentList docList = new SolrDocumentList();
         TopDocs topDocs = queryCommandResult.getTopDocs();
         assert topDocs.totalHits.relation == TotalHits.Relation.EQUAL_TO;
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java
index 0723136..af2f077 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/endresulttransformer/SimpleEndResultTransformer.java
@@ -27,6 +27,7 @@ import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.Utils;
 import org.apache.solr.handler.component.ResponseBuilder;
 import org.apache.solr.search.grouping.distributed.command.QueryCommandResult;
 
@@ -44,9 +45,9 @@ public class SimpleEndResultTransformer implements EndResultTransformer {
         @SuppressWarnings("unchecked")
         TopGroups<BytesRef> topGroups = (TopGroups<BytesRef>) value;
         NamedList<Object> command = new SimpleOrderedMap<>();
-        command.add("matches", rb.totalHitCount);
+        command.add("matches", Utils.intIfNotOverflown(rb.totalHitCount));
         if (topGroups.totalGroupCount != null) {
-          command.add("ngroups", topGroups.totalGroupCount);
+          command.add("ngroups", Utils.intIfNotOverflown(topGroups.totalGroupCount));
         }
         SolrDocumentList docList = new SolrDocumentList();
         docList.setStart(rb.getGroupingSpec().getGroupSortSpec().getOffset());
diff --git a/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java b/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java
index a875f27..08f7ac1 100644
--- a/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java
+++ b/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java
@@ -311,8 +311,8 @@ public class TestDistributedGrouping extends BaseDistributedSearchTestCase {
     QueryResponse rsp = client.query(params);
     NamedList nl = (NamedList<?>) rsp.getResponse().get("grouped");
     nl = (NamedList<?>) nl.getVal(0);
-    long matches = (Long) nl.getVal(0);
-    long groupCount = (Long) nl.get("ngroups");
+    long matches = ((Number) nl.getVal(0)).longValue();
+    long groupCount = ((Number) nl.get("ngroups")).longValue();
     assertEquals(100 * shardsArr.length, matches);
     assertEquals(shardsArr.length, groupCount);
 
diff --git a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java
index 35ef3c6..8591c7b 100644
--- a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java
+++ b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java
@@ -952,7 +952,7 @@ public class TestGroupingSearch extends SolrTestCaseJ4 {
   public static Object buildGroupedResult(IndexSchema schema, List<Grp> sortedGroups, int start, int rows, int group_offset, int group_limit, boolean includeNGroups) {
     Map<String,Object> result = new LinkedHashMap<>();
 
-    long matches = 0;
+    int matches = 0;
     for (Grp grp : sortedGroups) {
       matches += grp.docs.size();
     }
diff --git a/solr/solrj/src/test-files/solrj/sampleGroupResponse.xml b/solr/solrj/src/test-files/solrj/sampleGroupResponse.xml
index 6f71152..26fcdfa 100644
--- a/solr/solrj/src/test-files/solrj/sampleGroupResponse.xml
+++ b/solr/solrj/src/test-files/solrj/sampleGroupResponse.xml
@@ -13,8 +13,8 @@
   </lst>
   <lst name="grouped">
     <lst name="acco_id">
-      <long name="matches">30000000</long>
-      <long name="ngroups">5687</long>
+      <int name="matches">30000000</int>
+      <int name="ngroups">5687</int>
       <arr name="groups">
         <lst>
           <str name="groupValue">116_ar</str>