From 675956c0041b18d48a7c059ea458c49f5310d74a Mon Sep 17 00:00:00 2001 From: Erick Erickson Date: Fri, 22 May 2020 13:40:20 -0400 Subject: [PATCH] SOLR-14495: Fix or suppress warnings in solr/search/function --- solr/CHANGES.txt | 6 ++++++ .../org/apache/solr/search/FunctionRangeQuery.java | 3 +++ .../solr/search/function/CollapseScoreFunction.java | 2 ++ .../solr/search/function/FieldNameValueSource.java | 1 + .../apache/solr/search/function/FileFloatSource.java | 11 +++++++++-- .../solr/search/function/MultiStringFunction.java | 1 + .../apache/solr/search/function/OrdFieldSource.java | 1 + .../solr/search/function/ReverseOrdFieldSource.java | 1 + .../solr/search/function/ValueSourceRangeFilter.java | 2 ++ .../function/distance/GeoDistValueSourceParser.java | 3 ++- .../search/function/distance/GeohashFunction.java | 1 + .../function/distance/GeohashHaversineFunction.java | 2 ++ .../function/distance/HaversineConstFunction.java | 2 ++ .../search/function/distance/HaversineFunction.java | 2 ++ .../function/distance/StringDistanceFunction.java | 1 + .../function/distance/VectorDistanceFunction.java | 2 ++ 16 files changed, 38 insertions(+), 3 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 51c0fecce12..62f3a9c8bed 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -253,6 +253,12 @@ Other Changes * SOLR-14482: Fix or suppress warnings in solr/search/facet (Erick Erickson) + +* SOLR-14485: Fix or suppress 11 resource leak warnings in apache/solr/cloud (Andras Salaman via + Erick Erickson) + +* SOLR-14495: Fix or suppress warnings in solr/search/function (Erick Erickson) + ================== 8.5.1 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. diff --git a/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java b/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java index fdcdfc3eba8..489d86f6dbb 100644 --- a/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java +++ b/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java @@ -41,17 +41,20 @@ public class FunctionRangeQuery extends SolrConstantScoreQuery implements PostFi @Override public DelegatingCollector getFilterCollector(IndexSearcher searcher) { + @SuppressWarnings({"rawtypes"}) Map fcontext = ValueSource.newContext(searcher); Weight weight = rangeFilt.createWeight(searcher, ScoreMode.COMPLETE, 1); return new FunctionRangeCollector(fcontext, weight); } class FunctionRangeCollector extends DelegatingCollector { + @SuppressWarnings({"rawtypes"}) final Map fcontext; final Weight weight; ValueSourceScorer scorer; int maxdoc; + @SuppressWarnings({"rawtypes"}) public FunctionRangeCollector(Map fcontext, Weight weight) { this.fcontext = fcontext; this.weight = weight; diff --git a/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java b/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java index 3932f56c3a3..69a3d5993f4 100644 --- a/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java +++ b/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java @@ -41,6 +41,7 @@ public class CollapseScoreFunction extends ValueSource { return 1213241257; } + @SuppressWarnings({"rawtypes"}) public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { return new CollapseScoreFunctionValues(context); } @@ -49,6 +50,7 @@ public class CollapseScoreFunction extends ValueSource { private CollapseScore cscore; + @SuppressWarnings({"rawtypes"}) public CollapseScoreFunctionValues(Map context) { this.cscore = (CollapseScore) context.get("CSCORE"); assert null != this.cscore; diff --git a/solr/core/src/java/org/apache/solr/search/function/FieldNameValueSource.java b/solr/core/src/java/org/apache/solr/search/function/FieldNameValueSource.java index c122dbb611e..7b5714a2e33 100644 --- a/solr/core/src/java/org/apache/solr/search/function/FieldNameValueSource.java +++ b/solr/core/src/java/org/apache/solr/search/function/FieldNameValueSource.java @@ -39,6 +39,7 @@ public class FieldNameValueSource extends ValueSource { } @Override + @SuppressWarnings({"rawtypes"}) public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { throw new UnsupportedOperationException("FieldNameValueSource should not be directly used: " + this); } diff --git a/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java b/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java index 3b2eb23cf7a..183cf2d8e9c 100644 --- a/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java +++ b/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java @@ -88,6 +88,8 @@ public class FileFloatSource extends ValueSource { } @Override + @SuppressWarnings({"rawtypes"}) + public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { final int off = readerContext.docBase; IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(readerContext); @@ -165,29 +167,34 @@ public class FileFloatSource extends ValueSource { /** Internal cache. (from lucene FieldCache) */ abstract static class Cache { + @SuppressWarnings({"rawtypes"}) private final Map readerCache = new WeakHashMap(); protected abstract Object createValue(IndexReader reader, Object key); + @SuppressWarnings({"unchecked"}) public void refresh(IndexReader reader, Object key) { Object refreshedValues = createValue(reader, key); synchronized (readerCache) { + @SuppressWarnings({"rawtypes"}) Map innerCache = (Map) readerCache.get(reader); if (innerCache == null) { - innerCache = new HashMap(); + innerCache = new HashMap<>(); readerCache.put(reader, innerCache); } innerCache.put(key, refreshedValues); } } + @SuppressWarnings({"unchecked"}) public Object get(IndexReader reader, Object key) { + @SuppressWarnings({"rawtypes"}) Map innerCache; Object value; synchronized (readerCache) { innerCache = (Map) readerCache.get(reader); if (innerCache == null) { - innerCache = new HashMap(); + innerCache = new HashMap<>(); readerCache.put(reader, innerCache); value = null; } else { diff --git a/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java b/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java index c4aef6cf995..eca6f3c07d0 100644 --- a/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java +++ b/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java @@ -60,6 +60,7 @@ public abstract class MultiStringFunction extends ValueSource { } @Override + @SuppressWarnings({"rawtypes"}) public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { final FunctionValues[] valsArr = new FunctionValues[sources.length]; for (int i=0; i