You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by kr...@apache.org on 2022/10/28 15:21:41 UTC

[solr] branch branch_9x updated (f4d1219d390 -> fe43afc0f39)

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

krisden pushed a change to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git


    from f4d1219d390 SOLR-16442: upgrade to Lucene 9.4.1 (#1132)
     new 7ab4d84e35a SOLR-16427: Evaluate and fix errorprone rules - Disable errorprone on javacc files
     new db8d0e155ad SOLR-16427: Evaluate and fix errorprone rules - EqualsUnsafeCast
     new 54fc2c9658f SOLR-16427: Evaluate and fix errorprone rules - IdentityHashMapUsage
     new 837516d0116 SOLR-16427: Evaluate and fix errorprone rules - BadShiftAmount
     new 1f6d2815111 SOLR-16427: Evaluate and fix errorprone rules - FloatingPointLiteralPrecision
     new 23f3631e25f SOLR-16427: Evaluate and fix errorprone rules - CatchAndPrintStackTrace
     new a79fefac9d6 SOLR-16427: Evaluate and fix errorprone rules - IntLongMath
     new 209669f4861 SOLR-16427: Evaluate and fix errorprone rules - ImmutableEnumChecker
     new 90fb08bb141 SOLR-16427: Evaluate and fix errorprone rules - ObjectsHashCodePrimitive
     new 32e229556da SOLR-16427: Evaluate and fix errorprone rules - OperatorPrecedence
     new be9a78e442f SOLR-16427: Evaluate and fix errorprone rules - InconsistentCapitalization
     new fe43afc0f39 SOLR-16427: Evaluate and fix errorprone rules - IdentityBinaryExpression

The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gradle/generation/javacc.gradle                    | 12 ++--
 gradle/validation/error-prone.gradle               | 22 ++----
 .../src/java/org/apache/solr/bench/Docs.java       |  6 +-
 .../client/solrj/embedded/EmbeddedSolrServer.java  |  5 +-
 .../api/collections/DimensionalRoutedAlias.java    |  2 +-
 .../api/collections/ReindexCollectionCmd.java      | 14 ++--
 .../src/java/org/apache/solr/cluster/Replica.java  |  2 +-
 .../apache/solr/core/CachingDirectoryFactory.java  |  2 +-
 .../src/java/org/apache/solr/core/ConfigSet.java   |  6 +-
 .../apache/solr/filestore/DistribPackageStore.java | 14 ++--
 .../apache/solr/handler/ReplicationHandler.java    |  8 +--
 .../solr/handler/admin/CollectionsHandler.java     | 13 ++--
 .../solr/handler/admin/CoreAdminOperation.java     |  1 +
 .../solr/handler/component/FacetComponent.java     |  2 +-
 .../solr/handler/component/HighlightComponent.java | 10 ++-
 .../apache/solr/handler/component/StatsField.java  |  3 +-
 .../solr/legacy/LegacyNumericRangeQuery.java       |  6 +-
 .../java/org/apache/solr/parser/QueryParser.java   | 47 +++++++------
 .../src/java/org/apache/solr/parser/QueryParser.jj |  2 +
 .../solr/parser/QueryParserTokenManager.java       |  5 +-
 .../java/org/apache/solr/query/SolrRangeQuery.java |  2 +-
 .../java/org/apache/solr/schema/IndexSchema.java   | 10 +--
 .../org/apache/solr/schema/ManagedIndexSchema.java |  3 +-
 .../java/org/apache/solr/schema/NumberType.java    |  3 +-
 .../java/org/apache/solr/schema/SchemaManager.java | 14 ++--
 .../org/apache/solr/search/BoolQParserPlugin.java  |  2 +-
 .../solr/search/CollapsingQParserPlugin.java       |  6 +-
 .../java/org/apache/solr/search/DocSetBuilder.java |  2 +-
 .../org/apache/solr/search/FunctionQParser.java    |  2 +-
 .../java/org/apache/solr/search/PointMerger.java   |  5 +-
 .../org/apache/solr/search/SolrReturnFields.java   |  2 +-
 .../org/apache/solr/search/SortedIntDocSet.java    |  2 +-
 .../solr/search/facet/FacetFieldProcessor.java     |  2 +-
 .../org/apache/solr/search/facet/FacetMerger.java  |  6 +-
 .../org/apache/solr/search/facet/FacetModule.java  |  6 +-
 .../apache/solr/search/facet/FacetProcessor.java   |  2 +-
 .../search/facet/FacetRequestSortedMerger.java     |  3 +-
 .../apache/solr/search/facet/UnInvertedField.java  |  2 +-
 .../solr/search/function/FileFloatSource.java      |  6 +-
 .../solr/search/grouping/CommandHandler.java       |  8 +--
 .../solr/search/join/CrossCollectionJoinQuery.java |  2 +-
 .../apache/solr/search/join/FiltersQParser.java    |  2 +-
 .../apache/solr/search/join/HashRangeQuery.java    |  4 +-
 .../apache/solr/search/stats/LRUStatsCache.java    |  2 +-
 .../java/org/apache/solr/security/AuditEvent.java  |  4 +-
 .../solr/security/PermissionNameProvider.java      |  1 +
 .../security/RuleBasedAuthorizationPluginBase.java |  1 +
 .../apache/solr/servlet/SolrRequestParsers.java    |  2 +-
 .../org/apache/solr/uninverting/DocTermOrds.java   | 10 +--
 .../IgnoreLargeDocumentProcessorFactory.java       |  3 +-
 .../org/apache/solr/util/ConcurrentLRUCache.java   | 14 ++--
 .../src/java/org/apache/solr/util/NumberUtils.java |  2 +-
 .../util/circuitbreaker/CPUCircuitBreaker.java     |  2 +-
 .../java/org/apache/solr/util/hll/BitVector.java   |  4 +-
 .../src/java/org/apache/solr/util/hll/HLLUtil.java |  1 +
 .../client/solrj/impl/ConnectionReuseTest.java     |  6 +-
 .../ChaosMonkeySafeLeaderWithPullReplicasTest.java |  3 +-
 .../solr/cloud/ChaosMonkeyShardSplitTest.java      |  4 +-
 .../org/apache/solr/cloud/DeleteReplicaTest.java   |  4 +-
 .../org/apache/solr/cloud/LeaderElectionTest.java  |  5 +-
 .../test/org/apache/solr/cloud/OverseerTest.java   | 14 ++--
 .../test/org/apache/solr/cloud/SplitShardTest.java |  4 +-
 .../solr/cloud/TestStressInPlaceUpdates.java       | 15 +++--
 .../org/apache/solr/cloud/TestTlogReplica.java     |  3 +-
 .../solr/cloud/TrollingIndexReaderFactory.java     | 10 ++-
 .../test/org/apache/solr/cloud/ZkFailoverTest.java |  7 +-
 .../org/apache/solr/cloud/ZkShardTermsTest.java    |  7 +-
 .../TestRequestStatusCollectionAPI.java            | 20 +++---
 .../handler/TestSolrConfigHandlerConcurrent.java   |  2 +-
 .../solr/handler/TestStressIncrementalBackup.java  |  3 +-
 .../solr/handler/admin/MBeansHandlerTest.java      |  8 ++-
 .../component/DistributedTermsComponentTest.java   |  2 +-
 .../apache/solr/handler/tagger/TaggerTestCase.java |  1 +
 .../apache/solr/legacy/TestLegacyNumericUtils.java |  4 +-
 .../solr/legacy/TestNumericRangeQuery64.java       |  2 +-
 .../solr/response/TestRetrieveFieldsOptimizer.java | 30 ++++-----
 .../test/org/apache/solr/schema/DocValuesTest.java |  8 +--
 .../apache/solr/schema/PreAnalyzedFieldTest.java   |  6 +-
 .../org/apache/solr/schema/TestPointFields.java    |  2 +-
 .../test/org/apache/solr/search/TestDocSet.java    |  3 +-
 .../src/test/org/apache/solr/search/TestSolrJ.java |  9 ++-
 .../src/test/org/apache/solr/search/TestSort.java  |  6 +-
 .../solr/uninverting/TestNumericTerms64.java       |  2 +-
 .../solr/uninverting/TestUninvertingReader.java    |  2 +-
 .../ParsingFieldUpdateProcessorsTest.java          |  8 +--
 .../processor/RoutedAliasUpdateProcessorTest.java  |  7 +-
 .../TimeRoutedAliasUpdateProcessorTest.java        |  2 +-
 .../org/apache/solr/util/OrderedExecutorTest.java  |  3 +-
 .../solr/util/hll/ProbabilisticTestUtil.java       |  2 +-
 solr/modules/analytics/build.gradle                |  1 +
 .../function/mapping/FillMissingFunctionTest.java  | 20 +++---
 .../function/mapping/FilterFunctionTest.java       |  2 +-
 .../analytics/function/mapping/IfFunctionTest.java | 22 +++---
 .../function/mapping/RemoveFunctionTest.java       | 14 ++--
 .../function/mapping/ReplaceFunctionTest.java      | 20 +++---
 .../legacy/LegacyAbstractAnalyticsTest.java        | 12 ++--
 .../legacy/expression/LegacyFunctionTest.java      |  2 +-
 .../solr/hdfs/store/blockcache/BlockDirectory.java |  2 +-
 .../apache/solr/hdfs/store/HdfsDirectoryTest.java  |  6 +-
 .../solr/hdfs/store/blockcache/BlockCacheTest.java | 10 ++-
 .../hdfs/store/blockcache/BlockDirectoryTest.java  |  8 ++-
 .../org/apache/solr/handler/sql/SolrMethod.java    |  1 +
 .../solr/client/solrj/impl/Http2SolrClient.java    |  4 +-
 .../solr/client/solrj/impl/HttpSolrClient.java     |  4 +-
 .../solr/client/solrj/impl/LBSolrClient.java       |  2 +-
 .../org/apache/solr/client/solrj/io/Tuple.java     | 12 ++--
 .../apache/solr/client/solrj/io/comp/HashKey.java  |  1 +
 .../solr/common/cloud/CompositeIdRouter.java       |  2 +-
 .../org/apache/solr/common/params/TermsParams.java |  4 +-
 .../src/java/org/apache/solr/common/util/Hash.java | 78 +++++++++++-----------
 .../apache/solr/common/util/JsonRecordReader.java  |  2 +-
 .../solr/common/util/JsonSchemaValidator.java      |  2 +-
 solr/solrj/src/java/org/noggit/JSONParser.java     |  6 +-
 .../solr/client/solrj/LargeVolumeTestBase.java     |  2 +-
 .../apache/solr/client/solrj/StartSolrJetty.java   |  7 +-
 .../solrj/embedded/SolrExampleJettyTest.java       |  6 +-
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java |  6 +-
 .../client/solrj/io/stream/MathExpressionTest.java |  4 +-
 .../solrj/io/stream/eval/AddEvaluatorTest.java     | 54 ++++++++-------
 .../apache/solr/common/params/SolrParamTest.java   |  6 +-
 .../apache/solr/common/util/TestJavaBinCodec.java  |  6 +-
 solr/solrj/src/test/org/noggit/TestJSONParser.java |  9 ++-
 .../apache/solr/BaseDistributedSearchTestCase.java |  6 +-
 .../src/java/org/apache/solr/JSONTestUtil.java     |  4 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |  4 +-
 .../cloud/AbstractBasicDistributedZkTestBase.java  |  6 +-
 .../AbstractChaosMonkeySafeLeaderTestBase.java     |  8 ++-
 .../solr/cloud/AbstractFullDistribZkTestBase.java  | 18 ++---
 .../solr/cloud/AbstractSyncSliceTestBase.java      |  7 +-
 .../java/org/apache/solr/cloud/ChaosMonkey.java    |  8 +--
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |  8 +--
 .../apache/solr/cloud/StoppableIndexingThread.java | 17 ++---
 .../apache/solr/cloud/StoppableSearchThread.java   |  6 +-
 .../java/org/apache/solr/cloud/ZkTestServer.java   |  2 +-
 .../collections/AbstractIncrementalBackupTest.java |  6 +-
 .../java/org/apache/solr/util/SSLTestConfig.java   | 14 ++--
 136 files changed, 540 insertions(+), 449 deletions(-)


[solr] 03/12: SOLR-16427: Evaluate and fix errorprone rules - IdentityHashMapUsage

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 54fc2c9658fd541dc336049e86ebd2c8deb514ee
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 13:41:51 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - IdentityHashMapUsage
---
 gradle/validation/error-prone.gradle                                | 1 -
 .../core/src/java/org/apache/solr/core/CachingDirectoryFactory.java | 2 +-
 solr/core/src/java/org/apache/solr/search/BoolQParserPlugin.java    | 2 +-
 solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java    | 6 ++++--
 solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java  | 2 +-
 .../solr/update/processor/IgnoreLargeDocumentProcessorFactory.java  | 3 ++-
 6 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index f4192b29f61..0d30d95af0b 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -86,7 +86,6 @@ allprojects { prj ->
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:IdentityHashMapUsage:OFF',
             '-Xep:ImmutableEnumChecker:OFF',
             '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
diff --git a/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java
index 934f4392702..14303fe04ea 100644
--- a/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java
@@ -91,7 +91,7 @@ public abstract class CachingDirectoryFactory extends DirectoryFactory {
 
   protected Map<String, CacheValue> byPathCache = new HashMap<>();
 
-  protected Map<Directory, CacheValue> byDirectoryCache = new IdentityHashMap<>();
+  protected IdentityHashMap<Directory, CacheValue> byDirectoryCache = new IdentityHashMap<>();
 
   protected Map<Directory, List<CloseListener>> closeListeners = new HashMap<>();
 
diff --git a/solr/core/src/java/org/apache/solr/search/BoolQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/BoolQParserPlugin.java
index 272f91e6903..d0f36d762d3 100644
--- a/solr/core/src/java/org/apache/solr/search/BoolQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/BoolQParserPlugin.java
@@ -60,7 +60,7 @@ public class BoolQParserPlugin extends QParserPlugin {
 
       @Override
       protected Map<QParser, BooleanClause.Occur> clauses() throws SyntaxError {
-        Map<QParser, BooleanClause.Occur> clauses = new IdentityHashMap<>();
+        IdentityHashMap<QParser, BooleanClause.Occur> clauses = new IdentityHashMap<>();
         SolrParams solrParams = SolrParams.wrapDefaults(localParams, params);
         addQueries(clauses, solrParams.getParams("must"), BooleanClause.Occur.MUST);
         addQueries(clauses, solrParams.getParams("must_not"), BooleanClause.Occur.MUST_NOT);
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java b/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java
index 9da78b8ea7b..90b6a76d1c4 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetMerger.java
@@ -96,7 +96,8 @@ public abstract class FacetMerger {
       return oldVal;
     }
 
-    private Map<FacetRequest, Collection<String>> refineSubMap = new IdentityHashMap<>(4);
+    private final IdentityHashMap<FacetRequest, Collection<String>> refineSubMap =
+        new IdentityHashMap<>(4);
 
     public Collection<String> getSubsWithRefinement(FacetRequest freq) {
       if (freq.getSubFacets().isEmpty()) return Collections.emptyList();
@@ -120,7 +121,8 @@ public abstract class FacetMerger {
       return subs;
     }
 
-    private Map<FacetRequest, Collection<String>> partialSubsMap = new IdentityHashMap<>(4);
+    private final IdentityHashMap<FacetRequest, Collection<String>> partialSubsMap =
+        new IdentityHashMap<>(4);
 
     public Collection<String> getSubsWithPartial(FacetRequest freq) {
       if (freq.getSubFacets().isEmpty()) return Collections.emptyList();
diff --git a/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java b/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java
index 13c1fb3333a..c2397cd7061 100644
--- a/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/join/FiltersQParser.java
@@ -102,7 +102,7 @@ public class FiltersQParser extends QParser {
               + " is not defined for "
               + stringIncludingLocalParams);
     }
-    Map<QParser, Occur> clauses = new IdentityHashMap<>();
+    IdentityHashMap<QParser, Occur> clauses = new IdentityHashMap<>();
 
     for (String filter : params == null ? new String[0] : params) {
       if (filter == null || filter.length() == 0) {
diff --git a/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java
index 16508dd864b..7f9d1c250d9 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/IgnoreLargeDocumentProcessorFactory.java
@@ -115,7 +115,8 @@ public class IgnoreLargeDocumentProcessorFactory extends UpdateRequestProcessorF
   // package private for testing
   static class ObjectSizeEstimator {
     /** Sizes of primitive classes. */
-    private static final Map<Class<?>, Integer> primitiveSizes = new IdentityHashMap<>();
+    private static final IdentityHashMap<Class<?>, Integer> primitiveSizes =
+        new IdentityHashMap<>();
 
     static {
       primitiveSizes.put(boolean.class, 1);


[solr] 11/12: SOLR-16427: Evaluate and fix errorprone rules - InconsistentCapitalization

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit be9a78e442f46e3d45c0f32f9613407fb39f1cc6
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 20:50:55 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - InconsistentCapitalization
---
 gradle/validation/error-prone.gradle                       |  3 +--
 solr/core/src/java/org/apache/solr/core/ConfigSet.java     |  6 +++---
 .../org/apache/solr/filestore/DistribPackageStore.java     | 14 +++++++-------
 .../java/org/apache/solr/handler/ReplicationHandler.java   |  8 ++++----
 .../src/java/org/apache/solr/schema/SchemaManager.java     | 14 +++++++++-----
 .../org/apache/solr/search/function/FileFloatSource.java   |  6 +++---
 .../org/apache/solr/search/grouping/CommandHandler.java    |  8 ++++----
 .../src/java/org/apache/solr/util/ConcurrentLRUCache.java  | 14 +++++++-------
 .../org/apache/solr/client/solrj/impl/Http2SolrClient.java |  4 ++--
 .../org/apache/solr/client/solrj/impl/HttpSolrClient.java  |  4 ++--
 .../src/java/org/apache/solr/client/solrj/io/Tuple.java    | 12 ++++++------
 .../src/java/org/apache/solr/SolrTestCaseJ4.java           |  4 ++--
 .../java/org/apache/solr/cloud/MiniSolrCloudCluster.java   |  8 ++++----
 .../src/java/org/apache/solr/util/SSLTestConfig.java       | 14 +++++++-------
 14 files changed, 61 insertions(+), 58 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 6c505aea73a..e5cf063dc8a 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -81,7 +81,6 @@ allprojects { prj ->
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
             '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
             '-Xep:InputStreamSlowMultibyteRead:OFF',
@@ -106,7 +105,7 @@ allprojects { prj ->
             '-Xep:ThreadPriorityCheck:OFF',
             '-Xep:TypeParameterShadowing:OFF',
             '-Xep:TypeParameterUnusedInFormals:OFF',
-            '-Xep:UnicodeEscape:OFF',
+            '-Xep:UnicodeEscape:OFF', // can't enable since Lucene/Solr tests use unicode a bunch
             '-Xep:UnnecessaryParentheses:OFF',
             '-Xep:UnusedMethod:OFF',
             '-Xep:UnusedVariable:OFF',
diff --git a/solr/core/src/java/org/apache/solr/core/ConfigSet.java b/solr/core/src/java/org/apache/solr/core/ConfigSet.java
index e3d9de4ea86..857fbb30552 100644
--- a/solr/core/src/java/org/apache/solr/core/ConfigSet.java
+++ b/solr/core/src/java/org/apache/solr/core/ConfigSet.java
@@ -28,7 +28,7 @@ public class ConfigSet {
 
   private final String name;
 
-  private final SolrConfig solrconfig;
+  private final SolrConfig solrConfig;
   private volatile IndexSchema schema;
 
   private final SchemaSupplier schemaSupplier;
@@ -44,7 +44,7 @@ public class ConfigSet {
       NamedList<?> properties,
       boolean trusted) {
     this.name = name;
-    this.solrconfig = solrConfig;
+    this.solrConfig = solrConfig;
     this.schemaSupplier = indexSchemaSupplier;
     schema = schemaSupplier.get(true);
     this.properties = properties;
@@ -56,7 +56,7 @@ public class ConfigSet {
   }
 
   public SolrConfig getSolrConfig() {
-    return solrconfig;
+    return solrConfig;
   }
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java b/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
index ef63850ac6b..5b872857bfc 100644
--- a/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
+++ b/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
@@ -72,16 +72,16 @@ public class DistribPackageStore implements PackageStore {
   private final CoreContainer coreContainer;
   private Map<String, FileInfo> tmpFiles = new ConcurrentHashMap<>();
 
-  private final Path solrhome;
+  private final Path solrHome;
 
   public DistribPackageStore(CoreContainer coreContainer) {
     this.coreContainer = coreContainer;
-    this.solrhome = Paths.get(this.coreContainer.getSolrHome());
+    this.solrHome = Paths.get(this.coreContainer.getSolrHome());
   }
 
   @Override
   public Path getRealpath(String path) {
-    return _getRealPath(path, solrhome);
+    return _getRealPath(path, solrHome);
   }
 
   private static Path _getRealPath(String path, Path solrHome) {
@@ -127,7 +127,7 @@ public class DistribPackageStore implements PackageStore {
       synchronized (DistribPackageStore.this) {
         this.metaData = meta;
         this.fileData = data;
-        _persistToFile(solrhome, path, data, meta);
+        _persistToFile(solrHome, path, data, meta);
         if (log.isInfoEnabled()) {
           log.info(
               "persisted a file {} and metadata. sizes {} {}", path, data.limit(), meta.limit());
@@ -627,13 +627,13 @@ public class DistribPackageStore implements PackageStore {
 
   @Override
   public Map<String, byte[]> getKeys() throws IOException {
-    return _getKeys(solrhome);
+    return _getKeys(solrHome);
   }
 
   // reads local keys file
-  private static Map<String, byte[]> _getKeys(Path solrhome) throws IOException {
+  private static Map<String, byte[]> _getKeys(Path solrHome) throws IOException {
     Map<String, byte[]> result = new HashMap<>();
-    Path keysDir = _getRealPath(PackageStoreAPI.KEYS_DIR, solrhome);
+    Path keysDir = _getRealPath(PackageStoreAPI.KEYS_DIR, solrHome);
 
     File[] keyFiles = keysDir.toFile().listFiles();
     if (keyFiles == null) return result;
diff --git a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
index fa24e94968b..7cae4115598 100644
--- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
@@ -1629,9 +1629,9 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
     }
 
     // Throw exception on directory traversal attempts
-    protected String validateFilenameOrError(String filename) {
-      if (filename != null) {
-        Path filePath = Paths.get(filename);
+    protected String validateFilenameOrError(String fileName) {
+      if (fileName != null) {
+        Path filePath = Paths.get(fileName);
         filePath.forEach(
             subpath -> {
               if ("..".equals(subpath.toString())) {
@@ -1641,7 +1641,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
         if (filePath.isAbsolute()) {
           throw new SolrException(ErrorCode.FORBIDDEN, "File name must be relative");
         }
-        return filename;
+        return fileName;
       } else return null;
     }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index 5ab9c412f1a..1d8482cdcea 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -62,17 +62,21 @@ public class SchemaManager {
 
   final SolrQueryRequest req;
   ManagedIndexSchema managedIndexSchema;
-  int timeout;
+  int updateTimeOut;
 
   public SchemaManager(SolrQueryRequest req) {
     this.req = req;
+
     // The default timeout is 10 minutes when no BaseSolrResource.UPDATE_TIMEOUT_SECS is specified
-    timeout = req.getParams().getInt(BaseSolrResource.UPDATE_TIMEOUT_SECS, 600);
+    int defaultUpdateTimeOut = 600;
+
+    updateTimeOut =
+        req.getParams().getInt(BaseSolrResource.UPDATE_TIMEOUT_SECS, defaultUpdateTimeOut);
 
     // If BaseSolrResource.UPDATE_TIMEOUT_SECS=0 or -1 then end time then we'll try for 10 mins (
     // default timeout )
-    if (timeout < 1) {
-      timeout = 600;
+    if (updateTimeOut < 1) {
+      updateTimeOut = defaultUpdateTimeOut;
     }
   }
 
@@ -97,7 +101,7 @@ public class SchemaManager {
 
   private List<Map<String, Object>> doOperations(List<CommandOperation> operations)
       throws InterruptedException, IOException, KeeperException {
-    TimeOut timeOut = new TimeOut(timeout, TimeUnit.SECONDS, TimeSource.NANO_TIME);
+    TimeOut timeOut = new TimeOut(updateTimeOut, TimeUnit.SECONDS, TimeSource.NANO_TIME);
     SolrCore core = req.getCore();
     String errorMsg = "Unable to persist managed schema. ";
     List<Map<String, Object>> errors = Collections.emptyList();
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 cc3f4d91216..b7628fde606 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
@@ -73,13 +73,13 @@ public class FileFloatSource extends ValueSource {
    * @param field the source's SchemaField
    * @param keyField the field to use as a key
    * @param defVal the default value to use if a field has no entry in the external file
-   * @param datadir the directory in which to look for the external file
+   * @param dataDir the directory in which to look for the external file
    */
-  public FileFloatSource(SchemaField field, SchemaField keyField, float defVal, String datadir) {
+  public FileFloatSource(SchemaField field, SchemaField keyField, float defVal, String dataDir) {
     this.field = field;
     this.keyField = keyField;
     this.defVal = defVal;
-    this.dataDir = datadir;
+    this.dataDir = dataDir;
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/CommandHandler.java b/solr/core/src/java/org/apache/solr/search/grouping/CommandHandler.java
index 7f899eccaf8..99224d881f6 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/CommandHandler.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/CommandHandler.java
@@ -119,7 +119,7 @@ public class CommandHandler {
   private final QueryCommand queryCommand;
   private final List<Command<?>> commands;
   private final SolrIndexSearcher searcher;
-  private final boolean needDocset;
+  private final boolean needDocSet;
   private final boolean truncateGroups;
   private final boolean includeHitCount;
   private boolean partialResults = false;
@@ -131,13 +131,13 @@ public class CommandHandler {
       QueryCommand queryCommand,
       List<Command<?>> commands,
       SolrIndexSearcher searcher,
-      boolean needDocset,
+      boolean needDocSet,
       boolean truncateGroups,
       boolean includeHitCount) {
     this.queryCommand = queryCommand;
     this.commands = commands;
     this.searcher = searcher;
-    this.needDocset = needDocset;
+    this.needDocSet = needDocSet;
     this.truncateGroups = truncateGroups;
     this.includeHitCount = includeHitCount;
   }
@@ -155,7 +155,7 @@ public class CommandHandler {
 
     if (truncateGroups) {
       docSet = computeGroupedDocSet(query, filter, collectors);
-    } else if (needDocset) {
+    } else if (needDocSet) {
       docSet = computeDocSet(query, filter, collectors);
     } else if (!collectors.isEmpty()) {
       searchWithTimeLimiter(
diff --git a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
index 2bee753a3ea..8b3aef7130c 100644
--- a/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
+++ b/solr/core/src/java/org/apache/solr/util/ConcurrentLRUCache.java
@@ -113,7 +113,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
   public ConcurrentLRUCache(
       int upperWaterMark,
       final int lowerWaterMark,
-      int acceptableWatermark,
+      int acceptableWaterMark,
       int initialSize,
       boolean runCleanupThread,
       boolean runNewThreadForCleanup,
@@ -121,7 +121,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
     this(
         upperWaterMark,
         lowerWaterMark,
-        acceptableWatermark,
+        acceptableWaterMark,
         initialSize,
         runCleanupThread,
         runNewThreadForCleanup,
@@ -132,7 +132,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
   public ConcurrentLRUCache(
       int upperWaterMark,
       final int lowerWaterMark,
-      int acceptableWatermark,
+      int acceptableWaterMark,
       int initialSize,
       boolean runCleanupThread,
       boolean runNewThreadForCleanup,
@@ -145,7 +145,7 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
     newThreadForCleanup = runNewThreadForCleanup;
     this.upperWaterMark = upperWaterMark;
     this.lowerWaterMark = lowerWaterMark;
-    this.acceptableWaterMark = acceptableWatermark;
+    this.acceptableWaterMark = acceptableWaterMark;
     this.evictionListener = evictionListener;
     this.ramLowerWatermark = Long.MIN_VALUE;
     this.ramUpperWatermark = Long.MAX_VALUE;
@@ -153,11 +153,11 @@ public class ConcurrentLRUCache<K, V> implements Cache<K, V>, Accountable {
     setRunCleanupThread(runCleanupThread);
   }
 
-  public ConcurrentLRUCache(int size, int lowerWatermark) {
+  public ConcurrentLRUCache(int size, int lowerWaterMark) {
     this(
         size,
-        lowerWatermark,
-        (int) Math.floor((lowerWatermark + size) / 2.0),
+        lowerWaterMark,
+        (int) Math.floor((lowerWaterMark + size) / 2.0),
         (int) Math.ceil(0.75 * size),
         false,
         false,
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index ea4b4d41acb..a6e528cfc95 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -1030,8 +1030,8 @@ public class Http2SolrClient extends SolrClient {
       return this;
     }
 
-    public Builder connectionTimeout(int connectionTimeOut) {
-      this.connectionTimeout = connectionTimeOut;
+    public Builder connectionTimeout(int connectionTimeout) {
+      this.connectionTimeout = connectionTimeout;
       return this;
     }
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
index ee2e5da51c7..8d75b9b6852 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
@@ -813,8 +813,8 @@ public class HttpSolrClient extends BaseHttpSolrClient {
    * In this case the client is more flexible and can be used to send requests to any cores. The
    * cost of this is that the core must be specified on each request.
    */
-  public void setBaseURL(String baseURL) {
-    this.baseUrl = baseURL;
+  public void setBaseURL(String baseUrl) {
+    this.baseUrl = baseUrl;
   }
 
   public ResponseParser getParser() {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java
index 4a29e3fbb6d..54da785fa3f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/Tuple.java
@@ -359,12 +359,12 @@ public class Tuple implements Cloneable, MapWriter {
    * Create a new empty tuple marked as EXCEPTION, and optionally EOF.
    *
    * @param msg exception message
-   * @param eof if true the tuple will be marked as EOF
+   * @param isEOF if true the tuple will be marked as EOF
    */
-  public static Tuple EXCEPTION(String msg, boolean eof) {
+  public static Tuple EXCEPTION(String msg, boolean isEOF) {
     Tuple tuple = new Tuple();
     tuple.put(StreamParams.EXCEPTION, msg);
-    if (eof) {
+    if (isEOF) {
       tuple.put(StreamParams.EOF, true);
     }
     return tuple;
@@ -374,11 +374,11 @@ public class Tuple implements Cloneable, MapWriter {
    * Create a new empty tuple marked as EXCEPTION and optionally EOF.
    *
    * @param t exception - full stack trace will be used as an exception message
-   * @param eof if true the tuple will be marked as EOF
+   * @param isEOF if true the tuple will be marked as EOF
    */
-  public static Tuple EXCEPTION(Throwable t, boolean eof) {
+  public static Tuple EXCEPTION(Throwable t, boolean isEOF) {
     StringWriter sw = new StringWriter();
     t.printStackTrace(new PrintWriter(sw));
-    return EXCEPTION(sw.toString(), eof);
+    return EXCEPTION(sw.toString(), isEOF);
   }
 }
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
index 4d842681159..b3e6b609c80 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -204,9 +204,9 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
 
   protected static volatile ExecutorService testExecutor;
 
-  protected void writeCoreProperties(Path coreDirectory, String corename) throws IOException {
+  protected void writeCoreProperties(Path coreDirectory, String coreName) throws IOException {
     Properties props = new Properties();
-    props.setProperty("name", corename);
+    props.setProperty("name", coreName);
     props.setProperty("configSet", "collection1");
     props.setProperty("config", "${solrconfig:solrconfig.xml}");
     props.setProperty("schema", "${schema:schema.xml}");
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
index 9de548c2ec3..172e3258f1d 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
@@ -1026,7 +1026,7 @@ public class MiniSolrCloudCluster {
 
     private final int nodeCount;
     private final Path baseDir;
-    private String solrxml = DEFAULT_CLOUD_SOLR_XML;
+    private String solrXml = DEFAULT_CLOUD_SOLR_XML;
     private JettyConfig.Builder jettyConfigBuilder;
     private Optional<String> securityJson = Optional.empty();
 
@@ -1063,14 +1063,14 @@ public class MiniSolrCloudCluster {
 
     /** Use the provided string as solr.xml content */
     public Builder withSolrXml(String solrXml) {
-      this.solrxml = solrXml;
+      this.solrXml = solrXml;
       return this;
     }
 
     /** Read solr.xml from the provided path */
     public Builder withSolrXml(Path solrXml) {
       try {
-        this.solrxml = new String(Files.readAllBytes(solrXml), Charset.defaultCharset());
+        this.solrXml = new String(Files.readAllBytes(solrXml), Charset.defaultCharset());
       } catch (IOException e) {
         throw new RuntimeException(e);
       }
@@ -1235,7 +1235,7 @@ public class MiniSolrCloudCluster {
           new MiniSolrCloudCluster(
               nodeCount,
               baseDir,
-              solrxml,
+              solrXml,
               jettyConfig,
               null,
               securityJson,
diff --git a/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java b/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
index 2f47fbcefe3..5242e9151ad 100644
--- a/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
+++ b/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
@@ -75,11 +75,11 @@ public class SSLTestConfig {
    * <p>As needed, keystore/truststore information will be pulled from a hardcoded resource file
    * provided by the solr test-framework
    *
-   * @param useSSL - whether SSL should be required.
+   * @param useSsl - whether SSL should be required.
    * @param clientAuth - whether client authentication should be required.
    */
-  public SSLTestConfig(boolean useSSL, boolean clientAuth) {
-    this(useSSL, clientAuth, false);
+  public SSLTestConfig(boolean useSsl, boolean clientAuth) {
+    this(useSsl, clientAuth, false);
   }
 
   // NOTE: if any javadocs below change, update create-keystores.sh
@@ -97,18 +97,18 @@ public class SSLTestConfig {
    *       SSLTestConfig should care what CN/SAN are.
    * </ul>
    *
-   * @param useSSL - whether SSL should be required.
+   * @param useSsl - whether SSL should be required.
    * @param clientAuth - whether client authentication should be required.
    * @param checkPeerName - whether the client should validate the 'peer name' of the SSL
    *     Certificate (and which testing Cert should be used)
    * @see HttpClientUtil#SYS_PROP_CHECK_PEER_NAME
    */
-  public SSLTestConfig(boolean useSSL, boolean clientAuth, boolean checkPeerName) {
-    this.useSsl = useSSL;
+  public SSLTestConfig(boolean useSsl, boolean clientAuth, boolean checkPeerName) {
+    this.useSsl = useSsl;
     this.clientAuth = clientAuth;
     this.checkPeerName = checkPeerName;
 
-    if (useSsl) {
+    if (this.useSsl) {
       assumeSslIsSafeToTest();
     }
 


[solr] 07/12: SOLR-16427: Evaluate and fix errorprone rules - IntLongMath

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a79fefac9d62b91b6922a5111f002c2d3fa02857
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 15:55:25 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - IntLongMath
---
 gradle/validation/error-prone.gradle                           |  1 -
 solr/core/src/java/org/apache/solr/search/DocSetBuilder.java   |  2 +-
 solr/core/src/java/org/apache/solr/search/PointMerger.java     |  5 ++---
 solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java |  2 +-
 .../src/java/org/apache/solr/search/facet/UnInvertedField.java |  2 +-
 .../core/src/java/org/apache/solr/uninverting/DocTermOrds.java | 10 +++++-----
 solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java   |  4 ++--
 .../test/org/apache/solr/legacy/TestNumericRangeQuery64.java   |  2 +-
 solr/core/src/test/org/apache/solr/schema/TestPointFields.java |  2 +-
 .../test/org/apache/solr/uninverting/TestNumericTerms64.java   |  2 +-
 .../org/apache/solr/uninverting/TestUninvertingReader.java     |  2 +-
 .../test/org/apache/solr/util/hll/ProbabilisticTestUtil.java   |  2 +-
 .../solr/analytics/legacy/expression/LegacyFunctionTest.java   |  2 +-
 .../org/apache/solr/hdfs/store/blockcache/BlockDirectory.java  |  2 +-
 .../org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java  |  2 +-
 .../apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java  |  2 +-
 solr/solrj/src/java/org/noggit/JSONParser.java                 |  2 +-
 17 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 64c906442ac..a9ddb63c49d 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -87,7 +87,6 @@ allprojects { prj ->
             '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
             '-Xep:InputStreamSlowMultibyteRead:OFF',
-            '-Xep:IntLongMath:OFF',
             '-Xep:InvalidBlockTag:OFF', // this is needed for tags like lucene.internal
             '-Xep:JavaUtilDate:OFF',
             '-Xep:MissingSummary:OFF',
diff --git a/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java b/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java
index 93b1f3e2fd5..ae096b7cdc1 100644
--- a/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java
+++ b/solr/core/src/java/org/apache/solr/search/DocSetBuilder.java
@@ -132,7 +132,7 @@ public final class DocSetBuilder {
 
   public void grow(int numDocs) {
     if (bitSet == null) {
-      final long newLength = pos + numDocs;
+      final long newLength = (long) pos + numDocs;
       if (newLength < threshold) {
         growBuffer((int) newLength);
       } else {
diff --git a/solr/core/src/java/org/apache/solr/search/PointMerger.java b/solr/core/src/java/org/apache/solr/search/PointMerger.java
index 253d466be8d..cb5c76fc2ea 100644
--- a/solr/core/src/java/org/apache/solr/search/PointMerger.java
+++ b/solr/core/src/java/org/apache/solr/search/PointMerger.java
@@ -65,9 +65,8 @@ public class PointMerger {
       if (readers.isEmpty()) {
         return;
       }
-      long ndocs =
-          readers.get(readers.size() - 1).docBase
-              + readers.get(readers.size() - 1).reader().maxDoc();
+      LeafReaderContext leafReaderContext = readers.get(readers.size() - 1);
+      long ndocs = (long) leafReaderContext.docBase + leafReaderContext.reader().maxDoc();
       for (LeafReaderContext ctx : readers) {
         PointValues pv = ctx.reader().getPointValues(field.getName());
         if (pv == null) continue;
diff --git a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
index f3af3df751f..53e1f2a2f67 100644
--- a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
+++ b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
@@ -750,7 +750,7 @@ public class SortedIntDocSet extends DocSet {
 
       @Override
       public long cost() {
-        return limitIdx - startIdx;
+        return (long) limitIdx - startIdx;
       }
     };
   }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java b/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java
index 41d7f2a938e..5ddd4705116 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java
@@ -89,7 +89,7 @@ public class UnInvertedField extends DocTermOrds {
     int termNum;
 
     long memSize() {
-      return 8
+      return 8L
           + // obj header
           8
           + 8
diff --git a/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java b/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
index 8fd64b63c72..d06b84c0d7a 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/DocTermOrds.java
@@ -603,7 +603,7 @@ public class DocTermOrds implements Accountable {
   private final class OrdWrappedTermsEnum extends BaseTermsEnum {
     private final TermsEnum termsEnum;
     private BytesRef term;
-    private long ord = -indexInterval - 1; // force "real" seek
+    private long ord = -indexInterval - 1L; // force "real" seek
 
     public OrdWrappedTermsEnum(LeafReader reader) throws IOException {
       assert indexedTermsArray != null;
@@ -667,7 +667,7 @@ public class DocTermOrds implements Accountable {
         // we hit the term exactly... lucky us!
         TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(target);
         assert seekStatus == TermsEnum.SeekStatus.FOUND;
-        ord = startIdx << indexIntervalBits;
+        ord = (long) startIdx << indexIntervalBits;
         setTerm();
         assert term != null;
         return SeekStatus.FOUND;
@@ -696,7 +696,7 @@ public class DocTermOrds implements Accountable {
         // seek to the right block
         TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(indexedTermsArray[startIdx]);
         assert seekStatus == TermsEnum.SeekStatus.FOUND;
-        ord = startIdx << indexIntervalBits;
+        ord = (long) startIdx << indexIntervalBits;
         setTerm();
         assert term != null; // should be non-null since it's in the index
       }
@@ -728,7 +728,7 @@ public class DocTermOrds implements Accountable {
         final int idx = (int) (targetOrd >>> indexIntervalBits);
         final BytesRef base = indexedTermsArray[idx];
         // System.out.println("  do seek term=" + base.utf8ToString());
-        ord = idx << indexIntervalBits;
+        ord = (long) idx << indexIntervalBits;
         delta = (int) (targetOrd - ord);
         final TermsEnum.SeekStatus seekStatus = termsEnum.seekCeil(base);
         assert seekStatus == TermsEnum.SeekStatus.FOUND;
@@ -952,7 +952,7 @@ public class DocTermOrds implements Accountable {
             assert te.ord() >= 0;
             return -te.ord() - 1;
           default: /* END */
-            return -numTerms() - 1;
+            return -numTerms() - 1L;
         }
       } catch (IOException e) {
         throw new RuntimeException(e);
diff --git a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java
index e57de5b0bbe..1d8cd1bd092 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java
@@ -163,8 +163,8 @@ public class SplitShardTest extends SolrCloudTestCase {
     Slice s1_0 = coll.getSlice("shard1_0");
     Slice s1_1 = coll.getSlice("shard1_1");
     long fuzz = ((long) Integer.MAX_VALUE >> 3) + 1L;
-    long delta0 = s1_0.getRange().max - s1_0.getRange().min;
-    long delta1 = s1_1.getRange().max - s1_1.getRange().min;
+    long delta0 = (long) s1_0.getRange().max - s1_0.getRange().min;
+    long delta1 = (long) s1_1.getRange().max - s1_1.getRange().min;
     long expected0 = (Integer.MAX_VALUE >> 1) + fuzz;
     long expected1 = (Integer.MAX_VALUE >> 1) - fuzz;
     assertEquals("wrong range in s1_0", expected0, delta0);
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
index f495a751386..4cc2adfb73e 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestNumericRangeQuery64.java
@@ -130,7 +130,7 @@ public class TestNumericRangeQuery64 extends SolrTestCase {
       field2.setLongValue(val);
       fieldNoTrie.setLongValue(val);
 
-      val = l - (noDocs / 2);
+      val = (long) l - (noDocs / 2);
       ascfield8.setLongValue(val);
       ascfield6.setLongValue(val);
       ascfield4.setLongValue(val);
diff --git a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
index b82e1136c7d..5a4351b04ba 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
@@ -4702,7 +4702,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
     long inc1;
     for (; ; ) {
       number2 = random().nextInt();
-      inc1 = number2 - number1;
+      inc1 = (long) number2 - number1;
       if (Math.abs(inc1) < (long) Integer.MAX_VALUE) {
         break;
       }
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java b/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java
index e61991ee487..95335a1d805 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestNumericTerms64.java
@@ -100,7 +100,7 @@ public class TestNumericTerms64 extends SolrTestCase {
       field4.setLongValue(val);
       field2.setLongValue(val);
 
-      val = l - (noDocs / 2);
+      val = (long) l - (noDocs / 2);
       writer.addDocument(doc);
     }
     Map<String, Type> map = new HashMap<>();
diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java b/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java
index 50993bd1600..9137ad3cd62 100644
--- a/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java
+++ b/solr/core/src/test/org/apache/solr/uninverting/TestUninvertingReader.java
@@ -244,7 +244,7 @@ public class TestUninvertingReader extends SolrTestCase {
     final int NUM_DOCS = TestUtil.nextInt(random(), 200, 1500);
     final int MIN = TestUtil.nextInt(random(), 10, 100);
     final int MAX = MIN + TestUtil.nextInt(random(), 10, 100);
-    final long EXPECTED_VALSET_SIZE = 1 + MAX - MIN;
+    final long EXPECTED_VALSET_SIZE = 1L + MAX - MIN;
 
     { // (at least) one doc should have every value, so that at least one segment has every value
       final Document doc = new Document();
diff --git a/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java b/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java
index 3081a682b95..8a2a3d82af7 100644
--- a/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java
+++ b/solr/core/src/test/org/apache/solr/util/hll/ProbabilisticTestUtil.java
@@ -39,7 +39,7 @@ public class ProbabilisticTestUtil {
 
   /** Extracts the HLL register index from a raw value. */
   public static short getRegisterIndex(final long rawValue, final int log2m) {
-    final long mBitsMask = (1 << log2m) - 1;
+    final long mBitsMask = (1L << log2m) - 1;
     final short j = (short) (rawValue & mBitsMask);
     return j;
   }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java
index 4769395a042..0b99df0a402 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/expression/LegacyFunctionTest.java
@@ -39,7 +39,7 @@ public class LegacyFunctionTest extends LegacyAbstractAnalyticsTest {
 
     for (int j = 0; j < NUM_LOOPS; ++j) {
       int i = j % INT + 1;
-      long l = j % LONG + 1;
+      long l = j % LONG + 1L;
       float f = j % FLOAT + 1;
       double d = j % DOUBLE + 1;
       double d0 = j % DOUBLE;
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java
index a86bcee029f..75859bbdd97 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockDirectory.java
@@ -42,7 +42,7 @@ public class BlockDirectory extends FilterDirectory implements ShutdownAwareDire
   public static final long BLOCK_SHIFT = Integer.getInteger("solr.hdfs.blockcache.blockshift", 13);
 
   public static final int BLOCK_SIZE = 1 << BLOCK_SHIFT;
-  public static final long BLOCK_MOD = BLOCK_SIZE - 1;
+  public static final long BLOCK_MOD = BLOCK_SIZE - 1L;
 
   public static long getBlock(long pos) {
     return pos >>> BLOCK_SHIFT;
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
index d4ea63140bb..b14b012280c 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
@@ -37,7 +37,7 @@ public class BlockCacheTest extends SolrTestCase {
     int blockSize = 1024;
 
     int slabSize = blockSize * 4096;
-    long totalMemory = 2 * slabSize;
+    long totalMemory = 2L * slabSize;
 
     BlockCache blockCache = new BlockCache(new Metrics(), true, totalMemory, slabSize, blockSize);
     byte[] buffer = new byte[1024];
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
index de3fef8f11c..f9e0dba9ac0 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
@@ -115,7 +115,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 {
       Metrics metrics = new Metrics();
       int blockSize = 8192;
       int slabSize = blockSize * 16384;
-      long totalMemory = 1 * slabSize;
+      long totalMemory = 1L * slabSize;
       BlockCache blockCache = new BlockCache(metrics, true, totalMemory, slabSize, blockSize);
       BlockDirectoryCache cache =
           new BlockDirectoryCache(blockCache, "/collection1", metrics, true);
diff --git a/solr/solrj/src/java/org/noggit/JSONParser.java b/solr/solrj/src/java/org/noggit/JSONParser.java
index fcd0f483390..82a7b539202 100644
--- a/solr/solrj/src/java/org/noggit/JSONParser.java
+++ b/solr/solrj/src/java/org/noggit/JSONParser.java
@@ -467,7 +467,7 @@ public class JSONParser {
     out.unsafeWrite(firstChar); // unsafe OK since we know output is big enough
     // We build up the number in the negative plane since it's larger (by one) than
     // the positive plane.
-    long v = '0' - firstChar;
+    long v = (long) '0' - firstChar;
     // can't overflow a long in 18 decimal digits (i.e. 17 additional after the first).
     // we also need 22 additional to handle double so we'll handle in 2 separate loops.
     int i;


[solr] 05/12: SOLR-16427: Evaluate and fix errorprone rules - FloatingPointLiteralPrecision

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1f6d2815111f8f9db08f820b65149e3f06d8aac7
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 14:02:16 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - FloatingPointLiteralPrecision
---
 gradle/validation/error-prone.gradle               |  1 -
 .../apache/solr/legacy/TestLegacyNumericUtils.java |  4 +-
 .../ParsingFieldUpdateProcessorsTest.java          |  8 ++--
 .../function/mapping/FillMissingFunctionTest.java  | 20 ++++----
 .../function/mapping/FilterFunctionTest.java       |  2 +-
 .../analytics/function/mapping/IfFunctionTest.java | 22 ++++-----
 .../function/mapping/RemoveFunctionTest.java       | 14 +++---
 .../function/mapping/ReplaceFunctionTest.java      | 20 ++++----
 .../client/solrj/io/stream/MathExpressionTest.java |  4 +-
 .../solrj/io/stream/eval/AddEvaluatorTest.java     | 54 +++++++++++++---------
 10 files changed, 78 insertions(+), 71 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index a3f0054e363..91af1e2fd0f 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -70,7 +70,6 @@ allprojects { prj ->
             '-Xep:CatchFail:OFF', // our code is generally descriptive enough, fix case by case if tests fail
             '-Xep:JUnit4TestNotRun:OFF', // RandomizedRunner finds unannotated test methods no problem
             '-Xep:CatchAndPrintStackTrace:OFF', // TODO: there's a lot of these but they should be easy to address
-            '-Xep:FloatingPointLiteralPrecision:OFF', // TODO: a lot of these in our tests, likely unintentional
             '-Xep:StaticAssignmentInConstructor:OFF', // we assign SolrTestCaseJ4.configString in many tests, difficult to untangle
             '-Xep:ComparableType:OFF', // SolrTestCaseJ4.Doc and Fld are messy
 
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java b/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java
index b05aaf248d4..ede3b8f2b8f 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestLegacyNumericUtils.java
@@ -265,7 +265,7 @@ public class TestLegacyNumericUtils extends SolrTestCase {
         new float[] {
           Float.NEGATIVE_INFINITY,
           -2.3E25f,
-          -1.0E15f,
+          -9.9999999E+14f,
           -1.0f,
           -1.0E-1f,
           -1.0E-2f,
@@ -274,7 +274,7 @@ public class TestLegacyNumericUtils extends SolrTestCase {
           1.0E-2f,
           1.0E-1f,
           1.0f,
-          1.0E15f,
+          9.9999999E+14f,
           2.3E25f,
           Float.POSITIVE_INFINITY,
           Float.NaN
diff --git a/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java b/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
index bbce37c1678..398509f0c04 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
@@ -497,7 +497,7 @@ public class ParsingFieldUpdateProcessorsTest extends UpdateProcessorTestBase {
     IndexSchema schema = h.getCore().getLatestSchema();
     assertNotNull(schema.getFieldOrNull("float1_f")); // should match dynamic field "*_f"
     assertNotNull(schema.getFieldOrNull("float2_f")); // should match dynamic field "*_f"
-    float value = 10898.83491f;
+    float value = 10898.835f;
     String floatString1 = "10898.83491";
     String floatString2 = "10,898.83491";
     SolrInputDocument d =
@@ -522,7 +522,7 @@ public class ParsingFieldUpdateProcessorsTest extends UpdateProcessorTestBase {
     final char groupChar = fr_FR.getGroupingSeparator();
     final char decimalChar = fr_FR.getDecimalSeparator();
 
-    float value = 10898.83491F;
+    float value = 10898.835F;
     String floatString1 = "10898" + decimalChar + "83491";
     String floatString2 = "10" + groupChar + "898" + decimalChar + "83491";
 
@@ -544,7 +544,7 @@ public class ParsingFieldUpdateProcessorsTest extends UpdateProcessorTestBase {
     IndexSchema schema = h.getCore().getLatestSchema();
     assertNotNull(schema.getFieldOrNull("float1_tf")); // should match dynamic field "*_tf"
     assertNotNull(schema.getFieldOrNull("float2_tf")); // should match dynamic field "*_tf"
-    float value = 10898.83491f;
+    float value = 10898.835f;
     String floatString1 = "10898.83491";
     String floatString2 = "10,898.83491";
     SolrInputDocument d =
@@ -571,7 +571,7 @@ public class ParsingFieldUpdateProcessorsTest extends UpdateProcessorTestBase {
     mixedFloats.put(85.0f, "85");
     mixedFloats.put(2894518.0f, "2,894,518");
     mixedFloats.put(2.94423E-9f, 2.94423E-9f); // Float-typed field value
-    mixedFloats.put(48794721.937f, "48,794,721.937");
+    mixedFloats.put(4.879472E+7f, "48,794,721.937");
     SolrInputDocument d =
         processAdd(
             "parse-float-no-run-processor",
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java
index eb0b560b54e..e81c1ed2386 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FillMissingFunctionTest.java
@@ -233,18 +233,18 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
 
     // Value exists
     val.setValue(-21.324F).setExists(true);
-    filler.setValue(23423.423342F).setExists(true);
+    filler.setValue(23423.424F).setExists(true);
     assertEquals(-21.324F, func.getFloat(), .00000001);
     assertTrue(func.exists());
 
     val.setExists(false);
-    filler.setValue(3124123.32F).setExists(true);
-    assertEquals(3124123.32F, func.getFloat(), .00000001);
+    filler.setValue(3124123.2F).setExists(true);
+    assertEquals(3124123.2F, func.getFloat(), .00000001);
     assertTrue(func.exists());
 
-    val.setValue(2345.345543F).setExists(true);
+    val.setValue(2345.3455F).setExists(true);
     filler.setExists(false);
-    assertEquals(2345.345543F, func.getFloat(), .00000001);
+    assertEquals(2345.3455F, func.getFloat(), .00000001);
     assertTrue(func.exists());
   }
 
@@ -554,7 +554,7 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
 
     // Values exist
     val.setValues(323.213F, -9423.5F);
-    filler.setValues(-1234.9478F, -5433.234F, -73843F, 1245144.2342F);
+    filler.setValues(-1234.9478F, -5433.234F, -73843F, 1245144.2F);
     Iterator<Float> values1 = Arrays.asList(323.213F, -9423.5F).iterator();
     func.streamFloats(
         value -> {
@@ -564,8 +564,8 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
     assertFalse(values1.hasNext());
 
     val.setValues();
-    filler.setValues(-312423.2F, 12343.234823F, 23.582F, 2.23F);
-    Iterator<Float> values2 = Arrays.asList(-312423.2F, 12343.234823F, 23.582F, 2.23F).iterator();
+    filler.setValues(-312423.2F, 12343.234F, 23.582F, 2.23F);
+    Iterator<Float> values2 = Arrays.asList(-312423.2F, 12343.234F, 23.582F, 2.23F).iterator();
     func.streamFloats(
         value -> {
           assertTrue(values2.hasNext());
@@ -573,9 +573,9 @@ public class FillMissingFunctionTest extends SolrTestCaseJ4 {
         });
     assertFalse(values2.hasNext());
 
-    val.setValues(1423.23039F, -413543F);
+    val.setValues(1423.2303F, -413543F);
     filler.setValues();
-    Iterator<Float> values3 = Arrays.asList(1423.23039F, -413543F).iterator();
+    Iterator<Float> values3 = Arrays.asList(1423.2303F, -413543F).iterator();
     func.streamFloats(
         value -> {
           assertTrue(values3.hasNext());
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java
index cf272e996cb..1bb79882d93 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/FilterFunctionTest.java
@@ -715,7 +715,7 @@ public class FilterFunctionTest extends SolrTestCaseJ4 {
           fail("There should be no values to stream");
         });
 
-    val.setValues(50.343F, -74.9874F, 2342332342.32F);
+    val.setValues(50.343F, -74.9874F, 2.34233242E+9F);
     filter.setExists(false);
     func.streamFloats(
         value -> {
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java
index 50e970fe74b..9b1a9fd50a6 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/IfFunctionTest.java
@@ -522,7 +522,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
     assertFalse(func.exists());
 
     cond.setValue(false).setExists(true);
-    then.setValue(1234324.454F).setExists(true);
+    then.setValue(1234324.5F).setExists(true);
     els.setExists(false);
     func.getObject();
     assertFalse(func.exists());
@@ -769,7 +769,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
         });
 
     cond.setExists(false);
-    then.setValues(2134.2345F, -234.23F, 20000.0F);
+    then.setValues(2134.2346F, -234.23F, 20000.0F);
     els.setValues(.1111F, -.22222F, .333F);
     func.streamFloats(
         value -> {
@@ -786,7 +786,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
         });
 
     cond.setValue(false).setExists(true);
-    then.setValues(2134.2345F, -234.23F, 20000.0F);
+    then.setValues(2134.2346F, -234.23F, 20000.0F);
     els.setValues();
     func.streamFloats(
         value -> {
@@ -795,9 +795,9 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
 
     // Values exist
     cond.setValue(true).setExists(true);
-    then.setValues(2134.2345F, -234.23F, 20000.0F);
+    then.setValues(2134.2346F, -234.23F, 20000.0F);
     els.setValues(.1111F, -.22222F, .333F);
-    Iterator<Float> values1 = Arrays.asList(2134.2345F, -234.23F, 20000.0F).iterator();
+    Iterator<Float> values1 = Arrays.asList(2134.2346F, -234.23F, 20000.0F).iterator();
     func.streamFloats(
         value -> {
           assertTrue(values1.hasNext());
@@ -806,7 +806,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
     assertFalse(values1.hasNext());
 
     cond.setValue(false).setExists(true);
-    then.setValues(2134.2345F, -234.23F, 20000.0F);
+    then.setValues(2134.2346F, -234.23F, 20000.0F);
     els.setValues(.1111F, -.22222F, .333F);
     Iterator<Float> values2 = Arrays.asList(.1111F, -.22222F, .333F).iterator();
     func.streamFloats(
@@ -1049,7 +1049,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
 
     cond.setExists(false);
     then.setValues(new Date(142341), "abcsdafasd", 1234.1324123);
-    els.setValues(324923.0234F, 123, Boolean.TRUE, "if statement");
+    els.setValues(324923.03F, 123, Boolean.TRUE, "if statement");
     func.streamObjects(
         value -> {
           fail("There should be no values to stream");
@@ -1058,7 +1058,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
     // Result doesn't exist
     cond.setValue(true).setExists(true);
     then.setValues();
-    els.setValues(324923.0234F, 123, Boolean.TRUE, "if statement");
+    els.setValues(324923.03F, 123, Boolean.TRUE, "if statement");
     func.streamObjects(
         value -> {
           fail("There should be no values to stream");
@@ -1075,7 +1075,7 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
     // Values exist
     cond.setValue(true).setExists(true);
     then.setValues(new Date(142341), "abcsdafasd", 1234.1324123);
-    els.setValues(324923.0234F, 123, Boolean.TRUE, "if statement");
+    els.setValues(324923.03F, 123, Boolean.TRUE, "if statement");
     Iterator<Object> values1 =
         Arrays.<Object>asList(new Date(142341), "abcsdafasd", 1234.1324123).iterator();
     func.streamObjects(
@@ -1087,9 +1087,9 @@ public class IfFunctionTest extends SolrTestCaseJ4 {
 
     cond.setValue(false).setExists(true);
     then.setValues(new Date(142341), "abcsdafasd", 1234.1324123);
-    els.setValues(324923.0234F, 123, Boolean.TRUE, "if statement");
+    els.setValues(324923.03F, 123, Boolean.TRUE, "if statement");
     Iterator<Object> values2 =
-        Arrays.<Object>asList(324923.0234F, 123, Boolean.TRUE, "if statement").iterator();
+        Arrays.<Object>asList(324923.03F, 123, Boolean.TRUE, "if statement").iterator();
     func.streamObjects(
         value -> {
           assertTrue(values2.hasNext());
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java
index 85990332cae..3d157caf4eb 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/RemoveFunctionTest.java
@@ -242,24 +242,24 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     assertFalse(func.exists());
 
     val.setExists(false);
-    remover.setValue(3124123.32F).setExists(true);
+    remover.setValue(3124123.2F).setExists(true);
     func.getFloat();
     assertFalse(func.exists());
 
     // Value exists
     val.setValue(-21.324F).setExists(true);
-    remover.setValue(23423.423342F).setExists(true);
+    remover.setValue(23423.424F).setExists(true);
     assertEquals(-21.324F, func.getFloat(), .00000001);
     assertTrue(func.exists());
 
-    val.setValue(84353.452F).setExists(true);
-    remover.setValue(84353.452F).setExists(true);
+    val.setValue(84353.45F).setExists(true);
+    remover.setValue(84353.45F).setExists(true);
     func.getFloat();
     assertFalse(func.exists());
 
-    val.setValue(2345.345543F).setExists(true);
+    val.setValue(2345.3455F).setExists(true);
     remover.setExists(false);
-    assertEquals(2345.345543F, func.getFloat(), .00000001);
+    assertEquals(2345.3455F, func.getFloat(), .00000001);
     assertTrue(func.exists());
   }
 
@@ -659,7 +659,7 @@ public class RemoveFunctionTest extends SolrTestCaseJ4 {
     assertFalse(values2.hasNext());
 
     val.setValues(-1234.9478F, -9423.5F, -1234.9478F, 23423.324F, 942.0F);
-    remover.setValue(23423.5845F).setExists(true);
+    remover.setValue(23423.584F).setExists(true);
     Iterator<Float> values3 =
         Arrays.asList(-1234.9478F, -9423.5F, -1234.9478F, 23423.324F, 942.0F).iterator();
     func.streamFloats(
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java
index 079bdabba08..a6eaa1a1ac0 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/function/mapping/ReplaceFunctionTest.java
@@ -300,7 +300,7 @@ public class ReplaceFunctionTest extends SolrTestCaseJ4 {
     assertFalse(func.exists());
 
     val.setExists(false);
-    comp.setValue(3124123.32F).setExists(true);
+    comp.setValue(3124123.2F).setExists(true);
     fill.setValue(-32473.336F).setExists(true);
     func.getFloat();
     assertFalse(func.exists());
@@ -333,8 +333,8 @@ public class ReplaceFunctionTest extends SolrTestCaseJ4 {
     func.getFloat();
     assertFalse(func.exists());
 
-    fill.setValue(4353434.234F).setExists(true);
-    assertEquals(4353434.234F, func.getFloat(), .0000001);
+    fill.setValue(4353434.0F).setExists(true);
+    assertEquals(4353434.0F, func.getFloat(), .0000001);
     assertTrue(func.exists());
   }
 
@@ -783,18 +783,18 @@ public class ReplaceFunctionTest extends SolrTestCaseJ4 {
 
     val.setValues();
     comp.setValue(-230.32F).setExists(true);
-    fill.setValue(9459.3458F).setExists(true);
+    fill.setValue(9459.346F).setExists(true);
     func.streamFloats(
         value -> {
           fail("There should be no values to stream");
         });
 
     // Comp doesn't exist
-    val.setValues(1423.3F, 423.4323F, -2349.2F, -343.43934F, 423.4323F);
+    val.setValues(1423.3F, 423.4323F, -2349.2F, -343.43933F, 423.4323F);
     comp.setExists(false);
     fill.setValue(234.234F).setExists(true);
     Iterator<Float> values1 =
-        Arrays.asList(1423.3F, 423.4323F, -2349.2F, -343.43934F, 423.4323F).iterator();
+        Arrays.asList(1423.3F, 423.4323F, -2349.2F, -343.43933F, 423.4323F).iterator();
     func.streamFloats(
         value -> {
           assertTrue(values1.hasNext());
@@ -803,10 +803,10 @@ public class ReplaceFunctionTest extends SolrTestCaseJ4 {
     assertFalse(values1.hasNext());
 
     // Values exist
-    val.setValues(1423.3F, 423.4323F, -2349.2F, -343.43934F, 423.4323F);
+    val.setValues(1423.3F, 423.4323F, -2349.2F, -343.43933F, 423.4323F);
     comp.setValue(423.4323F).setExists(true);
     fill.setExists(false);
-    Iterator<Float> values2 = Arrays.asList(1423.3F, -2349.2F, -343.43934F).iterator();
+    Iterator<Float> values2 = Arrays.asList(1423.3F, -2349.2F, -343.43933F).iterator();
     func.streamFloats(
         value -> {
           assertTrue(values2.hasNext());
@@ -814,11 +814,11 @@ public class ReplaceFunctionTest extends SolrTestCaseJ4 {
         });
     assertFalse(values2.hasNext());
 
-    val.setValues(1423.3F, 423.4323F, -2349.2F, -343.43934F, 423.4323F);
+    val.setValues(1423.3F, 423.4323F, -2349.2F, -343.43933F, 423.4323F);
     comp.setValue(423.4323F).setExists(true);
     fill.setValue(-1000F).setExists(true);
     Iterator<Float> values3 =
-        Arrays.asList(1423.3F, -1000F, -2349.2F, -343.43934F, -1000F).iterator();
+        Arrays.asList(1423.3F, -1000F, -2349.2F, -343.43933F, -1000F).iterator();
     func.streamFloats(
         value -> {
           assertTrue(values3.hasNext());
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
index 288f81e9128..12e774f593a 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/MathExpressionTest.java
@@ -2250,7 +2250,7 @@ public class MathExpressionTest extends SolrCloudTestCase {
     @SuppressWarnings({"unchecked"})
     List<Number> array4 = (List<Number>) tuples.get(0).get("c");
     assertEquals(array4.size(), 3);
-    assertEquals(array4.get(0).doubleValue(), 16.666666666666666, 0.0001);
+    assertEquals(array4.get(0).doubleValue(), 16.666666666666664, 0.0001);
     assertEquals(array4.get(1).doubleValue(), 33.33333333333333, 0.00001);
     assertEquals(array4.get(2).doubleValue(), 50, 0.0001);
   }
@@ -3725,7 +3725,7 @@ public class MathExpressionTest extends SolrCloudTestCase {
     Number mean = (Number) tuples.get(0).get("b");
     assertEquals(mean.doubleValue(), 3.3800151591412964, 0.0);
     Number mean1 = (Number) tuples.get(0).get("d");
-    assertEquals(mean1.doubleValue(), 4.3800151591412964, 0.0);
+    assertEquals(mean1.doubleValue(), 4.380015159141297, 0.0);
     @SuppressWarnings({"unchecked"})
     List<Number> vals = (List<Number>) tuples.get(0).get("f");
     assertEquals(vals.size(), 3);
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/AddEvaluatorTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/AddEvaluatorTest.java
index 9804417f4ee..a802e266900 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/AddEvaluatorTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/eval/AddEvaluatorTest.java
@@ -46,21 +46,22 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("a", 1);
     values.put("b", 2);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(3D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(3D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
     values.put("b", 2);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(3.1D, result);
+    assertEquals(3.1D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
     values.put("b", 2.1);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(3.2D, result);
+    assertEquals(3.2D, (Double) result, 0.000000001);
   }
 
   @Test // (expected = NumberFormatException.class)
@@ -129,7 +130,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 3);
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(10D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(10D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -138,7 +140,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(10.1D, result);
+    assertEquals(10.1D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -147,7 +149,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.1);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(10.4D, result);
+    assertEquals(10.4D, (Double) result, 0.000000001);
   }
 
   @Test
@@ -161,7 +163,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 3);
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(10D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(10D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -170,7 +173,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(10.1D, result);
+    assertEquals(10.1D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -179,7 +182,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.1);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(10.4D, result);
+    assertEquals(10.4D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -188,7 +191,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.123456789123456);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(10.423456789123456, result);
+    assertEquals(10.423456789123456D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 123456789123456789L);
@@ -196,7 +199,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 123456789123456789L);
     values.put("d", 123456789123456789L);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(4 * 123456789123456789D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(4 * 123456789123456784D, (Double) result, 0);
   }
 
   @Test
@@ -210,7 +214,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 3);
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(14D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(14D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -219,7 +224,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(14.2D, result);
+    assertEquals(14.2D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -228,7 +233,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.1);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(14.6D, result);
+    assertEquals(14.6D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -237,7 +242,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.123456789123456);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(14.623456789123456, (Double) result, 0.000000001);
+    assertEquals(14.623456789123455D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 123456789123456789L);
@@ -245,7 +250,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 123456789123456789L);
     values.put("d", 123456789123456789L);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(6 * 123456789123456789D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(6 * 123456789123456784D, (Double) result, 0);
 
     values.clear();
     values.put("a", 4.12345678);
@@ -254,7 +260,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.12345678);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(6 * 4.12345678, result);
+    assertEquals(6 * 4.12345678D, (Double) result, 0.000000001);
   }
 
   @Test
@@ -268,7 +274,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 3);
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(10D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(10D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -277,7 +284,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(2.2D, result);
+    assertEquals(2.2D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -286,7 +293,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 4.1);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(2.2D, result);
+    assertEquals(2.2D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 1.1);
@@ -295,7 +302,7 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", 5.223456789123456);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(3.323456789123456, result);
+    assertEquals(3.323456789123456D, (Double) result, 0.000000001);
 
     values.clear();
     values.put("a", 123456789123456789L);
@@ -303,7 +310,8 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("c", 123456789123456789L);
     values.put("d", 123456789123456789L);
     result = evaluator.evaluate(new Tuple(values));
-    assertEquals(4 * 123456789123456789D, result);
+    assertTrue(result instanceof Double);
+    assertEquals(4 * 123456789123456784D, (Double) result, 0);
 
     values.clear();
     values.put("a", -4.12345678);
@@ -312,6 +320,6 @@ public class AddEvaluatorTest extends SolrTestCase {
     values.put("d", -4.12345678);
     result = evaluator.evaluate(new Tuple(values));
     assertTrue(result instanceof Double);
-    assertEquals(6 * -4.12345678, result);
+    assertEquals(6 * -4.12345678D, (Double) result, 0.000000001);
   }
 }


[solr] 04/12: SOLR-16427: Evaluate and fix errorprone rules - BadShiftAmount

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 837516d01163f4348da7ab05e4a0f6dddbe46689
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 13:50:35 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - BadShiftAmount
---
 gradle/validation/error-prone.gradle               |  1 -
 .../src/java/org/apache/solr/util/hll/HLLUtil.java |  1 +
 .../test/org/apache/solr/search/TestDocSet.java    |  1 +
 .../src/java/org/apache/solr/common/util/Hash.java | 78 +++++++++++-----------
 4 files changed, 41 insertions(+), 40 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 0d30d95af0b..a3f0054e363 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -78,7 +78,6 @@ allprojects { prj ->
             '-Xep:AmbiguousMethodReference:OFF',
             '-Xep:ArgumentSelectionDefectChecker:OFF',
             '-Xep:BadImport:OFF', // style preference that we don't want to enforce
-            '-Xep:BadShiftAmount:OFF',
             '-Xep:CanIgnoreReturnValueSuggester:OFF',
             '-Xep:ComplexBooleanConstant:OFF',
             '-Xep:DoubleCheckedLocking:OFF',
diff --git a/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java b/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java
index 3d955f2edc6..33d507be814 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/HLLUtil.java
@@ -30,6 +30,7 @@ final class HLLUtil {
    *
    * @see #pwMaxMask(int)
    */
+  @SuppressWarnings("BadShiftAmount")
   private static final long[] PW_MASK = {
     ~((1L << (((1 << 0) - 1) - 1)) - 1),
     ~((1L << (((1 << 1) - 1) - 1)) - 1),
diff --git a/solr/core/src/test/org/apache/solr/search/TestDocSet.java b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
index 3583ca385a6..d23c022828e 100644
--- a/solr/core/src/test/org/apache/solr/search/TestDocSet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
@@ -60,6 +60,7 @@ public class TestDocSet extends SolrTestCase {
   }
 
   // test the DocSetCollector
+  @SuppressWarnings("BadShiftAmount")
   public void collect(DocSet set, int maxDoc) {
     int smallSetSize = maxDoc >> 64 + 3;
     if (set.size() > 1) {
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/Hash.java b/solr/solrj/src/java/org/apache/solr/common/util/Hash.java
index 79d543c6a07..05e9f291f0d 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/Hash.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/Hash.java
@@ -81,22 +81,22 @@ public class Hash {
       // into real x86 rotate instructions.
       {
         a -= c;
-        a ^= (c << 4) | (c >>> -4);
+        a ^= (c << 4) | (c >>> 28);
         c += b;
         b -= a;
-        b ^= (a << 6) | (a >>> -6);
+        b ^= (a << 6) | (a >>> 26);
         a += c;
         c -= b;
-        c ^= (b << 8) | (b >>> -8);
+        c ^= (b << 8) | (b >>> 24);
         b += a;
         a -= c;
-        a ^= (c << 16) | (c >>> -16);
+        a ^= (c << 16) | (c >>> 16);
         c += b;
         b -= a;
-        b ^= (a << 19) | (a >>> -19);
+        b ^= (a << 19) | (a >>> 13);
         a += c;
         c -= b;
-        c ^= (b << 4) | (b >>> -4);
+        c ^= (b << 4) | (b >>> 28);
         b += a;
       }
 
@@ -114,19 +114,19 @@ public class Hash {
         // final(a,b,c);
         {
           c ^= b;
-          c -= (b << 14) | (b >>> -14);
+          c -= (b << 14) | (b >>> 18);
           a ^= c;
-          a -= (c << 11) | (c >>> -11);
+          a -= (c << 11) | (c >>> 21);
           b ^= a;
-          b -= (a << 25) | (a >>> -25);
+          b -= (a << 25) | (a >>> 7);
           c ^= b;
-          c -= (b << 16) | (b >>> -16);
+          c -= (b << 16) | (b >>> 16);
           a ^= c;
-          a -= (c << 4) | (c >>> -4);
+          a -= (c << 4) | (c >>> 28);
           b ^= a;
-          b -= (a << 14) | (a >>> -14);
+          b -= (a << 14) | (a >>> 18);
           c ^= b;
-          c -= (b << 24) | (b >>> -24);
+          c -= (b << 24) | (b >>> 8);
         }
       case 0:
         break;
@@ -179,22 +179,22 @@ public class Hash {
       // into real x86 rotate instructions.
       {
         a -= c;
-        a ^= (c << 4) | (c >>> -4);
+        a ^= (c << 4) | (c >>> 28);
         c += b;
         b -= a;
-        b ^= (a << 6) | (a >>> -6);
+        b ^= (a << 6) | (a >>> 26);
         a += c;
         c -= b;
-        c ^= (b << 8) | (b >>> -8);
+        c ^= (b << 8) | (b >>> 24);
         b += a;
         a -= c;
-        a ^= (c << 16) | (c >>> -16);
+        a ^= (c << 16) | (c >>> 16);
         c += b;
         b -= a;
-        b ^= (a << 19) | (a >>> -19);
+        b ^= (a << 19) | (a >>> 13);
         a += c;
         c -= b;
-        c ^= (b << 4) | (b >>> -4);
+        c ^= (b << 4) | (b >>> 28);
         b += a;
       }
       mixed = true;
@@ -203,19 +203,19 @@ public class Hash {
     if (!mixed) {
       // final(a,b,c)
       c ^= b;
-      c -= (b << 14) | (b >>> -14);
+      c -= (b << 14) | (b >>> 18);
       a ^= c;
-      a -= (c << 11) | (c >>> -11);
+      a -= (c << 11) | (c >>> 21);
       b ^= a;
-      b -= (a << 25) | (a >>> -25);
+      b -= (a << 25) | (a >>> 7);
       c ^= b;
-      c -= (b << 16) | (b >>> -16);
+      c -= (b << 16) | (b >>> 16);
       a ^= c;
-      a -= (c << 4) | (c >>> -4);
+      a -= (c << 4) | (c >>> 28);
       b ^= a;
-      b -= (a << 14) | (a >>> -14);
+      b -= (a << 14) | (a >>> 18);
       c ^= b;
-      c -= (b << 24) | (b >>> -24);
+      c -= (b << 24) | (b >>> 8);
     }
 
     return c;
@@ -255,22 +255,22 @@ public class Hash {
       // into real x86 rotate instructions.
       {
         a -= c;
-        a ^= (c << 4) | (c >>> -4);
+        a ^= (c << 4) | (c >>> 28);
         c += b;
         b -= a;
-        b ^= (a << 6) | (a >>> -6);
+        b ^= (a << 6) | (a >>> 26);
         a += c;
         c -= b;
-        c ^= (b << 8) | (b >>> -8);
+        c ^= (b << 8) | (b >>> 24);
         b += a;
         a -= c;
-        a ^= (c << 16) | (c >>> -16);
+        a ^= (c << 16) | (c >>> 16);
         c += b;
         b -= a;
-        b ^= (a << 19) | (a >>> -19);
+        b ^= (a << 19) | (a >>> 13);
         a += c;
         c -= b;
-        c ^= (b << 4) | (b >>> -4);
+        c ^= (b << 4) | (b >>> 28);
         b += a;
       }
       mixed = true;
@@ -279,19 +279,19 @@ public class Hash {
     if (!mixed) {
       // final(a,b,c)
       c ^= b;
-      c -= (b << 14) | (b >>> -14);
+      c -= (b << 14) | (b >>> 18);
       a ^= c;
-      a -= (c << 11) | (c >>> -11);
+      a -= (c << 11) | (c >>> 21);
       b ^= a;
-      b -= (a << 25) | (a >>> -25);
+      b -= (a << 25) | (a >>> 7);
       c ^= b;
-      c -= (b << 16) | (b >>> -16);
+      c -= (b << 16) | (b >>> 16);
       a ^= c;
-      a -= (c << 4) | (c >>> -4);
+      a -= (c << 4) | (c >>> 28);
       b ^= a;
-      b -= (a << 14) | (a >>> -14);
+      b -= (a << 14) | (a >>> 18);
       c ^= b;
-      c -= (b << 24) | (b >>> -24);
+      c -= (b << 24) | (b >>> 8);
     }
 
     return c + (((long) b) << 32);


[solr] 02/12: SOLR-16427: Evaluate and fix errorprone rules - EqualsUnsafeCast

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit db8d0e155adf667314d20f24e4963488d7343dcf
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 13:41:34 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - EqualsUnsafeCast
---
 gradle/validation/error-prone.gradle                                  | 1 -
 solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java | 1 +
 solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/HashKey.java | 1 +
 3 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 3f4d437fdd0..f4192b29f61 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -83,7 +83,6 @@ allprojects { prj ->
             '-Xep:ComplexBooleanConstant:OFF',
             '-Xep:DoubleCheckedLocking:OFF',
             '-Xep:EmptyCatch:OFF',
-            '-Xep:EqualsUnsafeCast:OFF',
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java
index 7257e1f6290..05ba7cd7cb8 100644
--- a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java
+++ b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java
@@ -242,6 +242,7 @@ public abstract class TaggerTestCase extends SolrTestCaseJ4 {
 
     @Override
     public boolean equals(Object obj) {
+      if (!(obj instanceof TestTag)) return false;
       TestTag that = (TestTag) obj;
       return new EqualsBuilder()
           .append(this.startOffset, that.startOffset)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/HashKey.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/HashKey.java
index 43ad387c767..a4766ebf477 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/HashKey.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/HashKey.java
@@ -48,6 +48,7 @@ public class HashKey implements Serializable {
 
   @Override
   public boolean equals(Object o) {
+    if (!(o instanceof HashKey)) return false;
     HashKey h = (HashKey) o;
     for (int i = 0; i < parts.length; i++) {
       if (!parts[i].equals(h.parts[i])) {


[solr] 06/12: SOLR-16427: Evaluate and fix errorprone rules - CatchAndPrintStackTrace

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 23f3631e25fca93509d7cc49d2bacb2823430632
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 15:06:53 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - CatchAndPrintStackTrace
---
 gradle/validation/error-prone.gradle                 |  1 -
 .../src/java/org/apache/solr/bench/Docs.java         |  6 +++++-
 .../solr/client/solrj/impl/ConnectionReuseTest.java  |  6 +++++-
 .../ChaosMonkeySafeLeaderWithPullReplicasTest.java   |  3 +--
 .../apache/solr/cloud/ChaosMonkeyShardSplitTest.java |  4 ++--
 .../org/apache/solr/cloud/DeleteReplicaTest.java     |  4 ++--
 .../org/apache/solr/cloud/LeaderElectionTest.java    |  5 ++---
 .../src/test/org/apache/solr/cloud/OverseerTest.java | 14 +++++++-------
 .../test/org/apache/solr/cloud/TestTlogReplica.java  |  3 ++-
 .../solr/cloud/TrollingIndexReaderFactory.java       | 10 +++++++---
 .../test/org/apache/solr/cloud/ZkFailoverTest.java   |  7 ++++++-
 .../test/org/apache/solr/cloud/ZkShardTermsTest.java |  7 ++++++-
 .../collections/TestRequestStatusCollectionAPI.java  | 20 ++++++++++++--------
 .../handler/TestSolrConfigHandlerConcurrent.java     |  2 +-
 .../solr/handler/TestStressIncrementalBackup.java    |  3 ++-
 .../apache/solr/handler/admin/MBeansHandlerTest.java |  8 +++++++-
 .../org/apache/solr/schema/PreAnalyzedFieldTest.java |  6 +++++-
 .../src/test/org/apache/solr/search/TestSolrJ.java   |  9 ++++++---
 .../processor/RoutedAliasUpdateProcessorTest.java    |  7 ++++++-
 .../TimeRoutedAliasUpdateProcessorTest.java          |  2 +-
 .../org/apache/solr/util/OrderedExecutorTest.java    |  3 ++-
 solr/modules/analytics/build.gradle                  |  1 +
 .../legacy/LegacyAbstractAnalyticsTest.java          | 12 ++++++------
 .../apache/solr/hdfs/store/HdfsDirectoryTest.java    |  6 +++++-
 .../solr/hdfs/store/blockcache/BlockCacheTest.java   |  8 ++++++--
 .../hdfs/store/blockcache/BlockDirectoryTest.java    |  6 +++++-
 .../solr/client/solrj/LargeVolumeTestBase.java       |  2 +-
 .../org/apache/solr/client/solrj/StartSolrJetty.java |  7 ++++++-
 .../client/solrj/embedded/SolrExampleJettyTest.java  |  6 +++++-
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java   |  6 +++++-
 .../org/apache/solr/common/params/SolrParamTest.java |  6 +++++-
 .../apache/solr/common/util/TestJavaBinCodec.java    |  6 +++++-
 solr/solrj/src/test/org/noggit/TestJSONParser.java   |  9 ++++++---
 .../cloud/AbstractBasicDistributedZkTestBase.java    |  6 +++---
 .../cloud/AbstractChaosMonkeySafeLeaderTestBase.java |  8 ++++++--
 .../solr/cloud/AbstractFullDistribZkTestBase.java    | 18 ++++--------------
 .../apache/solr/cloud/AbstractSyncSliceTestBase.java |  7 ++++++-
 .../src/java/org/apache/solr/cloud/ChaosMonkey.java  |  8 +++-----
 .../apache/solr/cloud/StoppableIndexingThread.java   | 17 +++++++++--------
 .../org/apache/solr/cloud/StoppableSearchThread.java |  6 ++----
 .../src/java/org/apache/solr/cloud/ZkTestServer.java |  2 +-
 .../collections/AbstractIncrementalBackupTest.java   |  6 +++---
 42 files changed, 180 insertions(+), 103 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 91af1e2fd0f..64c906442ac 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -69,7 +69,6 @@ allprojects { prj ->
             '-Xep:UseCorrectAssertInTests:OFF', // and this is a consequence of the above
             '-Xep:CatchFail:OFF', // our code is generally descriptive enough, fix case by case if tests fail
             '-Xep:JUnit4TestNotRun:OFF', // RandomizedRunner finds unannotated test methods no problem
-            '-Xep:CatchAndPrintStackTrace:OFF', // TODO: there's a lot of these but they should be easy to address
             '-Xep:StaticAssignmentInConstructor:OFF', // we assign SolrTestCaseJ4.configString in many tests, difficult to untangle
             '-Xep:ComparableType:OFF', // SolrTestCaseJ4.Doc and Fld are messy
 
diff --git a/solr/benchmark/src/java/org/apache/solr/bench/Docs.java b/solr/benchmark/src/java/org/apache/solr/bench/Docs.java
index eb96ca3c4e3..39efea9ec2f 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/Docs.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/Docs.java
@@ -18,6 +18,7 @@ package org.apache.solr.bench;
 
 import static org.apache.solr.bench.BaseBenchState.log;
 
+import java.lang.invoke.MethodHandles;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -37,6 +38,8 @@ import org.apache.solr.common.util.SolrNamedThreadFactory;
 import org.apache.solr.common.util.SuppressForbidden;
 import org.quicktheories.core.Gen;
 import org.quicktheories.impl.BenchmarkRandomSource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A tool to generate controlled random data for a benchmark. {@link SolrInputDocument}s are created
@@ -47,6 +50,7 @@ import org.quicktheories.impl.BenchmarkRandomSource;
  * them via {@link #generatedDocsIterator}.
  */
 public class Docs {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private final ThreadLocal<SolrRandomnessSource> random;
   private final Queue<SolrInputDocument> docs = new ConcurrentLinkedQueue<>();
@@ -113,7 +117,7 @@ public class Docs {
               SolrInputDocument doc = Docs.this.inputDocument();
               docs.add(doc);
             } catch (Exception e) {
-              e.printStackTrace();
+              log.error("error adding doc", e);
               executorService.shutdownNow();
               throw new RuntimeException(e);
             }
diff --git a/solr/core/src/test/org/apache/solr/client/solrj/impl/ConnectionReuseTest.java b/solr/core/src/test/org/apache/solr/client/solrj/impl/ConnectionReuseTest.java
index 3faccde0198..837f6015983 100644
--- a/solr/core/src/test/org/apache/solr/client/solrj/impl/ConnectionReuseTest.java
+++ b/solr/core/src/test/org/apache/solr/client/solrj/impl/ConnectionReuseTest.java
@@ -17,6 +17,7 @@
 package org.apache.solr.client.solrj.impl;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.net.URL;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
@@ -44,9 +45,12 @@ import org.apache.solr.update.AddUpdateCommand;
 import org.apache.solr.util.TestInjection;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressSSL
 public class ConnectionReuseTest extends SolrCloudTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private AtomicInteger id = new AtomicInteger();
   private HttpClientContext context = HttpClientContext.create();
@@ -124,7 +128,7 @@ public class ConnectionReuseTest extends SolrCloudTestCase {
           try {
             client.add(c.solrDoc);
           } catch (Exception e) {
-            e.printStackTrace();
+            log.error("error adding doc", e);
           }
           if (!done
               && i > 0
diff --git a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
index 5469fac6ab4..764035dc043 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
@@ -266,8 +266,7 @@ public class ChaosMonkeySafeLeaderWithPullReplicasTest extends AbstractFullDistr
         del("*:*");
         break;
       } catch (SolrServerException | SolrException e) {
-        // cluster may not be up yet
-        e.printStackTrace();
+        log.error("cluster may not be up yet", e);
       }
       Thread.sleep(100);
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
index edbcd5c15fd..8baa2c5880c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
@@ -191,13 +191,13 @@ public class ChaosMonkeyShardSplitTest extends ShardSplitTest {
               overseerClient.close();
               overseerClient = electNewOverseer(zkAddress);
             } catch (Exception e) {
-              // e.printStackTrace();
+              log.error("error killing overseer", e);
             }
           }
           try {
             Thread.sleep(100);
           } catch (Exception e) {
-            // e.printStackTrace();
+            log.error("error during sleep", e);
           }
         }
       } catch (Exception t) {
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
index 60a31677adf..e12f9b836a1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
@@ -394,7 +394,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
                   }
                   Thread.sleep(500);
                 } catch (NullPointerException | SolrException e) {
-                  e.printStackTrace();
+                  log.error("error deleting replica", e);
                   Thread.sleep(500);
                 }
               }
@@ -402,7 +402,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
                 fail("Timeout for waiting replica get deleted");
               }
             } catch (Exception e) {
-              e.printStackTrace();
+              log.error("Failed to delete replica", e);
               fail("Failed to delete replica");
             } finally {
               // avoiding deadlock
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
index 8dd949c410b..4136c8f8a89 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
@@ -537,12 +537,11 @@ public class LeaderElectionTest extends SolrTestCaseJ4 {
                       server.expire(zk.getSessionId());
                     }
                   } catch (Exception e) {
-                    e.printStackTrace();
+                    log.error("error expiring session", e);
                   }
                   Thread.sleep(500);
-
                 } catch (Exception e) {
-
+                  log.error("error expiring session", e);
                 }
               }
             });
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
index aa9503182ee..039890921c1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -1087,13 +1087,13 @@ public class OverseerTest extends SolrTestCaseJ4 {
               overseerClient.close();
               overseerClient = electNewOverseer(zkAddress);
             } catch (Throwable e) {
-              // e.printStackTrace();
+              log.error("error killing overseer", e);
             }
           }
           try {
             Thread.sleep(100);
           } catch (Throwable e) {
-            // e.printStackTrace();
+            log.error("error during sleep", e);
           }
         }
       } catch (Throwable t) {
@@ -1229,7 +1229,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
             q.offer(Utils.toJSON(m));
             break;
           } catch (SolrException | KeeperException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("error updating state", e);
           }
         }
 
@@ -1247,7 +1247,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 getOpenOverseer());
             break;
           } catch (SolrException | KeeperException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("error publishing state", e);
           }
         }
 
@@ -1272,7 +1272,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 getOpenOverseer());
             break;
           } catch (SolrException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("error publishing state", e);
           }
         }
 
@@ -1292,7 +1292,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 getOpenOverseer());
             break;
           } catch (SolrException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("error publishing state", e);
           }
         }
 
@@ -1312,7 +1312,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
                 getOpenOverseer());
             break;
           } catch (SolrException | AlreadyClosedException e) {
-            e.printStackTrace();
+            log.error("error publishing state", e);
           }
         }
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
index 6bf85bd7aaf..84ee46e85ae 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
@@ -679,7 +679,8 @@ public class TestTlogReplica extends SolrCloudTestCase {
             waitingForReplay.release();
             waitingForBufferUpdates.acquire();
           } catch (InterruptedException e) {
-            e.printStackTrace();
+            Thread.currentThread().interrupt();
+            log.error("interrupted", e);
             fail("Test interrupted: " + e.getMessage());
           }
         };
diff --git a/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java b/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java
index 99e8fe674ae..ff2d715f260 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TrollingIndexReaderFactory.java
@@ -18,6 +18,7 @@ package org.apache.solr.cloud;
 
 import java.io.Closeable;
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.lang.management.ManagementFactory;
 import java.util.ArrayList;
 import java.util.Date;
@@ -35,8 +36,11 @@ import org.apache.lucene.store.Directory;
 import org.apache.lucene.tests.util.LuceneTestCase;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.core.StandardIndexReaderFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TrollingIndexReaderFactory extends StandardIndexReaderFactory {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static volatile Trap trap;
   private static final BlockingQueue<List<Object>> lastStacktraces =
@@ -191,8 +195,7 @@ public class TrollingIndexReaderFactory extends StandardIndexReaderFactory {
 
   private static void recordStackTrace(StackTraceElement[] stackTrace) {
     // keep the last n limited traces.
-    // e.printStackTrace();
-    ArrayList<Object> stack = new ArrayList<Object>();
+    ArrayList<Object> stack = new ArrayList<>();
     stack.add(
         "" + (new Date().getTime() - startTime) + " (" + Thread.currentThread().getName() + ")");
     for (int l = 2; l < stackTrace.length && l < keepStackTraceLines; l++) {
@@ -204,7 +207,8 @@ public class TrollingIndexReaderFactory extends StandardIndexReaderFactory {
       try {
         lastStacktraces.poll(100, TimeUnit.MILLISECONDS);
       } catch (InterruptedException e1) {
-        e1.printStackTrace();
+        Thread.currentThread().interrupt();
+        log.error("interrupted", e1);
       }
     }
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
index b295b4f097a..ecdd4f30193 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.solr.cloud;
 
+import java.lang.invoke.MethodHandles;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
@@ -27,8 +28,12 @@ import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.zookeeper.KeeperException;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ZkFailoverTest extends SolrCloudTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private ZkTestServer zkTestServer;
 
   @BeforeClass
@@ -82,7 +87,7 @@ public class ZkFailoverTest extends SolrCloudTestCase {
                 try {
                   runner.start();
                 } catch (Exception e) {
-                  e.printStackTrace();
+                  log.error("error starting runner", e);
                 }
               });
       threads[i].start();
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java
index 6570a4a87bd..ead1a49e6ea 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java
@@ -18,6 +18,7 @@
 package org.apache.solr.cloud;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -35,8 +36,11 @@ import org.apache.solr.common.util.TimeSource;
 import org.apache.solr.util.TimeOut;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ZkShardTermsTest extends SolrCloudTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
   public static void setupCluster() throws Exception {
@@ -223,7 +227,8 @@ public class ZkShardTermsTest extends SolrCloudTestCase {
                       Thread.sleep(random().nextInt(200));
                       zkShardTerms.setTermEqualsToLeader(replica);
                     } catch (InterruptedException e) {
-                      e.printStackTrace();
+                      Thread.currentThread().interrupt();
+                      log.error("interrupted", e);
                     }
                   }
                 }
diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java
index 543d53b9f04..36e1e4e81f6 100644
--- a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestRequestStatusCollectionAPI.java
@@ -17,6 +17,7 @@
 package org.apache.solr.cloud.api.collections;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
 import java.util.Map;
 import org.apache.solr.client.solrj.SolrClient;
@@ -30,8 +31,11 @@ import org.apache.solr.common.params.CommonAdminParams;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public static final int MAX_WAIT_TIMEOUT_SECONDS = 90;
 
@@ -55,7 +59,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
     try {
       sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     // Check for the request to be completed.
@@ -74,7 +78,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
       createResponse = sendStatusRequestWithRetry(params, MAX_WAIT_TIMEOUT_SECONDS);
       message = (String) createResponse.findRecursive("status", "msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     assertEquals("found [1000] in completed tasks", message);
@@ -92,7 +96,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
       status = (NamedList<?>) r.get("status");
       message = (String) status.get("msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     assertEquals("Did not find [9999999] in any tasks queue", message);
@@ -105,7 +109,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
     try {
       sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     // Check for the request to be completed.
@@ -117,7 +121,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
       splitResponse = sendStatusRequestWithRetry(params, MAX_WAIT_TIMEOUT_SECONDS);
       message = (String) splitResponse.findRecursive("status", "msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     assertEquals("found [1001] in completed tasks", message);
@@ -137,7 +141,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
     try {
       sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     params = new ModifiableSolrParams();
@@ -149,7 +153,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
       NamedList<Object> response = sendStatusRequestWithRetry(params, MAX_WAIT_TIMEOUT_SECONDS);
       message = (String) response.findRecursive("status", "msg");
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     assertEquals("found [1002] in failed tasks", message);
@@ -164,7 +168,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
     try {
       r = sendRequest(params);
     } catch (SolrServerException | IOException e) {
-      e.printStackTrace();
+      log.error("error sending request", e);
     }
 
     assertEquals("Task with the same requestid already exists. (1002)", r.get("error"));
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java b/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java
index ff824632b31..91cc9685062 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerConcurrent.java
@@ -74,7 +74,7 @@ public class TestSolrConfigHandlerConcurrent extends AbstractFullDistribZkTestBa
                   try {
                     invokeBulkCall((String) e.getKey(), errs);
                   } catch (Exception e1) {
-                    e1.printStackTrace();
+                    log.error("error invoking bulk call", e1);
                   }
                 });
         threads.add(t);
diff --git a/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java b/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java
index 3b34120953e..58286fec3de 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java
@@ -181,7 +181,8 @@ public class TestStressIncrementalBackup extends SolrCloudTestCase {
         RequestStatusState state = backup.processAndWait(cluster.getSolrClient(), 1000);
         assertEquals(RequestStatusState.COMPLETED, state);
       } catch (InterruptedException e) {
-        e.printStackTrace();
+        Thread.currentThread().interrupt();
+        log.error("interrupted", e);
       }
     } else {
       CollectionAdminResponse rsp = backup.process(cluster.getSolrClient());
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
index b074f84da43..c4fa6c35e2e 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/MBeansHandlerTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.handler.admin;
 
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -33,8 +34,11 @@ import org.apache.solr.metrics.SolrMetricsContext;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MBeansHandlerTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
   public static void beforeClass() throws Exception {
@@ -203,12 +207,14 @@ public class MBeansHandlerTest extends SolrTestCaseJ4 {
                   bean.getSolrMetricsContext().getMetricsSnapshot();
                 } catch (Exception e) {
                   runSnapshots = false;
-                  e.printStackTrace();
+                  log.error("Exception getting metrics snapshot", e);
                   fail("Exception getting metrics snapshot: " + e);
                 }
                 try {
                   Thread.sleep(53);
                 } catch (InterruptedException e) {
+                  Thread.currentThread().interrupt();
+                  log.error("interrupted", e);
                   runSnapshots = false;
                   break;
                 }
diff --git a/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java b/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
index 69d7b19a51b..f7e40cd575b 100644
--- a/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/PreAnalyzedFieldTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.schema;
 
+import java.lang.invoke.MethodHandles;
 import java.util.Collections;
 import java.util.HashMap;
 import org.apache.lucene.analysis.Analyzer;
@@ -26,8 +27,11 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.schema.PreAnalyzedField.PreAnalyzedParser;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class PreAnalyzedFieldTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static final String[] valid = {
     "1 one two three", // simple parsing
@@ -112,7 +116,7 @@ public class PreAnalyzedFieldTest extends SolrTestCaseJ4 {
         // System.out.println(" - toString: '" + sb.toString() + "'");
         assertEquals(validParsed[i], parser.toFormattedString(f));
       } catch (Exception e) {
-        e.printStackTrace();
+        log.error("Should pass: '{}', exception", s, e);
         fail("Should pass: '" + s + "', exception: " + e);
       }
     }
diff --git a/solr/core/src/test/org/apache/solr/search/TestSolrJ.java b/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
index 398329ea641..c131f075813 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
@@ -17,6 +17,7 @@
 package org.apache.solr.search;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -27,8 +28,11 @@ import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.util.RTimer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestSolrJ extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public void testSolrJ() {
     // docs, producers, connections, sleep_time
@@ -76,8 +80,7 @@ public class TestSolrJ extends SolrTestCaseJ4 {
               try {
                 indexDocs(base, docsPerThread, maxSleep);
               } catch (Exception e) {
-                System.out.println("###############################CAUGHT EXCEPTION");
-                e.printStackTrace();
+                log.error("###############################CAUGHT EXCEPTION", e);
                 ex = e;
               }
             }
@@ -154,7 +157,7 @@ public class TestSolrJ extends SolrTestCaseJ4 {
           Thread.sleep(sleep);
         } catch (InterruptedException e) {
           Thread.currentThread().interrupt();
-          e.printStackTrace();
+          log.error("interrupted", e);
           throw new RuntimeException(e);
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java
index 6f3f08efb48..3e6e328e9fe 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/RoutedAliasUpdateProcessorTest.java
@@ -20,6 +20,7 @@ package org.apache.solr.update.processor;
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -59,11 +60,14 @@ import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.update.UpdateCommand;
 import org.junit.Ignore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix(
     bugUrl = "https://issues.apache.org/jira/browse/SOLR-13696")
 @Ignore // don't try to run abstract base class
 public abstract class RoutedAliasUpdateProcessorTest extends SolrCloudTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static final String intField = "integer_i";
 
@@ -267,7 +271,8 @@ public abstract class RoutedAliasUpdateProcessorTest extends SolrCloudTestCase {
         try {
           Thread.sleep(500);
         } catch (InterruptedException e) {
-          e.printStackTrace();
+          Thread.currentThread().interrupt();
+          log.error("interrupted", e);
           fail(e.getMessage());
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
index 06985502b97..32fb14dbf20 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/TimeRoutedAliasUpdateProcessorTest.java
@@ -807,7 +807,7 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
       try {
         solrClient.query(col, params("q", "*:*", "rows", "10"));
       } catch (SolrException e) {
-        e.printStackTrace();
+        log.error("Unable to query ", e);
         fail("Unable to query " + col);
       }
     }
diff --git a/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java b/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java
index f3731645856..4b49baa6e01 100644
--- a/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java
+++ b/solr/core/src/test/org/apache/solr/util/OrderedExecutorTest.java
@@ -247,7 +247,8 @@ public class OrderedExecutorTest extends SolrTestCase {
               isRunning.countDown();
               blockingLatch.await();
             } catch (InterruptedException e) {
-              e.printStackTrace();
+              Thread.currentThread().interrupt();
+              log.error("interrupted", e);
             }
           });
 
diff --git a/solr/modules/analytics/build.gradle b/solr/modules/analytics/build.gradle
index ffcbbb478a1..8289a94b9fe 100644
--- a/solr/modules/analytics/build.gradle
+++ b/solr/modules/analytics/build.gradle
@@ -33,4 +33,5 @@ dependencies {
   testImplementation project(':solr:test-framework')
   testImplementation 'com.carrotsearch.randomizedtesting:randomizedtesting-runner'
   testImplementation 'junit:junit'
+  testImplementation 'org.slf4j:slf4j-api'
 }
diff --git a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java
index 2b90e139e31..5a75adc982b 100644
--- a/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java
+++ b/solr/modules/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java
@@ -21,6 +21,7 @@ import java.io.ByteArrayInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -41,11 +42,14 @@ import org.apache.solr.analytics.util.OrdinalCalculator;
 import org.apache.solr.request.SolrQueryRequest;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
 public class LegacyAbstractAnalyticsTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   protected static final String[] BASEPARMS =
       new String[] {"q", "*:*", "indent", "true", "olap", "true", "rows", "0"};
@@ -140,12 +144,8 @@ public class LegacyAbstractAnalyticsTest extends SolrTestCaseJ4 {
           return val;
       }
     } catch (Exception e) {
-      e.printStackTrace();
-      fail(
-          "Caught exception in getStatResult, xPath = "
-              + sb.toString()
-              + " \nraw data: "
-              + rawResponse);
+      log.error("Caught exception in getStatResult", e);
+      fail("Caught exception in getStatResult, xPath = " + sb + " \nraw data: " + rawResponse);
     }
     fail("Unknown type used in getStatResult");
     return null; // Really can't get here, but the compiler thinks we can!
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/HdfsDirectoryTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/HdfsDirectoryTest.java
index 780d4c566e4..0a0b9aad759 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/HdfsDirectoryTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/HdfsDirectoryTest.java
@@ -19,6 +19,7 @@ package org.apache.solr.hdfs.store;
 import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
 import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.nio.file.FileAlreadyExistsException;
 import java.util.HashSet;
 import java.util.Random;
@@ -41,6 +42,8 @@ import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @ThreadLeakFilters(
     defaultFilters = true,
@@ -52,6 +55,7 @@ import org.junit.Test;
 @ThreadLeakLingering(
     linger = 1000) // Wait at least 1 second for Netty GlobalEventExecutor to shutdown
 public class HdfsDirectoryTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static final int MAX_NUMBER_OF_WRITES = 10000;
   private static final int MIN_FILE_SIZE = 100;
@@ -190,7 +194,7 @@ public class HdfsDirectoryTest extends SolrTestCaseJ4 {
         fsDir.close();
       }
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("Test failed on pass [{}]", i, e);
       fail("Test failed on pass [" + i + "]");
     }
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
index 248e5666887..d4ea63140bb 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockCacheTest.java
@@ -19,13 +19,17 @@ package org.apache.solr.hdfs.store.blockcache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import com.github.benmanes.caffeine.cache.RemovalCause;
 import com.github.benmanes.caffeine.cache.RemovalListener;
+import java.lang.invoke.MethodHandles;
 import java.util.Random;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import org.apache.solr.SolrTestCase;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class BlockCacheTest extends SolrTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Test
   public void testBlockCache() {
@@ -158,7 +162,7 @@ public class BlockCacheTest extends SolrTestCase {
 
               } catch (Throwable e) {
                 failed.set(true);
-                e.printStackTrace();
+                log.error("failure", e);
               }
             }
 
@@ -321,7 +325,7 @@ public class BlockCacheTest extends SolrTestCase {
                 test(readsPerThread);
               } catch (Throwable e) {
                 failed.set(true);
-                e.printStackTrace();
+                log.error("failure", e);
               }
             }
 
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
index 6c2db998113..de3fef8f11c 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/store/blockcache/BlockDirectoryTest.java
@@ -19,6 +19,7 @@ package org.apache.solr.hdfs.store.blockcache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import java.io.File;
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.Map;
 import java.util.Random;
 import org.apache.lucene.store.Directory;
@@ -32,8 +33,11 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class BlockDirectoryTest extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static class MapperCache implements Cache {
     public Map<String, byte[]> map =
@@ -172,7 +176,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 {
         assertInputsEquals(name, fsDir, directory);
       }
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("Test failed on pass [{}]", i, e);
       fail("Test failed on pass [" + i + "]");
     }
     long t2 = System.nanoTime();
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java
index 9edddebacec..748353b28f0 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/LargeVolumeTestBase.java
@@ -124,7 +124,7 @@ public abstract class LargeVolumeTestBase extends EmbeddedSolrServerTestBase {
         }
 
       } catch (Exception e) {
-        e.printStackTrace();
+        log.error("{} failed", getName(), e);
         fail(getName() + "---" + e.getMessage());
       }
     }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java b/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
index 4e48d0f7e15..ad308589d34 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/StartSolrJetty.java
@@ -16,16 +16,21 @@
  */
 package org.apache.solr.client.solrj;
 
+import java.lang.invoke.MethodHandles;
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.HttpConnectionFactory;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.webapp.WebAppContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @since solr 1.3
  */
 public class StartSolrJetty {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   public static void main(String[] args) {
     // System.setProperty("solr.solr.home", "../../../example/solr");
 
@@ -60,7 +65,7 @@ public class StartSolrJetty {
       server.stop();
       server.join();
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("failed to start", e);
       System.exit(100);
     }
   }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
index 611f756ab3d..57a026546f6 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/SolrExampleJettyTest.java
@@ -21,6 +21,7 @@ import static org.apache.solr.common.util.Utils.fromJSONString;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -46,6 +47,8 @@ import org.apache.solr.common.util.NamedList;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * TODO? perhaps use: http://docs.codehaus.org/display/JETTY/ServletTester rather then open a real
@@ -53,6 +56,7 @@ import org.junit.Test;
  */
 @SuppressSSL(bugUrl = "https://issues.apache.org/jira/browse/SOLR-5776")
 public class SolrExampleJettyTest extends SolrExampleTests {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
   public static void beforeTest() throws Exception {
@@ -158,7 +162,7 @@ public class SolrExampleJettyTest extends SolrExampleTests {
             try {
               IOUtils.skip(body, 1024 * 1000);
             } catch (IOException e) {
-              e.printStackTrace();
+              log.error("error skipping body", e);
             }
             return rsp.getResponse();
           }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
index 23354a6b870..67d265568c2 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
@@ -19,6 +19,7 @@ package org.apache.solr.client.solrj.impl;
 import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
@@ -43,8 +44,11 @@ import org.apache.solr.common.util.SolrNamedThreadFactory;
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ConcurrentUpdateSolrClientTest extends SolrJettyTestBase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   /** Mock endpoint where the CUSS being tested in this class sends requests. */
   public static class TestServlet extends HttpServlet
@@ -320,7 +324,7 @@ public class ConcurrentUpdateSolrClientTest extends SolrJettyTestBase {
           if (this.collection == null) cuss.request(req);
           else cuss.request(req, this.collection);
         } catch (Throwable t) {
-          t.printStackTrace();
+          log.error("error making request", t);
         }
       }
     }
diff --git a/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java b/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
index 9d8e332b8b5..6ae0e3edd4f 100644
--- a/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.common.params;
 
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -23,9 +24,12 @@ import java.util.List;
 import java.util.Map;
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.common.SolrException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /** */
 public class SolrParamTest extends SolrTestCase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   public void testParamIterators() {
 
@@ -301,7 +305,7 @@ public class SolrParamTest extends SolrTestCase {
     } catch (SolrException sx) {
       return sx.code();
     } catch (Exception ex) {
-      ex.printStackTrace();
+      log.error("error running", ex);
       return 500;
     }
     return 200;
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java b/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java
index 545552d40f4..9ce1b6a2f14 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/TestJavaBinCodec.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -42,8 +43,11 @@ import org.apache.solr.util.ConcurrentLRUCache;
 import org.apache.solr.util.RTimer;
 import org.junit.Test;
 import org.noggit.CharArr;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestJavaBinCodec extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   private static final String SOLRJ_JAVABIN_BACKCOMPAT_BIN = "/solrj/javabin_backcompat.bin";
   private static final String BIN_FILE_LOCATION =
@@ -627,7 +631,7 @@ public class TestJavaBinCodec extends SolrTestCaseJ4 {
             try {
               doDecode(buffers, iter, stringCache);
             } catch (IOException e) {
-              e.printStackTrace();
+              log.error("exception decoding", e);
             }
           });
     }
diff --git a/solr/solrj/src/test/org/noggit/TestJSONParser.java b/solr/solrj/src/test/org/noggit/TestJSONParser.java
index e718e90e361..3a6d475256a 100644
--- a/solr/solrj/src/test/org/noggit/TestJSONParser.java
+++ b/solr/solrj/src/test/org/noggit/TestJSONParser.java
@@ -19,10 +19,14 @@ package org.noggit;
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.lang.invoke.MethodHandles;
 import org.apache.solr.SolrTestCaseJ4;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestJSONParser extends SolrTestCaseJ4 {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   // these are to aid in debugging if an unexpected error occurs
   static int parserType;
@@ -277,12 +281,11 @@ public class TestJSONParser extends SolrTestCaseJ4 {
         }
       } catch (IOException ex) {
         // shouldn't happen
-        System.out.println(ret); // use ret
+        log.error(String.valueOf(ret)); // use ret
       } catch (JSONParser.ParseException ex) {
         // OK
       } catch (Throwable ex) {
-        ex.printStackTrace();
-        System.out.println(lastParser());
+        log.error(lastParser(), ex);
         throw new RuntimeException(ex);
       }
     }
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
index eb5ace81685..e384672c834 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
@@ -1562,7 +1562,7 @@ public abstract class AbstractBasicDistributedZkTestBase extends AbstractFullDis
             }
             client.request(createCmd);
           } catch (Exception e) {
-            e.printStackTrace();
+            log.error("error creating core", e);
             // fail
           }
           return null;
@@ -1669,7 +1669,7 @@ public abstract class AbstractBasicDistributedZkTestBase extends AbstractFullDis
               .process(cloudClient)
               .getStatus());
     } catch (Exception e) {
-      e.printStackTrace();
+      log.error("error creating collection", e);
       // fails
     }
     final List<SolrClient> collectionClients = new ArrayList<>();
@@ -1688,7 +1688,7 @@ public abstract class AbstractBasicDistributedZkTestBase extends AbstractFullDis
                       .process(cloudClient)
                       .isSuccess());
             } catch (Exception e) {
-              e.printStackTrace();
+              log.error("error adding replica", e);
               // fails
             }
             return null;
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractChaosMonkeySafeLeaderTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractChaosMonkeySafeLeaderTestBase.java
index 981c5c717f0..ab765d32699 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractChaosMonkeySafeLeaderTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractChaosMonkeySafeLeaderTestBase.java
@@ -17,6 +17,7 @@
 
 package org.apache.solr.cloud;
 
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
@@ -28,9 +29,13 @@ import org.apache.solr.common.SolrInputDocument;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @LuceneTestCase.Nightly
 public abstract class AbstractChaosMonkeySafeLeaderTestBase extends AbstractFullDistribZkTestBase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private static final Integer RUN_LENGTH =
       Integer.parseInt(System.getProperty("solr.tests.cloud.cm.runlength", "-1"));
 
@@ -209,8 +214,7 @@ public abstract class AbstractChaosMonkeySafeLeaderTestBase extends AbstractFull
         del("*:*");
         break;
       } catch (SolrServerException e) {
-        // cluster may not be up yet
-        e.printStackTrace();
+        log.error("cluster may not be up yet", e);
       }
       Thread.sleep(100);
     }
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
index 43f8376fac7..4a3c47474eb 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
@@ -495,11 +495,8 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
                   SolrClient client = createNewSolrClient(j.getLocalPort());
                   clients.add(client);
 
-                } catch (IOException e) {
-                  e.printStackTrace();
-                  throw new RuntimeException(e);
                 } catch (Exception e) {
-                  e.printStackTrace();
+                  log.error("error creating jetty", e);
                   throw new RuntimeException(e);
                 }
               });
@@ -537,11 +534,8 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
                   coreClients.add(createNewSolrClient(coreName, j.getLocalPort()));
                   SolrClient client = createNewSolrClient(j.getLocalPort());
                   clients.add(client);
-                } catch (IOException e) {
-                  e.printStackTrace();
-                  throw new RuntimeException(e);
                 } catch (Exception e) {
-                  e.printStackTrace();
+                  log.error("error creating jetty", e);
                   throw new RuntimeException(e);
                 }
               });
@@ -577,11 +571,8 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
                 coreClients.add(createNewSolrClient(coreName, j.getLocalPort()));
                 SolrClient client = createNewSolrClient(j.getLocalPort());
                 clients.add(client);
-              } catch (IOException e) {
-                e.printStackTrace();
-                throw new RuntimeException(e);
               } catch (Exception e) {
-                e.printStackTrace();
+                log.error("error creating jetty", e);
                 throw new RuntimeException(e);
               }
             });
@@ -1925,8 +1916,7 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
       try {
         commit();
       } catch (Throwable t) {
-        t.printStackTrace();
-        // we don't care if this commit fails on some nodes
+        log.error("we don't care if this commit fails on some nodes", t);
       }
 
       updateMappingsFromZk(jettys, clients);
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractSyncSliceTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractSyncSliceTestBase.java
index 1b00e68b396..6efa386ff38 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractSyncSliceTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractSyncSliceTestBase.java
@@ -17,6 +17,7 @@
 package org.apache.solr.cloud;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -38,10 +39,14 @@ import org.apache.solr.common.params.CollectionParams.CollectionAction;
 import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.util.LogLevel;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /** Test sync phase that occurs when Leader goes down and a new Leader is elected. */
 @LogLevel("org.apache.solr.update.processor.DistributedZkUpdateProcessor=WARN")
 public abstract class AbstractSyncSliceTestBase extends AbstractFullDistribZkTestBase {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private boolean success = false;
 
   @Override
@@ -236,7 +241,7 @@ public abstract class AbstractSyncSliceTestBase extends AbstractFullDistribZkTes
     try {
       commit();
     } catch (Throwable t) {
-      t.printStackTrace();
+      log.error("commit error", t);
     }
     if (shardFailMessage == null) {
       // try again
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java b/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
index e0f2e6d1fd1..2a5e91115eb 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/ChaosMonkey.java
@@ -535,16 +535,14 @@ public class ChaosMonkey {
             () -> {
               while (!stop) {
                 try {
-
                   Thread.sleep(chaosRandom.nextInt(roundPauseUpperLimit));
 
                   causeSomeChaos();
-
                 } catch (InterruptedException e) {
-                  //
+                  Thread.currentThread().interrupt();
+                  log.error("interrupted", e);
                 } catch (Exception e) {
-                  // TODO Auto-generated catch block
-                  e.printStackTrace();
+                  log.error("error causing some chaos", e);
                 }
               }
               monkeyLog("finished");
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/StoppableIndexingThread.java b/solr/test-framework/src/java/org/apache/solr/cloud/StoppableIndexingThread.java
index 3b100cf1245..355f6e38c2f 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/StoppableIndexingThread.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/StoppableIndexingThread.java
@@ -17,6 +17,7 @@
 package org.apache.solr.cloud;
 
 import java.io.IOException;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -25,8 +26,12 @@ import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.common.SolrInputDocument;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class StoppableIndexingThread extends AbstractFullDistribZkTestBase.StoppableThread {
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   static String t1 = "a_t";
   static String i1 = "a_i";
   private volatile boolean stop = false;
@@ -99,11 +104,9 @@ public class StoppableIndexingThread extends AbstractFullDistribZkTestBase.Stopp
 
           cloudClient.deleteById(deleteId);
         } catch (Exception e) {
-          System.err.println("REQUEST FAILED for id=" + deleteId);
-          e.printStackTrace();
+          log.error("REQUEST FAILED for id={}", deleteId, e);
           if (e instanceof SolrServerException) {
-            System.err.println("ROOT CAUSE for id=" + deleteId);
-            ((SolrServerException) e).getRootCause().printStackTrace();
+            log.error("ROOT CAUSE for id={}", deleteId, ((SolrServerException) e).getRootCause());
           }
           deleteFails.add(deleteId);
         }
@@ -123,11 +126,9 @@ public class StoppableIndexingThread extends AbstractFullDistribZkTestBase.Stopp
         }
       } catch (Exception e) {
         addFailed = true;
-        System.err.println("REQUEST FAILED for id=" + id);
-        e.printStackTrace();
+        log.error("REQUEST FAILED for id={}", id, e);
         if (e instanceof SolrServerException) {
-          System.err.println("ROOT CAUSE for id=" + id);
-          ((SolrServerException) e).getRootCause().printStackTrace();
+          log.error("ROOT CAUSE for id={}", id, ((SolrServerException) e).getRootCause());
         }
         addFails.add(id);
       }
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java b/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java
index ca0d40f8065..972b56085f9 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/StoppableSearchThread.java
@@ -51,11 +51,9 @@ class StoppableSearchThread extends AbstractFullDistribZkTestBase.StoppableThrea
         // to come to the aid of their country.
         cloudClient.query(new SolrQuery(QUERIES[random.nextInt(QUERIES.length)]));
       } catch (Exception e) {
-        System.err.println("QUERY REQUEST FAILED:");
-        e.printStackTrace();
+        log.error("QUERY REQUEST FAILED:", e);
         if (e instanceof SolrServerException) {
-          System.err.println("ROOT CAUSE:");
-          ((SolrServerException) e).getRootCause().printStackTrace();
+          log.error("ROOT CAUSE:", ((SolrServerException) e).getRootCause());
         }
         queryFails.incrementAndGet();
       }
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java b/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java
index a83b95178ba..9bd2fd73ccf 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java
@@ -487,7 +487,7 @@ public class ZkTestServer {
     try (SolrZkClient client = new SolrZkClient(getZkHost(), 10000)) {
       client.makePath(path, null, CreateMode.PERSISTENT, null, false, true, 0);
     } catch (InterruptedException | KeeperException e) {
-      e.printStackTrace();
+      log.error("Error checking path {}", path, e);
       throw new IOException("Error checking path " + path, SolrZkClient.checkInterrupted(e));
     }
   }
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
index acd101985cd..c719d4988bf 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/api/collections/AbstractIncrementalBackupTest.java
@@ -344,8 +344,7 @@ public abstract class AbstractIncrementalBackupTest extends SolrCloudTestCase {
           fail("This backup should be failed");
         }
       } catch (Exception e) {
-        // expected
-        e.printStackTrace();
+        log.error("expected", e);
       }
     }
   }
@@ -507,7 +506,8 @@ public abstract class AbstractIncrementalBackupTest extends SolrCloudTestCase {
           RequestStatusState state = backup.processAndWait(cluster.getSolrClient(), 1000);
           assertEquals(RequestStatusState.COMPLETED, state);
         } catch (InterruptedException e) {
-          e.printStackTrace();
+          Thread.currentThread().interrupt();
+          log.error("interrupted", e);
         }
         numBackup++;
       } else {


[solr] 12/12: SOLR-16427: Evaluate and fix errorprone rules - IdentityBinaryExpression

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit fe43afc0f392effcbab96d80b69986dd6a5c0f0c
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Wed Oct 26 12:24:35 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - IdentityBinaryExpression
---
 gradle/validation/error-prone.gradle                                | 5 ++---
 solr/core/src/java/org/apache/solr/search/facet/FacetModule.java    | 6 +++---
 solr/core/src/java/org/apache/solr/search/stats/LRUStatsCache.java  | 2 +-
 .../java/org/apache/solr/util/circuitbreaker/CPUCircuitBreaker.java | 2 +-
 4 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index e5cf063dc8a..b160b36909c 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -80,13 +80,12 @@ allprojects { prj ->
             '-Xep:EmptyCatch:OFF',
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:IdentityBinaryExpression:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
             '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
             '-Xep:InputStreamSlowMultibyteRead:OFF',
             '-Xep:InvalidBlockTag:OFF', // this is needed for tags like lucene.internal
             '-Xep:JavaUtilDate:OFF',
-            '-Xep:MissingSummary:OFF',
+            '-Xep:MissingSummary:OFF', // style preference that we don't want to enforce
             '-Xep:MixedMutabilityReturnType:OFF',
             '-Xep:MutablePublicArray:OFF', // this should be possible...
             '-Xep:NegativeCharLiteral:OFF',
@@ -106,7 +105,7 @@ allprojects { prj ->
             '-Xep:TypeParameterShadowing:OFF',
             '-Xep:TypeParameterUnusedInFormals:OFF',
             '-Xep:UnicodeEscape:OFF', // can't enable since Lucene/Solr tests use unicode a bunch
-            '-Xep:UnnecessaryParentheses:OFF',
+            '-Xep:UnnecessaryParentheses:OFF', // style preference that we don't want to enforce
             '-Xep:UnusedMethod:OFF',
             '-Xep:UnusedVariable:OFF',
             '-Xep:WaitNotInLoop:OFF',
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java b/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java
index a41d790c038..043230a324b 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java
@@ -409,14 +409,14 @@ public class FacetModule extends SearchComponent {
       if (a < b) return -1;
       if (a > b) return 1;
 
-      if (a != a) { // a==NaN
-        if (b != b) {
+      if (Double.isNaN(a)) {
+        if (Double.isNaN(b)) {
           return 0; // both NaN
         }
         return -1 * direction.getMultiplier(); // asc==-1, so this will put NaN at end of sort
       }
 
-      if (b != b) { // b is NaN so a is greater
+      if (Double.isNaN(b)) { // b is NaN so a is greater
         return 1 * direction.getMultiplier(); // if sorting asc, make a less so NaN is at end
       }
 
diff --git a/solr/core/src/java/org/apache/solr/search/stats/LRUStatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/LRUStatsCache.java
index cb374ab3c7c..0f1d2f14cd7 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/LRUStatsCache.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/LRUStatsCache.java
@@ -129,7 +129,7 @@ public class LRUStatsCache extends ExactStatsCache {
     // force-fetched on next request and cached.
 
     // check for missing stats from previous requests
-    if (!missingColStats.isEmpty() || !missingColStats.isEmpty()) {
+    if (!missingColStats.isEmpty() || !missingTermStats.isEmpty()) {
       // needs to fetch anyway, so get the full query stats + the missing stats for caching
       ShardRequest sreq = super.doRetrieveStatsRequest(rb);
       if (!missingColStats.isEmpty()) {
diff --git a/solr/core/src/java/org/apache/solr/util/circuitbreaker/CPUCircuitBreaker.java b/solr/core/src/java/org/apache/solr/util/circuitbreaker/CPUCircuitBreaker.java
index 26a0e7239d0..70c2fbda507 100644
--- a/solr/core/src/java/org/apache/solr/util/circuitbreaker/CPUCircuitBreaker.java
+++ b/solr/core/src/java/org/apache/solr/util/circuitbreaker/CPUCircuitBreaker.java
@@ -87,7 +87,7 @@ public class CPUCircuitBreaker extends CircuitBreaker {
   @Override
   public String getDebugInfo() {
 
-    if (seenCPUUsage.get() == 0.0 || seenCPUUsage.get() == 0.0) {
+    if (seenCPUUsage.get() == 0.0 || allowedCPUUsage.get() == 0.0) {
       log.warn("CPUCircuitBreaker's monitored values (seenCPUUSage, allowedCPUUsage) not set");
     }
 


[solr] 09/12: SOLR-16427: Evaluate and fix errorprone rules - ObjectsHashCodePrimitive

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 90fb08bb1419de02fad276a1e3bc407e20038768
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 16:56:39 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - ObjectsHashCodePrimitive
---
 gradle/validation/error-prone.gradle                                | 1 -
 .../src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java    | 6 +++---
 .../java/org/apache/solr/search/join/CrossCollectionJoinQuery.java  | 2 +-
 solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java  | 4 ++--
 4 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 175b90f792d..ea0f5b6534e 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -95,7 +95,6 @@ allprojects { prj ->
             '-Xep:NonAtomicVolatileUpdate:OFF',
             '-Xep:NonCanonicalType:OFF',
             '-Xep:ObjectToString:OFF',
-            '-Xep:ObjectsHashCodePrimitive:OFF',
             '-Xep:OperatorPrecedence:OFF',
             '-Xep:ReturnValueIgnored:OFF',
             '-Xep:SameNameButDifferent:OFF',
diff --git a/solr/core/src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java b/solr/core/src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java
index 66c5abe05d6..617dcfa57b4 100644
--- a/solr/core/src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java
@@ -434,13 +434,13 @@ public final class LegacyNumericRangeQuery<T extends Number> extends MultiTermQu
   }
 
   @Override
-  public final int hashCode() {
+  public int hashCode() {
     int hash = super.hashCode();
     hash = 31 * hash + precisionStep;
     hash = 31 * hash + Objects.hashCode(min);
     hash = 31 * hash + Objects.hashCode(max);
-    hash = 31 * hash + Objects.hashCode(minInclusive);
-    hash = 31 * hash + Objects.hashCode(maxInclusive);
+    hash = 31 * hash + Boolean.hashCode(minInclusive);
+    hash = 31 * hash + Boolean.hashCode(maxInclusive);
     return hash;
   }
 
diff --git a/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java b/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java
index c0fb74355df..b0b396cf6cf 100644
--- a/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/join/CrossCollectionJoinQuery.java
@@ -362,7 +362,7 @@ public class CrossCollectionJoinQuery extends Query {
     result = prime * result + Objects.hashCode(collection);
     result = prime * result + Objects.hashCode(fromField);
     result = prime * result + Objects.hashCode(toField);
-    result = prime * result + Objects.hashCode(routedByJoinKey);
+    result = prime * result + Boolean.hashCode(routedByJoinKey);
     result = prime * result + Objects.hashCode(otherParamsString);
     // timestamp and ttl should not be included in hash code
     return result;
diff --git a/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java b/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java
index cd9d052d445..d0bdc326747 100644
--- a/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/join/HashRangeQuery.java
@@ -143,8 +143,8 @@ public class HashRangeQuery extends Query {
     final int prime = 31;
     int result = classHash();
     result = prime * result + Objects.hashCode(field);
-    result = prime * result + Objects.hashCode(lower);
-    result = prime * result + Objects.hashCode(upper);
+    result = prime * result + Integer.hashCode(lower);
+    result = prime * result + Integer.hashCode(upper);
     return result;
   }
 }


[solr] 10/12: SOLR-16427: Evaluate and fix errorprone rules - OperatorPrecedence

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 32e229556daa9d1d528155dc7d1d133eba036153
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 17:33:17 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - OperatorPrecedence
---
 gradle/validation/error-prone.gradle                      |  4 +---
 .../cloud/api/collections/DimensionalRoutedAlias.java     |  2 +-
 .../org/apache/solr/handler/component/FacetComponent.java |  2 +-
 .../src/java/org/apache/solr/query/SolrRangeQuery.java    |  2 +-
 .../java/org/apache/solr/schema/ManagedIndexSchema.java   |  3 ++-
 .../src/java/org/apache/solr/search/FunctionQParser.java  |  2 +-
 .../src/java/org/apache/solr/search/SolrReturnFields.java |  2 +-
 .../org/apache/solr/search/facet/FacetFieldProcessor.java |  2 +-
 .../java/org/apache/solr/search/facet/FacetProcessor.java |  2 +-
 .../solr/search/facet/FacetRequestSortedMerger.java       |  3 +--
 .../java/org/apache/solr/servlet/SolrRequestParsers.java  |  2 +-
 solr/core/src/java/org/apache/solr/util/NumberUtils.java  |  2 +-
 .../core/src/java/org/apache/solr/util/hll/BitVector.java |  4 ++--
 .../org/apache/solr/cloud/TestStressInPlaceUpdates.java   | 15 +++++++++------
 .../handler/component/DistributedTermsComponentTest.java  |  2 +-
 .../src/test/org/apache/solr/schema/DocValuesTest.java    |  8 ++++----
 solr/core/src/test/org/apache/solr/search/TestDocSet.java |  2 +-
 solr/core/src/test/org/apache/solr/search/TestSort.java   |  6 ++++--
 .../org/apache/solr/client/solrj/impl/LBSolrClient.java   |  2 +-
 .../org/apache/solr/common/cloud/CompositeIdRouter.java   |  2 +-
 .../org/apache/solr/common/util/JsonRecordReader.java     |  2 +-
 solr/solrj/src/java/org/noggit/JSONParser.java            |  4 ++--
 .../org/apache/solr/BaseDistributedSearchTestCase.java    |  6 +++---
 .../src/java/org/apache/solr/JSONTestUtil.java            |  4 ++--
 24 files changed, 44 insertions(+), 41 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index ea0f5b6534e..6c505aea73a 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -62,8 +62,6 @@ allprojects { prj ->
 
         options.errorprone.disableWarningsInGeneratedCode = true
         options.errorprone.errorproneArgs = [
-            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
-
             // bug patterns related to our tests
             '-Xep:ExtendingJUnitAssert:OFF', // we inherit from LuceneTestCase which extends Assert
             '-Xep:UseCorrectAssertInTests:OFF', // and this is a consequence of the above
@@ -85,6 +83,7 @@ allprojects { prj ->
             '-Xep:IdentityBinaryExpression:OFF',
             '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
+            '-Xep:InlineMeSuggester:OFF', // We don't use this annotation
             '-Xep:InputStreamSlowMultibyteRead:OFF',
             '-Xep:InvalidBlockTag:OFF', // this is needed for tags like lucene.internal
             '-Xep:JavaUtilDate:OFF',
@@ -95,7 +94,6 @@ allprojects { prj ->
             '-Xep:NonAtomicVolatileUpdate:OFF',
             '-Xep:NonCanonicalType:OFF',
             '-Xep:ObjectToString:OFF',
-            '-Xep:OperatorPrecedence:OFF',
             '-Xep:ReturnValueIgnored:OFF',
             '-Xep:SameNameButDifferent:OFF',
             '-Xep:ShortCircuitBoolean:OFF',
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java
index 62eed0f39be..9d36e1461ec 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java
@@ -332,7 +332,7 @@ public class DimensionalRoutedAlias extends RoutedAlias {
         // dimensions with an implicit order need to start from their initial configuration
         // and count up to maintain order in the alias collection list with respect to that
         // dimension
-        if (matchesAllHigherDims && !ordered || matchesAllHigherDims && matchesAllLowerDims) {
+        if ((matchesAllHigherDims && !ordered) || (matchesAllHigherDims && matchesAllLowerDims)) {
           view.add("" + getSeparatorPrefix(dimensions.get(index)) + split[index + 1]);
         }
       }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java b/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java
index 2db476e2e6c..141389f4e63 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java
@@ -1497,7 +1497,7 @@ public class FacetComponent extends SearchComponent {
 
       // the largest possible missing term is (initialMincount - 1) if we received
       // less than the number requested.
-      if (numRequested < 0 || numRequested != 0 && numReceived < numRequested) {
+      if (numRequested < 0 || (numRequested != 0 && numReceived < numRequested)) {
         last = Math.max(0, initialMincount - 1);
       }
 
diff --git a/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java b/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
index 7451e4f7acd..412e88dbf09 100644
--- a/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
@@ -280,7 +280,7 @@ public final class SolrRangeQuery extends ExtendedQueryBase implements DocSetPro
 
       if (upper != null) {
         int cmp = curr.compareTo(upper);
-        if (cmp < 0 || cmp == 0 && includeUpper()) {
+        if (cmp < 0 || (cmp == 0 && includeUpper())) {
           return curr;
         } else {
           curr = null;
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
index 72e0c783e2d..a742dce3990 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@ -378,7 +378,8 @@ public final class ManagedIndexSchema extends IndexSchema {
       try (HttpSolrClient solr = new HttpSolrClient.Builder(coreUrl).build()) {
         // eventually, this loop will get killed by the ExecutorService's timeout
         while (remoteVersion == -1
-            || remoteVersion < expectedZkVersion && !zkController.getCoreContainer().isShutDown()) {
+            || (remoteVersion < expectedZkVersion
+                && !zkController.getCoreContainer().isShutDown())) {
           try {
             HttpSolrClient.HttpUriRequestResponse mrr = solr.httpUriRequest(this);
             NamedList<Object> zkversionResp = mrr.future.get();
diff --git a/solr/core/src/java/org/apache/solr/search/FunctionQParser.java b/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
index 03492cd5324..bce14e20011 100644
--- a/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/FunctionQParser.java
@@ -351,7 +351,7 @@ public class FunctionQParser extends QParser {
     ValueSource valueSource;
 
     int ch = sp.peek();
-    if (ch >= '0' && ch <= '9' || ch == '.' || ch == '+' || ch == '-') {
+    if ((ch >= '0' && ch <= '9') || ch == '.' || ch == '+' || ch == '-') {
       Number num = sp.getNumber();
       if (num instanceof Long) {
         valueSource = new ValueSourceParser.LongConstValueSource(num.longValue());
diff --git a/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
index 0b13e21570a..7d0583ce63a 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
@@ -166,7 +166,7 @@ public class SolrReturnFields extends ReturnFields {
   private void parseFieldList(String[] fl, SolrQueryRequest req) {
     _wantsScore = false;
     _wantsAllFields = false;
-    if (fl == null || fl.length == 0 || fl.length == 1 && fl[0].length() == 0) {
+    if (fl == null || fl.length == 0 || (fl.length == 1 && fl[0].length() == 0)) {
       _wantsAllFields = true;
       return;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java
index f0f867fadfd..528f7a0ba1f 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java
@@ -738,7 +738,7 @@ abstract class FacetFieldProcessor extends FacetProcessor<FacetField> {
   protected void processStats(
       SimpleOrderedMap<Object> bucket, Query bucketQ, DocSet docs, long docCount)
       throws IOException {
-    if (docCount == 0 && !freq.processEmpty || freq.getFacetStats().size() == 0) {
+    if ((docCount == 0 && !freq.processEmpty) || freq.getFacetStats().size() == 0) {
       bucket.add("count", docCount);
       return;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java b/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
index 5ecef816cee..1280071eeb8 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetProcessor.java
@@ -310,7 +310,7 @@ public abstract class FacetProcessor<T extends FacetRequest> {
   protected void processStats(
       SimpleOrderedMap<Object> bucket, Query bucketQ, DocSet docs, long docCount)
       throws IOException {
-    if (docCount == 0 && !freq.processEmpty || freq.getFacetStats().size() == 0) {
+    if ((docCount == 0 && !freq.processEmpty) || freq.getFacetStats().size() == 0) {
       bucket.add("count", docCount);
       return;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetRequestSortedMerger.java b/solr/core/src/java/org/apache/solr/search/facet/FacetRequestSortedMerger.java
index bb7af635fef..07b67bf21da 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetRequestSortedMerger.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetRequestSortedMerger.java
@@ -271,8 +271,7 @@ abstract class FacetRequestSortedMerger<FacetRequestT extends FacetRequestSorted
     for (FacetBucket bucket : bucketList) {
       if (numBucketsToCheck-- <= 0) break;
       // if this bucket is missing,
-      assert thisMissing == false
-          || thisMissing == true && mcontext.getShardFlag(bucket.bucketNumber) == false;
+      assert !thisMissing || !mcontext.getShardFlag(bucket.bucketNumber);
       boolean saw = !thisMissing && mcontext.getShardFlag(bucket.bucketNumber);
       if (!saw && !returnedAllBuckets) {
         // we didn't see the bucket for this shard, and it's possible that the shard has it
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
index 74d29a84969..0a4135226a1 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -841,7 +841,7 @@ public class SolrRequestParsers {
 
         boolean schemaRestPath = false;
         int idx = uri.indexOf("/schema");
-        if (idx >= 0 && uri.endsWith("/schema") || uri.contains("/schema/")) {
+        if ((idx >= 0 && uri.endsWith("/schema")) || uri.contains("/schema/")) {
           schemaRestPath = true;
         }
 
diff --git a/solr/core/src/java/org/apache/solr/util/NumberUtils.java b/solr/core/src/java/org/apache/solr/util/NumberUtils.java
index d33bb07b60b..9dde593b53e 100644
--- a/solr/core/src/java/org/apache/solr/util/NumberUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/NumberUtils.java
@@ -205,6 +205,6 @@ public class NumberUtils {
   public static int bytesToInt(byte[] bytes) {
     if (bytes == null) return 0;
     assert bytes.length == 4;
-    return bytes[0] << 24 | (bytes[1] & 255) << 16 | (bytes[2] & 255) << 8 | bytes[3] & 255;
+    return bytes[0] << 24 | (bytes[1] & 255) << 16 | (bytes[2] & 255) << 8 | (bytes[3] & 255);
   }
 }
diff --git a/solr/core/src/java/org/apache/solr/util/hll/BitVector.java b/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
index 4e85cf4bdcb..0aa08e05c75 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/BitVector.java
@@ -103,7 +103,7 @@ class BitVector implements Cloneable {
       return ((words[firstWordIndex] >>> bitRemainder) & registerMask);
     /* else -- register spans words */
     return (words[firstWordIndex] >>> bitRemainder) /*no need to mask since at top of word*/
-        | (words[secondWordIndex] << (BITS_PER_WORD - bitRemainder)) & registerMask;
+        | ((words[secondWordIndex] << (BITS_PER_WORD - bitRemainder)) & registerMask);
   }
 
   /**
@@ -222,7 +222,7 @@ class BitVector implements Cloneable {
     else /*register spans words*/
       registerValue =
           (words[firstWordIndex] >>> bitRemainder) /*no need to mask since at top of word*/
-              | (words[secondWordIndex] << (BITS_PER_WORD - bitRemainder)) & registerMask;
+              | ((words[secondWordIndex] << (BITS_PER_WORD - bitRemainder)) & registerMask);
 
     // determine which is the larger and update as necessary
     if (value > registerValue) {
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java b/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java
index d16ecacce5a..1cca0d6666e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressInPlaceUpdates.java
@@ -245,8 +245,9 @@ public class TestStressInPlaceUpdates extends AbstractFullDistribZkTestBase {
                           info.version,
                           returnedVersion);
                     } catch (RuntimeException e) {
-                      if (e.getMessage() != null && e.getMessage().contains("version conflict")
-                          || e.getMessage() != null && e.getMessage().contains("Conflict")) {
+                      if (e.getMessage() != null
+                          && (e.getMessage().contains("version conflict")
+                              || e.getMessage().contains("Conflict"))) {
                         // It's okay for a leader to reject a concurrent request
                         log.warn("Conflict during {}, rejected id={}, {}", delType, id, e);
                         returnedVersion = null;
@@ -300,8 +301,9 @@ public class TestStressInPlaceUpdates extends AbstractFullDistribZkTestBase {
                             returnedVersion);
 
                       } catch (RuntimeException e) {
-                        if (e.getMessage() != null && e.getMessage().contains("version conflict")
-                            || e.getMessage() != null && e.getMessage().contains("Conflict")) {
+                        if (e.getMessage() != null
+                            && (e.getMessage().contains("version conflict")
+                                || e.getMessage().contains("Conflict"))) {
                           // It's okay for a leader to reject a concurrent request
                           log.warn("Conflict during full update, rejected id={}, {}", id, e);
                           returnedVersion = null;
@@ -331,8 +333,9 @@ public class TestStressInPlaceUpdates extends AbstractFullDistribZkTestBase {
                             val2,
                             returnedVersion);
                       } catch (RuntimeException e) {
-                        if (e.getMessage() != null && e.getMessage().contains("version conflict")
-                            || e.getMessage() != null && e.getMessage().contains("Conflict")) {
+                        if (e.getMessage() != null
+                            && (e.getMessage().contains("version conflict")
+                                || e.getMessage().contains("Conflict"))) {
                           // It's okay for a leader to reject a concurrent request
                           log.warn("Conflict during partial update, rejected id={}, {}", id, e);
                         } else if (e.getMessage() != null
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java
index d181008e9c1..2cb739107d0 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedTermsComponentTest.java
@@ -186,7 +186,7 @@ public class DistributedTermsComponentTest extends BaseDistributedSearchTestCase
     if (Stream.of(q).noneMatch(s -> s.equals("terms.list"))) {
       // SOLR-9243 doesn't support max/min count
       for (int i = 0; i < q.length; i += 2) {
-        if (q[i].equals("terms.sort") && q[i + 1].equals("index") || rarely()) {
+        if ((q[i].equals("terms.sort") && q[i + 1].equals("index")) || rarely()) {
           List<Object> params = new ArrayList<>(Arrays.asList(q));
           if (usually()) {
             params.add("terms.mincount");
diff --git a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
index f1ce167cbed..05974520dcc 100644
--- a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
@@ -1110,11 +1110,11 @@ public class DocValuesTest extends SolrTestCaseJ4 {
           long minSortable = toSortableLong.get(i).apply(minVal);
           long maxSortable = toSortableLong.get(i).apply(maxVal);
 
-          if ((minInclusive && minSortable <= valSortable
-                  || !minInclusive && minSortable < valSortable
+          if (((minInclusive && minSortable <= valSortable)
+                  || (!minInclusive && minSortable < valSortable)
                   || (min.equals("*") && Objects.equals(val, negativeInfinity[i])))
-              && (maxInclusive && maxSortable >= valSortable
-                  || !maxInclusive && maxSortable > valSortable
+              && ((maxInclusive && maxSortable >= valSortable)
+                  || (!maxInclusive && maxSortable > valSortable)
                   || (max.equals("*") && Objects.equals(val, positiveInfinity[i])))) {
             counter++;
             tests.add("//result/doc[" + counter + "]/str[@name='id'][.=" + (k + 1) + "]");
diff --git a/solr/core/src/test/org/apache/solr/search/TestDocSet.java b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
index d23c022828e..273cadf986f 100644
--- a/solr/core/src/test/org/apache/solr/search/TestDocSet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
@@ -62,7 +62,7 @@ public class TestDocSet extends SolrTestCase {
   // test the DocSetCollector
   @SuppressWarnings("BadShiftAmount")
   public void collect(DocSet set, int maxDoc) {
-    int smallSetSize = maxDoc >> 64 + 3;
+    int smallSetSize = maxDoc >> (64 + 3);
     if (set.size() > 1) {
       if (random().nextBoolean()) {
         smallSetSize = set.size() + random().nextInt(3) - 1; // test the bounds around smallSetSize
diff --git a/solr/core/src/test/org/apache/solr/search/TestSort.java b/solr/core/src/test/org/apache/solr/search/TestSort.java
index 2fc26a5b69f..7bb29329f23 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSort.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSort.java
@@ -314,9 +314,11 @@ public class TestSort extends SolrTestCaseJ4 {
         Sort sort = new Sort(sfields.toArray(new SortField[sfields.size()]));
 
         final String nullRep =
-            luceneSort || sortMissingFirst && !reverse || sortMissingLast && reverse ? "" : "zzz";
+            luceneSort || (sortMissingFirst && !reverse) || (sortMissingLast && reverse)
+                ? ""
+                : "zzz";
         final String nullRep2 =
-            luceneSort2 || sortMissingFirst2 && !reverse2 || sortMissingLast2 && reverse2
+            luceneSort2 || (sortMissingFirst2 && !reverse2) || (sortMissingLast2 && reverse2)
                 ? ""
                 : "zzz";
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java
index d088e0819a7..c85c8061d35 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java
@@ -664,7 +664,7 @@ public abstract class LBSolrClient extends SolrClient {
       }
 
       if (wrapper.standard == false
-          || justFailed != null && justFailed.containsKey(wrapper.getBaseUrl())) continue;
+          || (justFailed != null && justFailed.containsKey(wrapper.getBaseUrl()))) continue;
       try {
         ++numServersTried;
         request.setBasePath(wrapper.baseUrl);
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
index 3cfe43a56c8..dd0b6669195 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/CompositeIdRouter.java
@@ -338,7 +338,7 @@ public class CompositeIdRouter extends HashBasedRouter {
       int upperBound;
 
       if (triLevel) {
-        lowerBound = hashes[0] & masks[0] | hashes[1] & masks[1];
+        lowerBound = (hashes[0] & masks[0]) | (hashes[1] & masks[1]);
         upperBound = lowerBound | masks[2];
       } else {
         lowerBound = hashes[0] & masks[0];
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JsonRecordReader.java b/solr/solrj/src/java/org/apache/solr/common/util/JsonRecordReader.java
index c75e84a1d86..a3229a45639 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JsonRecordReader.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JsonRecordReader.java
@@ -183,7 +183,7 @@ public class JsonRecordReader {
     }
 
     private boolean hasParentRecord() {
-      return isRecord || parent != null && parent.hasParentRecord();
+      return isRecord || (parent != null && parent.hasParentRecord());
     }
 
     private boolean isMyChildARecord() {
diff --git a/solr/solrj/src/java/org/noggit/JSONParser.java b/solr/solrj/src/java/org/noggit/JSONParser.java
index 82a7b539202..9ae474728d1 100644
--- a/solr/solrj/src/java/org/noggit/JSONParser.java
+++ b/solr/solrj/src/java/org/noggit/JSONParser.java
@@ -783,8 +783,8 @@ public class JSONParser {
         throw err("Single quoted strings not allowed");
       }
     } else {
-      if (isName && (flags & ALLOW_UNQUOTED_KEYS) == 0
-          || !isName && (flags & ALLOW_UNQUOTED_STRING_VALUES) == 0
+      if ((isName && (flags & ALLOW_UNQUOTED_KEYS) == 0)
+          || (!isName && (flags & ALLOW_UNQUOTED_STRING_VALUES) == 0)
           || eof) {
         if (isName) {
           throw err("Expected quoted string");
diff --git a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
index d4d8be41023..94681feae78 100644
--- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
@@ -1036,9 +1036,9 @@ public abstract class BaseDistributedSearchTestCase extends SolrTestCaseJ4 {
 
     if ((flags & FUZZY) != 0) {
       if ((a instanceof Double && b instanceof Double)) {
-        double aaa = ((Double) a).doubleValue();
-        double bbb = ((Double) b).doubleValue();
-        if (aaa == bbb || ((Double) a).isNaN() && ((Double) b).isNaN()) {
+        double aaa = (Double) a;
+        double bbb = (Double) b;
+        if (aaa == bbb || (((Double) a).isNaN() && ((Double) b).isNaN())) {
           return null;
         }
         if ((aaa == 0.0) || (bbb == 0.0)) {
diff --git a/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java b/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
index 649664829f9..029ba3bfbb8 100644
--- a/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
+++ b/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
@@ -241,8 +241,8 @@ class CollectionTester {
       }
 
       // make an exception for some numerics
-      if ((expected instanceof Integer && val instanceof Long
-              || expected instanceof Long && val instanceof Integer)
+      if (((expected instanceof Integer && val instanceof Long)
+              || (expected instanceof Long && val instanceof Integer))
           && ((Number) expected).longValue() == ((Number) val).longValue()) {
         return true;
       } else if ((expected instanceof Double || expected instanceof Float)


[solr] 08/12: SOLR-16427: Evaluate and fix errorprone rules - ImmutableEnumChecker

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 209669f4861d64e3c324143361da2da84a6b6b88
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Tue Oct 25 16:49:30 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - ImmutableEnumChecker
---
 gradle/validation/error-prone.gradle               |  3 +--
 .../client/solrj/embedded/EmbeddedSolrServer.java  |  5 ++--
 .../api/collections/ReindexCollectionCmd.java      | 14 +++++-----
 .../src/java/org/apache/solr/cluster/Replica.java  |  2 +-
 .../solr/handler/admin/CollectionsHandler.java     | 13 +++-------
 .../solr/handler/admin/CoreAdminOperation.java     |  1 +
 .../solr/handler/component/HighlightComponent.java | 10 +++-----
 .../apache/solr/handler/component/StatsField.java  |  3 ++-
 .../java/org/apache/solr/schema/IndexSchema.java   | 10 ++++----
 .../java/org/apache/solr/schema/NumberType.java    |  3 ++-
 .../solr/search/CollapsingQParserPlugin.java       |  6 ++---
 .../java/org/apache/solr/security/AuditEvent.java  |  4 +--
 .../solr/security/PermissionNameProvider.java      |  1 +
 .../security/RuleBasedAuthorizationPluginBase.java |  1 +
 .../solr/response/TestRetrieveFieldsOptimizer.java | 30 ++++++++++------------
 .../org/apache/solr/handler/sql/SolrMethod.java    |  1 +
 .../org/apache/solr/common/params/TermsParams.java |  4 +--
 .../solr/common/util/JsonSchemaValidator.java      |  2 +-
 18 files changed, 53 insertions(+), 60 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index a9ddb63c49d..175b90f792d 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -77,13 +77,12 @@ allprojects { prj ->
             '-Xep:ArgumentSelectionDefectChecker:OFF',
             '-Xep:BadImport:OFF', // style preference that we don't want to enforce
             '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:ComplexBooleanConstant:OFF',
+            '-Xep:ComplexBooleanConstant:OFF', // non trivial to fix in some cases
             '-Xep:DoubleCheckedLocking:OFF',
             '-Xep:EmptyCatch:OFF',
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
-            '-Xep:ImmutableEnumChecker:OFF',
             '-Xep:InconsistentCapitalization:OFF',
             '-Xep:InlineFormatString:OFF', // this introduces redundancy in format strings
             '-Xep:InputStreamSlowMultibyteRead:OFF',
diff --git a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
index 4a39487807c..3593f5eb376 100644
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
@@ -72,13 +72,14 @@ public class EmbeddedSolrServer extends SolrClient {
   private final RequestWriterSupplier supplier;
   private boolean containerIsLocal = false;
 
+  @SuppressWarnings("ImmutableEnumChecker")
   public enum RequestWriterSupplier {
     JavaBin(() -> new BinaryRequestWriter()),
     XML(() -> new RequestWriter());
 
-    private Supplier<RequestWriter> supplier;
+    private final Supplier<RequestWriter> supplier;
 
-    private RequestWriterSupplier(final Supplier<RequestWriter> supplier) {
+    RequestWriterSupplier(final Supplier<RequestWriter> supplier) {
       this.supplier = supplier;
     }
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
index 37dc7eb9b82..c4ffc78a5bf 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
@@ -22,7 +22,6 @@ import static org.apache.solr.common.params.CollectionAdminParams.FOLLOW_ALIASES
 import com.google.common.annotations.VisibleForTesting;
 import java.lang.invoke.MethodHandles;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
@@ -138,10 +137,9 @@ public class ReindexCollectionCmd implements CollApiCmds.CollectionApiCommand {
       return states.get(p);
     }
 
-    static Map<String, State> states =
-        Collections.unmodifiableMap(
-            Stream.of(State.values())
-                .collect(Collectors.toMap(State::toLower, Function.identity())));
+    static final Map<String, State> states =
+        Stream.of(State.values())
+            .collect(Collectors.toUnmodifiableMap(State::toLower, Function.identity()));
   }
 
   public enum Cmd {
@@ -161,9 +159,9 @@ public class ReindexCollectionCmd implements CollApiCmds.CollectionApiCommand {
       return cmds.get(p);
     }
 
-    static Map<String, Cmd> cmds =
-        Collections.unmodifiableMap(
-            Stream.of(Cmd.values()).collect(Collectors.toMap(Cmd::toLower, Function.identity())));
+    static final Map<String, Cmd> cmds =
+        Stream.of(Cmd.values())
+            .collect(Collectors.toUnmodifiableMap(Cmd::toLower, Function.identity()));
   }
 
   private String zkHost;
diff --git a/solr/core/src/java/org/apache/solr/cluster/Replica.java b/solr/core/src/java/org/apache/solr/cluster/Replica.java
index ce3e0614894..2d6978c63f1 100644
--- a/solr/core/src/java/org/apache/solr/cluster/Replica.java
+++ b/solr/core/src/java/org/apache/solr/cluster/Replica.java
@@ -42,7 +42,7 @@ public interface Replica {
     TLOG('t'),
     PULL('p');
 
-    private char suffixChar;
+    private final char suffixChar;
 
     ReplicaType(char suffixChar) {
       this.suffixChar = suffixChar;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
index 5760ff0dff7..59d331cd344 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
@@ -575,6 +575,7 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     results.add("status", status);
   }
 
+  @SuppressWarnings("ImmutableEnumChecker")
   public enum CollectionOperation implements CollectionOp {
     CREATE_OP(
         CREATE,
@@ -632,7 +633,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           copyPropertiesWithPrefix(req.getParams(), props, PROPERTY_PREFIX);
           return copyPropertiesWithPrefix(req.getParams(), props, "router.");
         }),
-    @SuppressWarnings({"unchecked"})
     COLSTATUS_OP(
         COLSTATUS,
         (req, rsp, h) -> {
@@ -854,7 +854,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
         }),
 
     /** List the aliases and associated properties. */
-    @SuppressWarnings({"unchecked"})
     LISTALIASES_OP(
         LISTALIASES,
         (req, rsp, h) -> {
@@ -1062,7 +1061,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           cp.setCollectionProperty(collection, name, val);
           return null;
         }),
-    @SuppressWarnings({"unchecked"})
     REQUESTSTATUS_OP(
         REQUESTSTATUS,
         (req, rsp, h) -> {
@@ -1128,14 +1126,13 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     DELETESTATUS_OP(
         DELETESTATUS,
         new CollectionOp() {
-          @SuppressWarnings("unchecked")
           @Override
           public Map<String, Object> execute(
               SolrQueryRequest req, SolrQueryResponse rsp, CollectionsHandler h) throws Exception {
             final CoreContainer coreContainer = h.coreContainer;
             final String requestId = req.getParams().get(REQUESTID);
             final ZkController zkController = coreContainer.getZkController();
-            Boolean flush = req.getParams().getBool(CollectionAdminParams.FLUSH, false);
+            boolean flush = req.getParams().getBool(CollectionAdminParams.FLUSH, false);
 
             if (requestId == null && !flush) {
               throw new SolrException(
@@ -1229,7 +1226,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           return copyPropertiesWithPrefix(req.getParams(), props, PROPERTY_PREFIX);
         }),
     OVERSEERSTATUS_OP(OVERSEERSTATUS, (req, rsp, h) -> new LinkedHashMap<>()),
-    @SuppressWarnings({"unchecked"})
     DISTRIBUTEDAPIPROCESSING_OP(
         DISTRIBUTEDAPIPROCESSING,
         (req, rsp, h) -> {
@@ -1241,7 +1237,6 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
           return null;
         }),
     /** Handle list collection request. Do list collection request to zk host */
-    @SuppressWarnings({"unchecked"})
     LIST_OP(
         LIST,
         (req, rsp, h) -> {
@@ -1858,8 +1853,8 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
     }
 
     public final CollectionOp fun;
-    CollectionAction action;
-    long timeOut;
+    final CollectionAction action;
+    final long timeOut;
 
     CollectionOperation(CollectionAction action, CollectionOp fun) {
       this(action, DEFAULT_COLLECTION_OP_TIMEOUT, fun);
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
index 75dfa9f137a..e2a4643d77e 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java
@@ -82,6 +82,7 @@ import org.apache.solr.util.TestInjection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@SuppressWarnings("ImmutableEnumChecker")
 public enum CoreAdminOperation implements CoreAdminOp {
   CREATE_OP(
       CREATE,
diff --git a/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java b/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
index 918a036e787..3a1684cd45d 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
@@ -16,15 +16,13 @@
  */
 package org.apache.solr.handler.component;
 
-import static java.util.stream.Collectors.toMap;
-
 import com.google.common.base.MoreObjects;
 import java.io.IOException;
 import java.lang.reflect.Array;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import org.apache.lucene.search.Query;
 import org.apache.solr.common.SolrException;
@@ -61,9 +59,9 @@ public class HighlightComponent extends SearchComponent
     ORIGINAL("original");
 
     private static final Map<String, HighlightMethod> METHODS =
-        Collections.unmodifiableMap(
-            Stream.of(values())
-                .collect(toMap(HighlightMethod::getMethodName, Function.identity())));
+        Stream.of(values())
+            .collect(
+                Collectors.toUnmodifiableMap(HighlightMethod::getMethodName, Function.identity()));
 
     private final String methodName;
 
diff --git a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java
index 78b506870a1..35fd161f5d0 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java
@@ -74,7 +74,8 @@ public class StatsField {
    * @lucene.internal
    * @lucene.experimental
    */
-  public static enum Stat {
+  @SuppressWarnings("ImmutableEnumChecker")
+  public enum Stat {
     min(true),
     max(true),
     missing(true),
diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index 3907c674183..2c7a521cb2f 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -1564,6 +1564,7 @@ public class IndexSchema {
     private Set<String> requestedSourceFields;
     private Set<String> requestedDestinationFields;
 
+    @SuppressWarnings("ImmutableEnumChecker")
     public enum Handler {
       NAME(IndexSchema.NAME, sp -> sp.schema.getSchemaName()),
       VERSION(IndexSchema.VERSION, sp -> sp.schema.getVersion()),
@@ -1687,11 +1688,10 @@ public class IndexSchema {
   }
 
   public static Map<String, String> nameMapping =
-      Collections.unmodifiableMap(
-          Stream.of(SchemaProps.Handler.values())
-              .collect(
-                  Collectors.toMap(
-                      SchemaProps.Handler::getNameLower, SchemaProps.Handler::getRealName)));
+      Stream.of(SchemaProps.Handler.values())
+          .collect(
+              Collectors.toUnmodifiableMap(
+                  SchemaProps.Handler::getNameLower, SchemaProps.Handler::getRealName));
 
   public Map<String, Object> getNamedPropertyValues(String name, SolrParams params) {
     return new SchemaProps(name, params, this).toMap(new LinkedHashMap<>());
diff --git a/solr/core/src/java/org/apache/solr/schema/NumberType.java b/solr/core/src/java/org/apache/solr/schema/NumberType.java
index bf2b1271ed2..2f12231fe98 100644
--- a/solr/core/src/java/org/apache/solr/schema/NumberType.java
+++ b/solr/core/src/java/org/apache/solr/schema/NumberType.java
@@ -18,6 +18,7 @@ package org.apache.solr.schema;
 
 import org.apache.lucene.search.SortField;
 
+@SuppressWarnings("ImmutableEnumChecker")
 public enum NumberType {
   INTEGER(SortField.Type.INT, Integer.MIN_VALUE, Integer.MAX_VALUE),
   LONG(SortField.Type.LONG, Long.MIN_VALUE, Long.MAX_VALUE),
@@ -42,7 +43,7 @@ public enum NumberType {
    */
   public final Object sortMissingHigh;
 
-  private NumberType(SortField.Type sortType, Object sortMissingLow, Object sortMissingHigh) {
+  NumberType(SortField.Type sortType, Object sortMissingLow, Object sortMissingHigh) {
     this.sortType = sortType;
     this.sortMissingLow = sortMissingLow;
     this.sortMissingHigh = sortMissingHigh;
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 3edb2073712..a44673efbb2 100644
--- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
@@ -192,7 +192,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
-    static NullPolicy DEFAULT_POLICY = IGNORE;
+    static final NullPolicy DEFAULT_POLICY = IGNORE;
   }
 
   @Override
@@ -218,12 +218,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
     }
   }
 
-  public static enum GroupHeadSelectorType {
+  public enum GroupHeadSelectorType {
     MIN,
     MAX,
     SORT,
     SCORE;
-    public static EnumSet<GroupHeadSelectorType> MIN_MAX = EnumSet.of(MIN, MAX);
+    public static final EnumSet<GroupHeadSelectorType> MIN_MAX = EnumSet.of(MIN, MAX);
   }
 
   /** Models all the information about how group head documents should be selected */
diff --git a/solr/core/src/java/org/apache/solr/security/AuditEvent.java b/solr/core/src/java/org/apache/solr/security/AuditEvent.java
index aa4b847807a..316e83556f0 100644
--- a/solr/core/src/java/org/apache/solr/security/AuditEvent.java
+++ b/solr/core/src/java/org/apache/solr/security/AuditEvent.java
@@ -86,9 +86,9 @@ public class AuditEvent {
     ERROR("Error", "Request was not executed due to an error", Level.ERROR, 500);
 
     public final String message;
-    public String explanation;
+    public final String explanation;
     public final Level level;
-    public int status;
+    public final int status;
 
     EventType(String message, String explanation, Level level, int status) {
       this.message = message;
diff --git a/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java b/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
index 3427a51a5fe..3321c6ac248 100644
--- a/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
+++ b/solr/core/src/java/org/apache/solr/security/PermissionNameProvider.java
@@ -34,6 +34,7 @@ import java.util.Set;
  */
 public interface PermissionNameProvider {
   // 'null' means the permission applies to system-level, while '*' means any collection
+  @SuppressWarnings("ImmutableEnumChecker")
   enum Name {
     COLL_EDIT_PERM("collection-admin-edit", null),
     COLL_READ_PERM("collection-admin-read", null),
diff --git a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
index fc917cad38a..7c7de920e1d 100644
--- a/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
+++ b/solr/core/src/java/org/apache/solr/security/RuleBasedAuthorizationPluginBase.java
@@ -366,6 +366,7 @@ public abstract class RuleBasedAuthorizationPluginBase
   @Override
   public void close() throws IOException {}
 
+  @SuppressWarnings("ImmutableEnumChecker")
   enum MatchStatus {
     USER_REQUIRED(AuthorizationResponse.PROMPT),
     NO_PERMISSIONS_FOUND(AuthorizationResponse.OK),
diff --git a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
index 0c04a08b4ec..e5cbeaf44d1 100644
--- a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
+++ b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
@@ -25,7 +25,6 @@ import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.MIXED_SOURCE
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.time.Instant;
-import java.util.AbstractMap.SimpleEntry;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -38,7 +37,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrDocument;
@@ -411,21 +409,19 @@ class RetrieveFieldType {
   }
 
   static final Map<TEST_TYPE, String> solrClassMap =
-      Collections.unmodifiableMap(
-          Stream.of(
-                  new SimpleEntry<>(TEST_TYPE.TINT, "solr.TrieIntField"),
-                  new SimpleEntry<>(TEST_TYPE.TLONG, "solr.TrieLongField"),
-                  new SimpleEntry<>(TEST_TYPE.TFLOAT, "solr.TrieFloatField"),
-                  new SimpleEntry<>(TEST_TYPE.TDOUBLE, "solr.TrieDoubleField"),
-                  new SimpleEntry<>(TEST_TYPE.TDATE, "solr.TrieDateField"),
-                  new SimpleEntry<>(TEST_TYPE.PINT, "solr.IntPointField"),
-                  new SimpleEntry<>(TEST_TYPE.PLONG, "solr.LongPointField"),
-                  new SimpleEntry<>(TEST_TYPE.PFLOAT, "solr.FloatPointField"),
-                  new SimpleEntry<>(TEST_TYPE.PDOUBLE, "solr.DoublePointField"),
-                  new SimpleEntry<>(TEST_TYPE.PDATE, "solr.DatePointField"),
-                  new SimpleEntry<>(TEST_TYPE.STRING, "solr.StrField"),
-                  new SimpleEntry<>(TEST_TYPE.BOOL, "solr.BoolField"))
-              .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
+      Map.ofEntries(
+          Map.entry(TEST_TYPE.TINT, "solr.TrieIntField"),
+          Map.entry(TEST_TYPE.TLONG, "solr.TrieLongField"),
+          Map.entry(TEST_TYPE.TFLOAT, "solr.TrieFloatField"),
+          Map.entry(TEST_TYPE.TDOUBLE, "solr.TrieDoubleField"),
+          Map.entry(TEST_TYPE.TDATE, "solr.TrieDateField"),
+          Map.entry(TEST_TYPE.PINT, "solr.IntPointField"),
+          Map.entry(TEST_TYPE.PLONG, "solr.LongPointField"),
+          Map.entry(TEST_TYPE.PFLOAT, "solr.FloatPointField"),
+          Map.entry(TEST_TYPE.PDOUBLE, "solr.DoublePointField"),
+          Map.entry(TEST_TYPE.PDATE, "solr.DatePointField"),
+          Map.entry(TEST_TYPE.STRING, "solr.StrField"),
+          Map.entry(TEST_TYPE.BOOL, "solr.BoolField"));
 
   RetrieveFieldType(IndexSchema schema, String name, TEST_TYPE type) {
     this.name = name;
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
index 0450ef935aa..b52a4bf0588 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
@@ -21,6 +21,7 @@ import java.util.List;
 import org.apache.calcite.linq4j.tree.Types;
 
 /** Builtin methods in the Solr adapter. */
+@SuppressWarnings("ImmutableEnumChecker")
 enum SolrMethod {
   SOLR_QUERYABLE_QUERY(
       SolrTable.SolrQueryable.class,
diff --git a/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java b/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java
index 283f3e7ecf1..129c7e204b8 100644
--- a/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java
+++ b/solr/solrj/src/java/org/apache/solr/common/params/TermsParams.java
@@ -76,7 +76,7 @@ public interface TermsParams {
 
   public static final String TERMS_REGEXP_FLAG = TERMS_REGEXP_STR + ".flag";
 
-  public static enum TermsRegexpFlag {
+  enum TermsRegexpFlag {
     UNIX_LINES(Pattern.UNIX_LINES),
     CASE_INSENSITIVE(Pattern.CASE_INSENSITIVE),
     COMMENTS(Pattern.COMMENTS),
@@ -86,7 +86,7 @@ public interface TermsParams {
     UNICODE_CASE(Pattern.UNICODE_CASE),
     CANON_EQ(Pattern.CANON_EQ);
 
-    int value;
+    final int value;
 
     TermsRegexpFlag(int value) {
       this.value = value;
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
index 0501d19486f..4837736f103 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
@@ -150,7 +150,7 @@ enum Type {
   NULL(null),
   UNKNOWN(Object.class);
 
-  Class<?> type;
+  final Class<?> type;
 
   Type(Class<?> type) {
     this.type = type;


[solr] 01/12: SOLR-16427: Evaluate and fix errorprone rules - Disable errorprone on javacc files

Posted by kr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7ab4d84e35a51b692c7076078b297149422add73
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Wed Oct 26 09:56:10 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - Disable errorprone on javacc files
---
 gradle/generation/javacc.gradle                    | 12 ++++--
 .../java/org/apache/solr/parser/QueryParser.java   | 47 +++++++++++-----------
 .../src/java/org/apache/solr/parser/QueryParser.jj |  2 +
 .../solr/parser/QueryParserTokenManager.java       |  5 ++-
 4 files changed, 37 insertions(+), 29 deletions(-)

diff --git a/gradle/generation/javacc.gradle b/gradle/generation/javacc.gradle
index 9adfebcfca3..54fc7e91359 100644
--- a/gradle/generation/javacc.gradle
+++ b/gradle/generation/javacc.gradle
@@ -66,10 +66,14 @@ def commonCleanups = { FileTree generatedFiles ->
       // Add CharStream imports.
       text = text.replaceAll(
           /package (.+)/,
-          '''
-          package $1
-          import org.apache.lucene.queryparser.charstream.CharStream; 
-          '''.trim())
+'''package $1
+import javax.annotation.processing.Generated;
+import org.apache.lucene.queryparser.charstream.CharStream;'''.trim())
+      text = text.replace(
+              "/** Token Manager. */",
+'''/** Token Manager. */
+@Generated("JavaCC")'''
+      )
       // Eliminates redundant cast message.
       text = text.replace(
           "int hiByte = (int)(curChar >> 8);",
diff --git a/solr/core/src/java/org/apache/solr/parser/QueryParser.java b/solr/core/src/java/org/apache/solr/parser/QueryParser.java
index 7b4f90c79f5..9feb2d1c68d 100644
--- a/solr/core/src/java/org/apache/solr/parser/QueryParser.java
+++ b/solr/core/src/java/org/apache/solr/parser/QueryParser.java
@@ -8,6 +8,7 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import javax.annotation.processing.Generated;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.search.BooleanClause;
@@ -18,6 +19,7 @@ import org.apache.solr.search.QParser;
 import org.apache.lucene.queryparser.charstream.CharStream;
 import org.apache.lucene.queryparser.charstream.FastCharStream;
 
+@Generated("JavaCC")
 public class QueryParser extends SolrQueryParserBase implements QueryParserConstants {
   /** The default operator for parsing queries.
    */
@@ -137,7 +139,6 @@ ret = MOD_NOT;
 }
 
 // This makes sure that there is no garbage after the query string
-  @Override
   final public Query TopLevelQuery(String field) throws ParseException, SyntaxError {Query q;
     q = Query(field);
     jj_consume_token(0);
@@ -669,37 +670,26 @@ if (splitOnWhitespace == false) {
     finally { jj_save(2, xla); }
   }
 
-  private boolean jj_3_3()
- {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_Clause_249_7_4()) {
-    jj_scanpos = xsp;
-    if (jj_3R_Clause_250_9_5()) return true;
-    }
-    return false;
-  }
-
   private boolean jj_3_2()
  {
-    if (jj_3R_MultiTerm_327_3_3()) return true;
+    if (jj_3R_MultiTerm_329_3_3()) return true;
     return false;
   }
 
-  private boolean jj_3R_Clause_250_9_5()
+  private boolean jj_3R_Clause_252_9_5()
  {
     if (jj_scan_token(STAR)) return true;
     if (jj_scan_token(COLON)) return true;
     return false;
   }
 
-  private boolean jj_3R_MultiTerm_340_5_7()
+  private boolean jj_3R_MultiTerm_342_5_7()
  {
     if (jj_scan_token(TERM)) return true;
     return false;
   }
 
-  private boolean jj_3R_Clause_249_7_4()
+  private boolean jj_3R_Clause_251_7_4()
  {
     if (jj_scan_token(TERM)) return true;
     if (jj_scan_token(COLON)) return true;
@@ -708,27 +698,38 @@ if (splitOnWhitespace == false) {
 
   private boolean jj_3_1()
  {
-    if (jj_3R_MultiTerm_327_3_3()) return true;
+    if (jj_3R_MultiTerm_329_3_3()) return true;
     return false;
   }
 
-  private boolean jj_3R_MultiTerm_338_3_6()
+  private boolean jj_3R_MultiTerm_340_3_6()
  {
     return false;
   }
 
-  private boolean jj_3R_MultiTerm_327_3_3()
+  private boolean jj_3R_MultiTerm_329_3_3()
  {
     if (jj_scan_token(TERM)) return true;
     jj_lookingAhead = true;
     jj_semLA = getToken(1).kind == TERM && allowedPostMultiTerm(getToken(2).kind);
     jj_lookingAhead = false;
-    if (!jj_semLA || jj_3R_MultiTerm_338_3_6()) return true;
+    if (!jj_semLA || jj_3R_MultiTerm_340_3_6()) return true;
     Token xsp;
-    if (jj_3R_MultiTerm_340_5_7()) return true;
+    if (jj_3R_MultiTerm_342_5_7()) return true;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_MultiTerm_340_5_7()) { jj_scanpos = xsp; break; }
+      if (jj_3R_MultiTerm_342_5_7()) { jj_scanpos = xsp; break; }
+    }
+    return false;
+  }
+
+  private boolean jj_3_3()
+ {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_Clause_251_7_4()) {
+    jj_scanpos = xsp;
+    if (jj_3R_Clause_252_9_5()) return true;
     }
     return false;
   }
@@ -774,7 +775,6 @@ if (splitOnWhitespace == false) {
   }
 
   /** Reinitialise. */
-  @Override
   public void ReInit(CharStream stream) {
      token_source.ReInit(stream);
      token = new Token();
@@ -836,7 +836,6 @@ if (splitOnWhitespace == false) {
       return this;
     }
   }
-  @SuppressWarnings("StaticAssignmentOfThrowable")
   static private final LookaheadSuccess jj_ls = new LookaheadSuccess();
   private boolean jj_scan_token(int kind) {
      if (jj_scanpos == jj_lastpos) {
diff --git a/solr/core/src/java/org/apache/solr/parser/QueryParser.jj b/solr/core/src/java/org/apache/solr/parser/QueryParser.jj
index 8da3f81d9fe..25a3238dca3 100644
--- a/solr/core/src/java/org/apache/solr/parser/QueryParser.jj
+++ b/solr/core/src/java/org/apache/solr/parser/QueryParser.jj
@@ -31,6 +31,7 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import javax.annotation.processing.Generated;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.search.BooleanClause;
@@ -41,6 +42,7 @@ import org.apache.solr.search.QParser;
 import org.apache.lucene.queryparser.charstream.CharStream;
 import org.apache.lucene.queryparser.charstream.FastCharStream;
 
+@Generated("JavaCC")
 public class QueryParser extends SolrQueryParserBase {
   /** The default operator for parsing queries.
    */
diff --git a/solr/core/src/java/org/apache/solr/parser/QueryParserTokenManager.java b/solr/core/src/java/org/apache/solr/parser/QueryParserTokenManager.java
index fd4dba8e375..c07941dcf28 100644
--- a/solr/core/src/java/org/apache/solr/parser/QueryParserTokenManager.java
+++ b/solr/core/src/java/org/apache/solr/parser/QueryParserTokenManager.java
@@ -1,7 +1,9 @@
 /* QueryParserTokenManager.java */
 /* Generated By:JavaCC: Do not edit this line. QueryParserTokenManager.java */
 package org.apache.solr.parser;
-          import org.apache.lucene.queryparser.charstream.CharStream;
+import javax.annotation.processing.Generated;
+import org.apache.lucene.queryparser.charstream.CharStream;
+
 
 
 
@@ -17,6 +19,7 @@ package org.apache.solr.parser;
 
 
 /** Token Manager. */
+@Generated("JavaCC")
 @SuppressWarnings ("unused")
 public class QueryParserTokenManager implements QueryParserConstants {
   int commentNestingDepth ;