This is an automated email from the ASF dual-hosted git repository.
cpoerschke 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 28ed30e SOLR-15535: remove rawtypes warnings in 'grouping' code (#216)
28ed30e is described below
commit 28ed30e6293ea107174de98485a1ad7c32304dd7
Author: Christine Poerschke <[email protected]>
AuthorDate: Thu Aug 19 16:51:55 2021 +0100
SOLR-15535: remove rawtypes warnings in 'grouping' code (#216)
---
solr/CHANGES.txt | 2 +-
.../distributed/command/SearchGroupsFieldCommand.java | 11 ++++++-----
.../distributed/command/TopGroupsFieldCommand.java | 14 ++++++++------
.../SearchGroupShardResponseProcessor.java | 2 +-
.../responseprocessor/TopGroupsShardResponseProcessor.java | 6 +++---
.../SearchGroupsResultTransformer.java | 13 ++++++-------
6 files changed, 25 insertions(+), 23 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index d7dace7..b0e4ef5 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -315,7 +315,7 @@ Other Changes
* SOLR-15439: Upgrade jose4j library used for JWT authentication processing,
to v0.7.7 (janhoy)
-* SOLR-15385: Address many rawtypes warnings, resulting in several modified
signatures in the public API. (Mike Drob, David Smiley, Christine Poerschke)
+* SOLR-15385, SOLR-15535: Address many rawtypes warnings, resulting in several
modified signatures in the public API. (Mike Drob, David Smiley, Christine
Poerschke)
* SOLR-15470: The binary distribution no longer contains test-framework jars
(janhoy)
diff --git
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
index db59aed..064ac2f 100644
---
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
+++
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
@@ -32,6 +32,7 @@ import org.apache.lucene.search.grouping.SearchGroup;
import org.apache.lucene.search.grouping.TermGroupSelector;
import org.apache.lucene.search.grouping.ValueSourceGroupSelector;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.mutable.MutableValue;
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.SchemaField;
import org.apache.solr.search.grouping.Command;
@@ -83,8 +84,7 @@ public class SearchGroupsFieldCommand implements
Command<SearchGroupsFieldComman
private final int topNGroups;
private final boolean includeGroupCount;
- @SuppressWarnings({"rawtypes"})
- private FirstPassGroupingCollector firstPassGroupingCollector;
+ private FirstPassGroupingCollector<?> firstPassGroupingCollector;
private AllGroupsCollector<?> allGroupsCollector;
private SearchGroupsFieldCommand(SchemaField field, Sort groupSort, int
topNGroups, boolean includeGroupCount) {
@@ -123,14 +123,15 @@ public class SearchGroupsFieldCommand implements
Command<SearchGroupsFieldComman
}
@Override
- @SuppressWarnings({"unchecked"})
+ @SuppressWarnings("unchecked")
public SearchGroupsFieldCommandResult result() throws IOException {
final Collection<SearchGroup<BytesRef>> topGroups;
if (firstPassGroupingCollector != null) {
+ Collection<?> values = firstPassGroupingCollector.getTopGroups(0);
if (field.getType().getNumberType() != null) {
- topGroups = GroupConverter.fromMutable(field,
firstPassGroupingCollector.getTopGroups(0));
+ topGroups = GroupConverter.fromMutable(field,
(Collection<SearchGroup<MutableValue>>) values);
} else {
- topGroups = firstPassGroupingCollector.getTopGroups(0);
+ topGroups = (Collection<SearchGroup<BytesRef>>) values;
}
} else {
topGroups = Collections.emptyList();
diff --git
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java
index 1410c67..43c0404 100644
---
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java
+++
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/TopGroupsFieldCommand.java
@@ -17,6 +17,7 @@
package org.apache.solr.search.grouping.distributed.command;
import java.io.IOException;
+import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -116,8 +117,7 @@ public class TopGroupsFieldCommand implements
Command<TopGroups<BytesRef>> {
private final int maxDocPerGroup;
private final boolean needScores;
private final boolean needMaxScore;
- @SuppressWarnings({"rawtypes"})
- private TopGroupsCollector secondPassCollector;
+ private TopGroupsCollector<?> secondPassCollector;
private TopGroups<BytesRef> topGroups;
private TopGroupsFieldCommand(Query query,
@@ -162,18 +162,20 @@ public class TopGroupsFieldCommand implements
Command<TopGroups<BytesRef>> {
}
@Override
- @SuppressWarnings({"unchecked", "rawtypes"})
+ @SuppressWarnings("unchecked")
public void postCollect(IndexSearcher searcher) throws IOException {
if (firstPhaseGroups.isEmpty()) {
- topGroups = new TopGroups<>(groupSort.getSort(),
withinGroupSort.getSort(), 0, 0, new GroupDocs[0], Float.NaN);
+ GroupDocs<BytesRef>[] groups = (GroupDocs<BytesRef>[])
Array.newInstance(GroupDocs.class, 0);
+ topGroups = new TopGroups<>(groupSort.getSort(),
withinGroupSort.getSort(), 0, 0, groups, Float.NaN);
return;
}
FieldType fieldType = field.getType();
+ TopGroups<?> tg = secondPassCollector.getTopGroups(0);
if (fieldType.getNumberType() != null) {
- topGroups = GroupConverter.fromMutable(field,
secondPassCollector.getTopGroups(0));
+ topGroups = GroupConverter.fromMutable(field, (TopGroups<MutableValue>)
tg);
} else {
- topGroups = secondPassCollector.getTopGroups(0);
+ topGroups = (TopGroups<BytesRef>) tg;
}
if (needScores) {
for (GroupDocs<?> group : topGroups.groups) {
diff --git
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
index 9494263..e94fb4b 100644
---
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
+++
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/SearchGroupShardResponseProcessor.java
@@ -48,7 +48,7 @@ import
org.apache.solr.search.grouping.distributed.shardresultserializer.SearchG
public class SearchGroupShardResponseProcessor implements
ShardResponseProcessor {
@Override
- @SuppressWarnings({"unchecked"})
+ @SuppressWarnings("unchecked")
public void process(ResponseBuilder rb, ShardRequest shardRequest) {
SortSpec groupSortSpec = rb.getGroupingSpec().getGroupSortSpec();
Sort groupSort = rb.getGroupingSpec().getGroupSortSpec().getSort();
diff --git
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
index 03d8bc0..d17f41a 100644
---
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
+++
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/responseprocessor/TopGroupsShardResponseProcessor.java
@@ -18,6 +18,7 @@ package
org.apache.solr.search.grouping.distributed.responseprocessor;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -156,12 +157,11 @@ public class TopGroupsShardResponseProcessor implements
ShardResponseProcessor {
continue;
}
- @SuppressWarnings({"rawtypes"})
- TopGroups<BytesRef>[] topGroupsArr = new TopGroups[topGroups.size()];
+ TopGroups<BytesRef>[] topGroupsArr = (TopGroups<BytesRef>[])
Array.newInstance(TopGroups.class, topGroups.size());
int docsPerGroup = docsPerGroupDefault;
if (docsPerGroup < 0) {
docsPerGroup = 0;
- for (@SuppressWarnings({"rawtypes"})TopGroups subTopGroups :
topGroups) {
+ for (TopGroups<?> subTopGroups : topGroups) {
docsPerGroup += subTopGroups.totalGroupedHitCount;
}
}
diff --git
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/SearchGroupsResultTransformer.java
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/SearchGroupsResultTransformer.java
index 960f3f7..de1c390 100644
---
a/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/SearchGroupsResultTransformer.java
+++
b/solr/core/src/java/org/apache/solr/search/grouping/distributed/shardresultserializer/SearchGroupsResultTransformer.java
@@ -71,9 +71,8 @@ public class SearchGroupsResultTransformer implements
ShardResultTransformer<Lis
return result;
}
- @SuppressWarnings({"rawtypes"})
private SearchGroup<BytesRef> deserializeOneSearchGroup(SchemaField
groupField, String groupValue,
- SortField[] groupSortField, List<Comparable> rawSearchGroupData) {
+ SortField[] groupSortField, List<Comparable<?>> rawSearchGroupData) {
SearchGroup<BytesRef> searchGroup = new SearchGroup<>();
searchGroup.groupValue = null;
if (groupValue != null) {
@@ -85,7 +84,8 @@ public class SearchGroupsResultTransformer implements
ShardResultTransformer<Lis
searchGroup.groupValue = new BytesRef(groupValue);
}
}
- searchGroup.sortValues = rawSearchGroupData.toArray(new
Comparable[rawSearchGroupData.size()]);
+ Comparable<?>[] sv = new Comparable<?>[rawSearchGroupData.size()];
+ searchGroup.sortValues = rawSearchGroupData.toArray(sv);
for (int i = 0; i < searchGroup.sortValues.length; i++) {
SchemaField field = groupSortField[i].getField() != null ?
searcher.getSchema().getFieldOrNull(groupSortField[i].getField()) : null;
searchGroup.sortValues[i] =
ShardResultTransformerUtils.unmarshalSortValue(searchGroup.sortValues[i],
field);
@@ -94,18 +94,17 @@ public class SearchGroupsResultTransformer implements
ShardResultTransformer<Lis
}
@Override
- @SuppressWarnings({"rawtypes"})
public Map<String, SearchGroupsFieldCommandResult>
transformToNative(NamedList<NamedList<?>> shardResponse, Sort groupSort, Sort
withinGroupSort, String shard) {
final Map<String, SearchGroupsFieldCommandResult> result = new
HashMap<>(shardResponse.size());
for (Map.Entry<String, NamedList<?>> command : shardResponse) {
List<SearchGroup<BytesRef>> searchGroups = new ArrayList<>();
NamedList<?> topGroupsAndGroupCount = command.getValue();
- @SuppressWarnings({"unchecked"})
- final NamedList<List<Comparable>> rawSearchGroups =
(NamedList<List<Comparable>>) topGroupsAndGroupCount.get(TOP_GROUPS);
+ @SuppressWarnings("unchecked")
+ final NamedList<List<Comparable<?>>> rawSearchGroups =
(NamedList<List<Comparable<?>>>) topGroupsAndGroupCount.get(TOP_GROUPS);
if (rawSearchGroups != null) {
final SchemaField groupField =
searcher.getSchema().getFieldOrNull(command.getKey());
final SortField[] groupSortField = groupSort.getSort();
- for (Map.Entry<String, List<Comparable>> rawSearchGroup :
rawSearchGroups){
+ for (Map.Entry<String, List<Comparable<?>>> rawSearchGroup :
rawSearchGroups){
SearchGroup<BytesRef> searchGroup = deserializeOneSearchGroup(
groupField, rawSearchGroup.getKey(),
groupSortField, rawSearchGroup.getValue());