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/26 18:21:19 UTC

[solr] branch branch_9x updated (5cc612f4643 -> 317f422922c)

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 5cc612f4643 NO-JIRA: Add docs in the header of the antora.yml (#1097)
     new 5465b01341b SOLR-16427: Evaluate and fix errorprone rules - MissingOverride
     new 35cad2c711a SOLR-16427: Evaluate and fix errorprone rules - ClassCanBeStatic
     new c4663233c00 SOLR-16427: Evaluate and fix errorprone rules - EqualsGetClass
     new 9c612fc8e8e SOLR-16427: Evaluate and fix errorprone rules - HidingField
     new daa4bdc5ffb SOLR-16427: Evaluate and fix errorprone rules - EscapedEntity / UnescapedEntity
     new 05f61f60bb6 SOLR-16427: Evaluate and fix errorprone rules - ReferenceEquality
     new a37cfac7cdb SOLR-16427: Evaluate and fix errorprone rules - ModifiedButNotUsed
     new 2e3894ab1fa SOLR-16427: Evaluate and fix errorprone rules - LogicalAssignment
     new 317f422922c SOLR-16427: Evaluate and fix errorprone rules - NarrowingCompoundAssignment

The 9 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/validation/error-prone.gradle               | 12 +----
 .../solr/bench/SplittableRandomGenerator.java      |  2 +
 .../solr/bench/generators/RandomDataHistogram.java |  2 +-
 .../org/apache/solr/bench/generators/Tracker.java  |  1 +
 .../quicktheories/impl/BenchmarkRandomSource.java  |  1 +
 .../test/org/apache/solr/bench/DockMakerTest.java  | 13 ++---
 .../src/java/org/apache/solr/api/AnnotatedApi.java |  4 +-
 solr/core/src/java/org/apache/solr/api/ApiBag.java |  5 +-
 .../src/java/org/apache/solr/api/V2HttpCall.java   |  1 +
 .../org/apache/solr/cloud/ElectionContext.java     |  1 +
 .../apache/solr/cloud/ExclusiveSliceProperty.java  |  1 +
 .../src/java/org/apache/solr/cloud/Overseer.java   |  1 +
 .../apache/solr/cloud/OverseerTaskProcessor.java   |  2 +
 .../org/apache/solr/cloud/OverseerTaskQueue.java   |  9 ++--
 .../solr/cloud/RecoveringCoreTermWatcher.java      |  3 +-
 .../solr/cloud/RefreshCollectionMessage.java       |  1 +
 .../org/apache/solr/cloud/ZkCollectionTerms.java   |  1 +
 .../org/apache/solr/cloud/ZkConfigSetService.java  |  1 +
 .../java/org/apache/solr/cloud/ZkController.java   | 18 +++----
 .../cloud/ZkDistributedCollectionLockFactory.java  | 27 +++++-----
 .../cloud/ZkDistributedConfigSetLockFactory.java   | 13 ++---
 .../org/apache/solr/cloud/ZkDistributedQueue.java  |  1 +
 .../java/org/apache/solr/cloud/ZkShardTerms.java   |  1 +
 .../solr/cloud/api/collections/CollApiCmds.java    |  7 +++
 .../cloud/api/collections/DeleteSnapshotCmd.java   |  3 +-
 .../collections/OcmhCollectionCommandContext.java  |  1 +
 .../cloud/api/collections/OverseerRoleCmd.java     |  4 +-
 .../solr/cloud/api/collections/RoutedAlias.java    |  4 +-
 .../solr/cloud/api/collections/SplitShardCmd.java  | 11 +---
 .../apache/solr/cloud/overseer/SliceMutator.java   |  2 +-
 .../solr/cluster/placement/impl/MetricImpl.java    |  2 +-
 .../cluster/placement/impl/NodeMetricImpl.java     |  3 +-
 .../impl/PlacementPluginAssignStrategy.java        |  1 +
 .../impl/SimpleClusterAbstractionsImpl.java        | 22 ++++----
 .../src/java/org/apache/solr/core/CoreSorter.java  |  3 +-
 .../solr/core/EphemeralDirectoryFactory.java       |  2 +
 .../solr/core/FileSystemConfigSetService.java      |  1 +
 .../solr/core/IndexDeletionPolicyWrapper.java      |  3 +-
 .../src/java/org/apache/solr/core/PluginBag.java   |  2 +
 .../src/java/org/apache/solr/core/PluginInfo.java  |  1 +
 .../src/java/org/apache/solr/core/SolrConfig.java  |  2 +-
 .../src/java/org/apache/solr/core/SolrCores.java   |  2 +-
 .../org/apache/solr/core/SolrDeletionPolicy.java   |  2 +
 .../org/apache/solr/core/SolrResourceLoader.java   |  2 +
 .../apache/solr/core/StandardDirectoryFactory.java |  2 +
 .../java/org/apache/solr/core/backup/BackupId.java |  2 +-
 .../java/org/apache/solr/core/backup/Checksum.java |  2 +-
 .../org/apache/solr/handler/AnalyzeEvaluator.java  |  1 +
 .../java/org/apache/solr/handler/CatStream.java    |  2 +-
 .../java/org/apache/solr/handler/GraphHandler.java | 26 +++++++---
 .../solr/handler/HaversineMetersEvaluator.java     |  1 +
 .../java/org/apache/solr/handler/IndexFetcher.java |  8 +++
 .../apache/solr/handler/ReplicationHandler.java    |  4 ++
 .../java/org/apache/solr/handler/RestoreCore.java  |  6 +++
 .../org/apache/solr/handler/StreamHandler.java     | 30 ++++++++++-
 .../solr/handler/admin/ConfigSetsHandler.java      |  1 +
 .../solr/handler/admin/IndexSizeEstimator.java     |  8 +++
 .../solr/handler/admin/LukeRequestHandler.java     |  2 +-
 .../solr/handler/admin/SecurityConfHandler.java    |  1 +
 .../org/apache/solr/handler/admin/SplitOp.java     |  3 +-
 .../solr/handler/admin/ZookeeperInfoHandler.java   |  1 +
 .../solr/handler/component/ExpandComponent.java    |  2 +
 .../solr/handler/component/FacetComponent.java     |  2 +
 .../solr/handler/component/HttpShardHandler.java   |  2 +
 .../handler/component/IterativeMergeStrategy.java  |  6 +++
 .../handler/component/MoreLikeThisComponent.java   |  1 +
 .../component/PhrasesIdentificationComponent.java  |  1 +
 .../apache/solr/handler/component/PivotFacet.java  |  1 +
 .../solr/handler/component/PivotFacetField.java    |  1 +
 .../component/PivotFacetFieldValueCollection.java  |  3 ++
 .../solr/handler/component/PivotFacetValue.java    |  1 +
 .../handler/component/QueryElevationComponent.java |  4 +-
 .../handler/component/RealTimeGetComponent.java    |  6 +++
 .../apache/solr/handler/component/ShardDoc.java    |  8 ++-
 .../apache/solr/handler/component/StatsField.java  |  3 ++
 .../solr/handler/component/StatsValuesFactory.java |  2 +
 .../handler/designer/DefaultSchemaSuggester.java   |  1 +
 .../handler/designer/SchemaDesignerSettings.java   |  2 +-
 .../solr/handler/export/BoolFieldWriter.java       |  1 +
 .../solr/handler/export/DateFieldWriter.java       |  1 +
 .../org/apache/solr/handler/export/DoubleComp.java |  4 ++
 .../solr/handler/export/DoubleFieldWriter.java     |  1 +
 .../apache/solr/handler/export/DoubleValue.java    |  9 ++++
 .../apache/solr/handler/export/ExportWriter.java   |  3 ++
 .../org/apache/solr/handler/export/FloatComp.java  |  4 ++
 .../solr/handler/export/FloatFieldWriter.java      |  1 +
 .../org/apache/solr/handler/export/FloatValue.java |  9 ++++
 .../org/apache/solr/handler/export/IntComp.java    |  4 ++
 .../apache/solr/handler/export/IntFieldWriter.java |  1 +
 .../org/apache/solr/handler/export/IntValue.java   |  9 ++++
 .../org/apache/solr/handler/export/LongComp.java   |  4 ++
 .../solr/handler/export/LongFieldWriter.java       |  1 +
 .../org/apache/solr/handler/export/LongValue.java  |  9 ++++
 .../solr/handler/export/MultiFieldWriter.java      |  1 +
 .../solr/handler/export/SingleValueSortDoc.java    |  1 +
 .../org/apache/solr/handler/export/SortDoc.java    |  3 +-
 .../solr/handler/export/StringFieldWriter.java     |  1 +
 .../apache/solr/handler/export/StringValue.java    | 10 ++++
 .../solr/highlight/DefaultSolrHighlighter.java     |  2 +-
 .../jersey/container/ContainerRequestUtils.java    |  4 ++
 .../org/apache/solr/legacy/BBoxValueSource.java    |  6 +--
 .../org/apache/solr/legacy/LegacyFieldType.java    |  5 +-
 .../solr/legacy/LegacyNumericRangeQuery.java       |  6 +--
 .../solr/legacy/LegacyNumericTokenStream.java      |  6 +--
 .../java/org/apache/solr/logging/MDCSnapshot.java  |  1 +
 .../apache/solr/logging/log4j2/Log4j2Watcher.java  | 15 +++---
 .../java/org/apache/solr/metrics/MetricsMap.java   |  1 +
 .../org/apache/solr/metrics/SolrMetricInfo.java    | 10 ++--
 .../apache/solr/metrics/SolrMetricReporter.java    |  1 +
 .../metrics/reporters/ReporterClientCache.java     |  1 +
 .../solr/metrics/reporters/SolrJmxReporter.java    |  1 +
 .../metrics/reporters/jmx/JmxMetricsReporter.java  |  1 +
 .../java/org/apache/solr/parser/QueryParser.java   |  2 +
 .../apache/solr/parser/SolrQueryParserBase.java    |  3 +-
 .../java/org/apache/solr/query/FilterQuery.java    |  2 +-
 .../java/org/apache/solr/query/SolrRangeQuery.java |  7 ++-
 .../apache/solr/request/LocalSolrQueryRequest.java |  3 +-
 .../org/apache/solr/request/SolrQueryRequest.java  |  1 +
 .../apache/solr/request/SolrQueryRequestBase.java  |  1 +
 .../solr/request/json/JsonQueryConverter.java      |  4 +-
 .../apache/solr/response/CSVResponseWriter.java    |  3 --
 .../org/apache/solr/response/DocsStreamer.java     |  2 +
 .../solr/response/GraphMLResponseWriter.java       |  2 +
 .../apache/solr/response/JSONResponseWriter.java   |  2 +-
 .../apache/solr/response/TextResponseWriter.java   |  7 +++
 .../solr/response/transform/DocTransformer.java    |  3 ++
 .../schema/analysis/ManagedStopFilterFactory.java  |  1 +
 .../analysis/ManagedSynonymFilterFactory.java      |  4 +-
 .../analysis/ManagedSynonymGraphFilterFactory.java |  4 +-
 .../src/java/org/apache/solr/schema/BoolField.java |  3 +-
 .../org/apache/solr/schema/CurrencyFieldType.java  | 26 ++++------
 .../org/apache/solr/schema/DenseVectorField.java   |  1 +
 .../solr/schema/FileExchangeRateProvider.java      |  5 +-
 .../java/org/apache/solr/schema/IndexSchema.java   | 11 +++-
 .../solr/schema/LatLonPointSpatialField.java       |  2 +-
 .../org/apache/solr/schema/ManagedIndexSchema.java |  1 +
 .../solr/schema/OpenExchangeRatesOrgProvider.java  |  6 +--
 .../solr/schema/RptWithGeometrySpatialField.java   | 10 ++--
 .../java/org/apache/solr/schema/SchemaField.java   |  2 +
 .../org/apache/solr/schema/SortableTextField.java  |  1 +
 .../apache/solr/schema/ZkIndexSchemaReader.java    |  3 ++
 .../apache/solr/search/AbstractReRankQuery.java    |  6 ++-
 .../org/apache/solr/search/AnalyticsQuery.java     |  5 ++
 .../src/java/org/apache/solr/search/BitDocSet.java |  1 +
 .../solr/search/CollapsingQParserPlugin.java       | 47 +++++++++++++++++-
 .../solr/search/ComplexPhraseQParserPlugin.java    |  2 +
 .../src/java/org/apache/solr/search/DocSet.java    |  1 +
 .../apache/solr/search/ExportQParserPlugin.java    | 17 +++++--
 .../solr/search/FloatPayloadValueSource.java       | 17 +++----
 .../org/apache/solr/search/FunctionRangeQuery.java |  6 +--
 .../solr/search/GraphTermsQParserPlugin.java       |  9 +++-
 .../org/apache/solr/search/HashQParserPlugin.java  |  6 ++-
 .../solr/search/IGainTermsQParserPlugin.java       |  6 +--
 .../org/apache/solr/search/MatchCostQuery.java     |  2 +-
 .../java/org/apache/solr/search/PointMerger.java   |  4 ++
 .../java/org/apache/solr/search/QueryUtils.java    |  4 +-
 .../org/apache/solr/search/ReRankCollector.java    |  3 ++
 .../apache/solr/search/ReRankQParserPlugin.java    | 11 ++--
 .../java/org/apache/solr/search/ReRankWeight.java  |  1 +
 .../solr/search/SignificantTermsQParserPlugin.java |  6 +--
 .../src/java/org/apache/solr/search/SolrCache.java |  1 +
 .../org/apache/solr/search/SolrIndexSearcher.java  | 17 ++++---
 .../org/apache/solr/search/SortSpecParsing.java    |  2 +-
 .../org/apache/solr/search/TermsQParserPlugin.java |  5 ++
 .../TextLogisticRegressionQParserPlugin.java       |  5 ++
 .../org/apache/solr/search/TopLevelJoinQuery.java  |  5 ++
 .../org/apache/solr/search/ValueSourceParser.java  |  6 +--
 .../org/apache/solr/search/XmlQParserPlugin.java   |  2 +
 .../apache/solr/search/facet/AggValueSource.java   |  3 +-
 .../java/org/apache/solr/search/facet/AvgAgg.java  |  6 +--
 .../org/apache/solr/search/facet/CountValsAgg.java |  8 +--
 .../org/apache/solr/search/facet/DocValuesAcc.java |  4 +-
 .../solr/search/facet/FacetFieldProcessor.java     |  5 ++
 .../org/apache/solr/search/facet/FacetHeatmap.java |  1 +
 .../org/apache/solr/search/facet/FacetModule.java  |  2 +-
 .../org/apache/solr/search/facet/FacetParser.java  |  1 +
 .../apache/solr/search/facet/FacetRangeParser.java |  1 +
 .../org/apache/solr/search/facet/FacetRequest.java |  3 ++
 .../org/apache/solr/search/facet/MinMaxAgg.java    |  2 +-
 .../org/apache/solr/search/facet/MissingAgg.java   |  2 +-
 .../apache/solr/search/facet/PercentileAgg.java    |  1 +
 .../apache/solr/search/facet/RelatednessAgg.java   |  7 ++-
 .../solr/search/facet/SimpleAggValueSource.java    |  6 +--
 .../java/org/apache/solr/search/facet/SlotAcc.java |  2 +
 .../org/apache/solr/search/facet/StddevAgg.java    |  6 +--
 .../java/org/apache/solr/search/facet/SumAgg.java  |  7 +--
 .../org/apache/solr/search/facet/SumsqAgg.java     |  6 +--
 .../org/apache/solr/search/facet/VarianceAgg.java  |  6 +--
 .../search/function/CollapseScoreFunction.java     | 14 ++++--
 .../solr/search/function/ConcatStringFunction.java |  1 +
 .../solr/search/function/DualDoubleFunction.java   |  5 +-
 .../solr/search/function/FileFloatSource.java      |  2 +-
 .../solr/search/function/MultiStringFunction.java  |  5 +-
 .../solr/search/function/OrdFieldSource.java       |  4 +-
 .../search/function/ReverseOrdFieldSource.java     |  2 +-
 .../search/function/ValueSourceRangeFilter.java    | 18 +++----
 .../distance/GeohashHaversineFunction.java         | 11 ++--
 .../function/distance/HaversineFunction.java       | 11 ++--
 .../search/join/ChildFieldValueSourceParser.java   | 17 ++-----
 .../solr/search/join/CrossCollectionJoinQuery.java |  2 +-
 .../solr/search/join/GraphEdgeCollector.java       |  1 +
 .../join/MultiValueTermOrdinalCollector.java       |  1 +
 .../solr/search/join/ScoreJoinQParserPlugin.java   |  9 ++--
 .../apache/solr/search/mlt/CloudMLTQParser.java    |  1 +
 .../apache/solr/search/mlt/SimpleMLTQParser.java   |  1 +
 .../apache/solr/search/stats/CollectionStats.java  |  1 +
 .../solr/search/stats/ExactSharedStatsCache.java   |  4 ++
 .../apache/solr/search/stats/ExactStatsCache.java  |  1 +
 .../org/apache/solr/search/stats/StatsCache.java   |  1 +
 .../org/apache/solr/search/stats/TermStats.java    |  1 +
 .../apache/solr/security/AuditLoggerPlugin.java    |  2 +-
 .../org/apache/solr/security/BasicAuthPlugin.java  |  4 +-
 .../solr/security/MultiDestinationAuditLogger.java |  1 -
 .../security/Sha256AuthenticationProvider.java     |  1 +
 .../apache/solr/servlet/CoreContainerProvider.java |  2 +-
 .../solr/servlet/ServletInputStreamWrapper.java    | 16 ++++++
 .../solr/servlet/ServletOutputStreamWrapper.java   | 25 ++++++++++
 .../apache/solr/spelling/PossibilityIterator.java  |  8 ++-
 .../java/org/apache/solr/spelling/ResultEntry.java | 16 +++---
 .../src/java/org/apache/solr/spelling/Token.java   | 10 ++--
 .../org/apache/solr/uninverting/FieldCache.java    |  1 +
 .../apache/solr/uninverting/FieldCacheImpl.java    |  7 ++-
 .../apache/solr/update/DefaultSolrCoreState.java   |  1 +
 .../apache/solr/update/DeleteByQueryWrapper.java   |  2 +-
 .../org/apache/solr/update/SolrCmdDistributor.java | 37 ++++++--------
 .../apache/solr/update/StreamingSolrClients.java   |  1 +
 .../org/apache/solr/update/TimedVersionBucket.java |  3 ++
 .../org/apache/solr/update/TransactionLog.java     |  6 ++-
 .../org/apache/solr/update/UpdateShardHandler.java |  1 +
 ...llValuesOrNoneFieldMutatingUpdateProcessor.java |  1 +
 .../processor/AtomicUpdateProcessorFactory.java    |  3 --
 .../processor/DistributedUpdateProcessor.java      |  2 +
 .../processor/DistributedZkUpdateProcessor.java    |  1 +
 .../DocExpirationUpdateProcessorFactory.java       |  4 ++
 .../processor/NestedUpdateProcessorFactory.java    |  1 +
 .../processor/UUIDUpdateProcessorFactory.java      |  2 +
 .../java/org/apache/solr/util/DOMConfigNode.java   |  2 +-
 .../src/java/org/apache/solr/util/PackageTool.java |  1 +
 .../core/src/java/org/apache/solr/util/RTimer.java |  2 +
 .../src/java/org/apache/solr/util/SolrCLI.java     | 58 ++++++++++++++++++++++
 .../providers/EnvSSLCredentialProvider.java        |  2 +
 .../providers/SysPropSSLCredentialProvider.java    |  1 +
 .../src/java/org/apache/solr/util/hll/HLLUtil.java | 10 ++--
 .../apache/solr/util/hll/SerializationUtil.java    |  4 +-
 .../test/org/apache/solr/cloud/AddReplicaTest.java |  1 +
 ...aosMonkeyNothingIsSafeWithPullReplicasTest.java |  3 ++
 .../ChaosMonkeySafeLeaderWithPullReplicasTest.java |  2 +
 .../solr/cloud/ChaosMonkeyShardSplitTest.java      |  3 +-
 .../cloud/CloudExitableDirectoryReaderTest.java    |  4 +-
 .../DistribDocExpirationUpdateProcessorTest.java   |  2 +-
 .../apache/solr/cloud/DistributedQueueTest.java    |  1 +
 .../solr/cloud/DistributedVersionInfoTest.java     |  4 ++
 .../apache/solr/cloud/DocValuesNotIndexedTest.java |  7 ---
 .../org/apache/solr/cloud/HttpPartitionTest.java   |  1 +
 .../org/apache/solr/cloud/LeaderElectionTest.java  |  2 +-
 .../cloud/LeaderFailoverAfterPartitionTest.java    |  1 +
 .../cloud/LeaderFailureAfterFreshStartTest.java    |  1 +
 .../apache/solr/cloud/LeaderTragicEventTest.java   |  2 +
 .../solr/cloud/LeaderVoteWaitTimeoutTest.java      |  1 +
 .../solr/cloud/MissingSegmentRecoveryTest.java     |  2 +-
 .../org/apache/solr/cloud/MoveReplicaTest.java     |  2 +
 .../OverseerCollectionConfigSetProcessorTest.java  |  9 ++++
 .../test/org/apache/solr/cloud/OverseerTest.java   |  3 ++
 .../apache/solr/cloud/PeerSyncReplicationTest.java |  2 +
 .../apache/solr/cloud/ReplicationFactorTest.java   |  2 +-
 .../org/apache/solr/cloud/ShardRoutingTest.java    |  2 +-
 .../org/apache/solr/cloud/SolrXmlInZkTest.java     |  7 ---
 .../org/apache/solr/cloud/TestCloudRecovery.java   |  6 +--
 .../solr/cloud/TestCloudSearcherWarming.java       |  1 +
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   |  2 +
 .../solr/cloud/TestConfigSetsAPIExclusivity.java   |  1 +
 .../solr/cloud/TestDistribDocBasedVersion.java     |  1 +
 .../apache/solr/cloud/TestRandomFlRTGCloud.java    | 32 ++++++++++++
 .../apache/solr/cloud/TestSSLRandomization.java    | 41 +++++++--------
 .../solr/cloud/TestSizeLimitedDistributedMap.java  |  3 +-
 .../solr/cloud/TestSkipOverseerOperations.java     |  1 +
 .../cloud/TestStressCloudBlindAtomicUpdates.java   |  1 +
 .../org/apache/solr/cloud/TestStressLiveNodes.java |  1 +
 .../org/apache/solr/cloud/TestTlogReplica.java     | 11 ++--
 .../cloud/TestTolerantUpdateProcessorCloud.java    |  1 +
 .../cloud/TestWaitForStateWithJettyShutdowns.java  |  3 +-
 .../solr/cloud/TriLevelCompositeIdRoutingTest.java |  2 +
 .../org/apache/solr/cloud/ZkControllerTest.java    |  1 -
 .../org/apache/solr/cloud/ZkSolrClientTest.java    |  2 +
 .../CollectionsAPIAsyncDistributedZkTest.java      |  1 +
 .../solr/cloud/api/collections/ShardSplitTest.java |  1 +
 .../TestRequestStatusCollectionAPI.java            |  1 +
 .../solr/cloud/overseer/ZkStateReaderTest.java     |  2 +
 .../solr/cluster/events/AllEventsListener.java     |  1 +
 .../cluster/events/ClusterEventProducerTest.java   |  1 +
 .../impl/CollectionsRepairEventListenerTest.java   |  1 +
 .../placement/ClusterAbstractionsForTest.java      | 39 +++++----------
 .../solr/core/BlobRepositoryMockingTest.java       |  1 +
 .../solr/core/CachingDirectoryFactoryTest.java     |  1 +
 .../test/org/apache/solr/core/CoreSorterTest.java  |  2 +-
 .../solr/core/TestBackupRepositoryFactory.java     |  6 ---
 .../org/apache/solr/core/TestConfLoadPerf.java     |  4 +-
 .../org/apache/solr/core/TestCoreContainer.java    |  1 +
 .../src/test/org/apache/solr/core/TestNRTOpen.java |  1 +
 .../apache/solr/core/TestSolrDeletionPolicy1.java  |  2 +-
 .../src/test/org/apache/solr/core/TestSolrXml.java |  7 ---
 .../handler/FieldAnalysisRequestHandlerTest.java   |  6 +--
 .../solr/handler/RequestHandlerMetricsTest.java    |  1 +
 .../apache/solr/handler/TestContainerPlugin.java   |  4 +-
 .../handler/TestHealthCheckHandlerLegacyMode.java  |  1 +
 .../solr/handler/TestReplicationHandler.java       |  3 +-
 .../solr/handler/TestReplicationHandlerBackup.java |  1 +
 .../TestReplicationHandlerDiskOverFlow.java        |  1 +
 .../org/apache/solr/handler/TestRestoreCore.java   |  1 +
 .../solr/handler/TestStressIncrementalBackup.java  |  1 +
 .../solr/handler/TestStressThreadBackup.java       |  2 +
 .../solr/handler/admin/CoreAdminHandlerTest.java   |  6 ---
 .../solr/handler/admin/CoreAdminOperationTest.java |  2 +
 .../admin/CoreMergeIndexesAdminHandlerTest.java    |  7 ---
 .../admin/SecurityConfHandlerLocalForTesting.java  |  2 +
 .../solr/handler/admin/TestApiFramework.java       |  4 +-
 .../solr/handler/admin/ThreadDumpHandlerTest.java  |  2 +
 .../admin/api/AddReplicaPropertyAPITest.java       |  1 +
 .../component/DistributedFacetPivotSmallTest.java  |  7 +--
 .../component/DistributedTermsComponentTest.java   |  1 +
 .../component/QueryElevationComponentTest.java     |  7 ---
 .../solr/handler/component/StatsComponentTest.java | 25 ++++++----
 .../handler/component/TermVectorComponentTest.java |  7 ---
 .../solr/handler/component/TermsComponentTest.java | 10 ++--
 .../solr/handler/export/TestExportWriter.java      |  2 +-
 .../tagger/EmbeddedSolrNoSerializeTest.java        |  1 +
 .../apache/solr/handler/tagger/TaggerTestCase.java |  2 +-
 .../org/apache/solr/legacy/TestLegacyTerms.java    |  9 ++++
 .../org/apache/solr/metrics/MetricsConfigTest.java |  6 ---
 .../reporters/SolrGraphiteReporterTest.java        |  1 +
 .../solr/parser/SolrQueryParserBaseTest.java       |  3 ++
 .../solr/response/TestGraphMLResponseWriter.java   |  7 +++
 .../solr/response/TestRetrieveFieldsOptimizer.java | 12 -----
 .../transform/TestSubQueryTransformerDistrib.java  |  6 ---
 .../org/apache/solr/rest/TestManagedResource.java  |  4 +-
 .../org/apache/solr/schema/DocValuesMultiTest.java |  1 +
 .../test/org/apache/solr/schema/DocValuesTest.java |  1 +
 .../IntPointPrefixActsAsRangeQueryFieldType.java   |  1 +
 .../solr/schema/TestBulkSchemaConcurrent.java      |  1 +
 .../apache/solr/schema/TestCloudSchemaless.java    |  1 +
 .../org/apache/solr/schema/TestPointFields.java    |  3 +-
 .../TrieIntPrefixActsAsRangeQueryFieldType.java    |  1 +
 .../solr/search/AnalyticsTestQParserPlugin.java    | 11 ++++
 .../search/ApacheLuceneSolrNearQueryBuilder.java   |  2 +
 .../solr/search/ChooseOneWordQueryBuilder.java     |  2 +
 .../apache/solr/search/GoodbyeQueryBuilder.java    |  1 +
 .../org/apache/solr/search/HandyQueryBuilder.java  |  2 +
 .../org/apache/solr/search/HelloQueryBuilder.java  |  1 +
 .../org/apache/solr/search/MergeStrategyTest.java  |  9 ++++
 .../apache/solr/search/RankQueryTestPlugin.java    | 30 +++++++++++
 .../apache/solr/search/SolrIndexSearcherTest.java  |  3 ++
 .../solr/search/TestCancellableCollector.java      |  2 +-
 .../solr/search/TestExtendedDismaxParser.java      |  4 +-
 .../test/org/apache/solr/search/TestFiltering.java |  2 +-
 .../org/apache/solr/search/TestIndexSearcher.java  |  2 +
 .../org/apache/solr/search/TestSearchPerf.java     |  4 +-
 .../apache/solr/search/TestTermsQParserPlugin.java |  2 +-
 .../solr/search/stats/TestBaseStatsCache.java      |  1 +
 .../solr/search/stats/TestDefaultStatsCache.java   |  1 +
 .../solr/security/AuditLoggerIntegrationTest.java  |  4 +-
 .../solr/security/AuditLoggerPluginTest.java       |  1 +
 .../apache/solr/security/CertAuthPluginTest.java   |  1 +
 .../solr/security/PrincipalWithUserRoles.java      |  3 +-
 .../solr/security/TestAuthorizationFramework.java  |  1 +
 .../org/apache/solr/update/AddBlockUpdateTest.java |  4 --
 .../apache/solr/update/MaxSizeAutoCommitTest.java  |  1 +
 .../apache/solr/update/MockingHttp2SolrClient.java |  1 +
 .../apache/solr/update/SolrCmdDistributorTest.java | 30 +++++------
 .../apache/solr/update/SolrIndexConfigTest.java    |  1 +
 .../solr/update/TestInPlaceUpdatesStandalone.java  |  2 +
 .../update/processor/AtomicUpdateJavabinTest.java  |  1 +
 .../CategoryRoutedAliasUpdateProcessorTest.java    |  2 +-
 .../DimensionalRoutedAliasUpdateProcessorTest.java |  2 +-
 .../update/processor/RegexBoostProcessorTest.java  |  1 +
 .../TimeRoutedAliasUpdateProcessorTest.java        |  6 +--
 .../test/org/apache/solr/util/AuthToolTest.java    |  2 +
 .../src/test/org/apache/solr/util/BitSetPerf.java  |  2 +-
 .../org/apache/solr/util/TestCircuitBreaker.java   | 22 --------
 .../test/org/apache/solr/util/TestRTimerTree.java  |  4 +-
 .../apache/solr/util/TestSolrCLIRunExample.java    |  2 +
 .../org/apache/solr/util/TestSystemIdResolver.java |  1 +
 .../util/configuration/SSLConfigurationsTest.java  |  1 +
 .../facet/compare/ExpressionComparator.java        |  1 +
 .../facet/compare/FacetResultsComparator.java      |  1 +
 .../function/mapping/DateParseFunction.java        |  1 +
 .../analytics/function/mapping/LambdaFunction.java |  7 +++
 .../org/apache/solr/handler/AnalyticsHandler.java  |  1 +
 ...uestContinuesRecorderAuthenticationHandler.java |  5 ++
 .../hadoop/HadoopSSLCredentialProvider.java        |  1 +
 .../client/solrj/impl/Krb5HttpClientUtils.java     |  1 +
 .../util/configuration/SSLConfigurationsTest.java  |  1 +
 .../org/apache/solr/hdfs/HdfsDirectoryFactory.java |  2 +
 .../backup/repository/HdfsBackupRepository.java    |  1 +
 .../solr/hdfs/snapshots/SolrSnapshotsTool.java     |  1 +
 .../solr/hdfs/store/blockcache/BlockCacheKey.java  | 12 ++---
 .../solr/hdfs/store/blockcache/BlockDirectory.java |  1 +
 .../solr/hdfs/update/HdfsTransactionLog.java       | 47 ++++++++++--------
 .../org/apache/solr/hdfs/update/HdfsUpdateLog.java | 37 +++++++-------
 .../org/apache/hadoop/fs/RawLocalFileSystem.java   |  1 +
 .../datanode/fsdataset/impl/BlockPoolSlice.java    |  7 +--
 .../hdfs/cloud/HdfsChaosMonkeySafeLeaderTest.java  |  1 +
 .../solr/hdfs/cloud/HdfsNameNodeFailoverTest.java  |  1 +
 .../solr/hdfs/cloud/HdfsRecoverLeaseTest.java      |  2 +
 .../cloud/HdfsWriteToMultipleCollectionsTest.java  |  1 +
 .../SharedFileSystemAutoReplicaFailoverTest.java   | 19 ++++---
 .../org/apache/solr/hdfs/cloud/StressHdfsTest.java |  1 +
 .../collections/TestHdfsCloudBackupRestore.java    |  1 +
 .../apache/solr/hdfs/store/HdfsDirectoryTest.java  |  2 +
 .../hdfs/store/blockcache/BlockDirectoryTest.java  |  2 +
 .../apache/solr/hdfs/update/TestHdfsUpdateLog.java |  2 +
 .../apache/solr/jaeger/TestJaegerConfigurator.java |  6 ---
 .../org/apache/solr/security/jwt/JWTPrincipal.java |  2 +-
 .../solr/security/jwt/JWTAuthPluginTest.java       |  1 +
 .../solr/security/jwt/JWTIssuerConfigTest.java     |  2 +
 .../jwt/JWTVerificationkeyResolverTest.java        |  1 +
 .../processor/SolrInputDocumentReaderTest.java     |  1 +
 .../algorithms/TeamDraftInterleaving.java          |  1 +
 .../org/apache/solr/ltr/model/LTRScoringModel.java | 53 +++-----------------
 .../apache/solr/ltr/model/NeuralNetworkModel.java  |  3 ++
 .../org/apache/solr/ltr/model/WrapperModel.java    | 12 ++---
 .../LTRInterleavingTransformerFactory.java         |  2 +-
 .../apache/solr/ltr/model/TestAdapterModel.java    |  1 +
 .../org/apache/solr/handler/sql/LimitStream.java   |  6 +++
 .../org/apache/solr/handler/sql/SQLHandler.java    |  3 ++
 .../org/apache/solr/handler/sql/SolrAggregate.java |  1 +
 .../apache/solr/handler/sql/SolrEnumerator.java    |  4 ++
 .../org/apache/solr/handler/sql/SolrFilter.java    |  2 +
 .../org/apache/solr/handler/sql/SolrProject.java   |  1 +
 .../org/apache/solr/handler/sql/SolrRules.java     |  4 +-
 .../java/org/apache/solr/handler/sql/SolrSort.java |  1 +
 .../org/apache/solr/handler/sql/SolrTable.java     |  6 +++
 .../org/apache/solr/handler/sql/SolrTableScan.java |  1 +
 .../handler/sql/SolrToEnumerableConverter.java     |  1 +
 .../prometheus/exporter/MetricsQueryTemplate.java  |  2 +-
 .../JsonRequestApiHeatmapFacetingTest.java         |  3 --
 .../query-guide/examples/JsonRequestApiTest.java   |  7 +--
 .../solr/client/solrj/cloud/VersionedData.java     |  2 +-
 .../org/apache/solr/common/LazySolrCluster.java    |  2 +-
 .../org/apache/solr/common/cloud/SolrZkClient.java |  1 +
 .../VMParamsAllAndReadonlyDigestZkACLProvider.java |  1 -
 ...eSetCredentialsDigestZkCredentialsProvider.java |  1 -
 .../apache/solr/common/cloud/ZkStateReader.java    |  9 +++-
 .../apache/solr/client/solrj/RoutedAliasTypes.java |  1 +
 .../org/apache/solr/client/solrj/SolrQuery.java    |  3 ++
 .../client/solrj/beans/DocumentObjectBinder.java   |  6 +--
 .../solr/client/solrj/cloud/SocketProxy.java       |  3 ++
 .../solrj/impl/BaseHttpClusterStateProvider.java   |  2 +-
 .../client/solrj/impl/CloudHttp2SolrClient.java    |  1 +
 .../client/solrj/impl/CloudLegacySolrClient.java   |  4 ++
 .../solr/client/solrj/impl/Http2SolrClient.java    |  1 +
 .../client/solrj/impl/Krb5HttpClientBuilder.java   |  4 ++
 .../solr/client/solrj/impl/LBSolrClient.java       |  6 ++-
 .../solrj/impl/SolrPortAwareCookieSpecFactory.java |  1 +
 .../apache/solr/client/solrj/io/ModelCache.java    |  1 +
 .../org/apache/solr/client/solrj/io/Tuple.java     |  1 +
 .../solr/client/solrj/io/comp/ComparatorOrder.java |  1 +
 .../solr/client/solrj/io/comp/FieldComparator.java |  4 +-
 .../apache/solr/client/solrj/io/comp/HashKey.java  |  3 ++
 .../solrj/io/comp/MultipleFieldComparator.java     |  3 +-
 .../solrj/io/comp/SingleValueComparator.java       |  2 +
 .../solr/client/solrj/io/eq/FieldEqualitor.java    |  2 +
 .../client/solrj/io/eq/MultipleFieldEqualitor.java |  1 +
 .../solr/client/solrj/io/eval/AndEvaluator.java    |  1 +
 .../solrj/io/eval/CosineDistanceEvaluator.java     |  1 +
 .../solr/client/solrj/io/eval/DbscanEvaluator.java |  1 +
 .../client/solrj/io/eval/EqualToEvaluator.java     |  1 +
 .../client/solrj/io/eval/ExclusiveOrEvaluator.java |  1 +
 .../solrj/io/eval/GreaterThanEqualToEvaluator.java |  1 +
 .../client/solrj/io/eval/GreaterThanEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/IsNullEvaluator.java |  2 +
 .../solr/client/solrj/io/eval/KmeansEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/KnnEvaluator.java    |  1 +
 .../solrj/io/eval/LessThanEqualToEvaluator.java    |  1 +
 .../client/solrj/io/eval/LessThanEvaluator.java    |  1 +
 .../solr/client/solrj/io/eval/ManyValueWorker.java |  1 +
 .../client/solrj/io/eval/MatchesEvaluator.java     |  2 +
 .../apache/solr/client/solrj/io/eval/Matrix.java   |  6 +++
 .../solr/client/solrj/io/eval/MemsetEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/NotEvaluator.java    |  3 ++
 .../client/solrj/io/eval/NotNullEvaluator.java     |  2 +
 .../solr/client/solrj/io/eval/OneValueWorker.java  |  1 +
 .../solr/client/solrj/io/eval/OrEvaluator.java     |  1 +
 .../client/solrj/io/eval/PairSortEvaluator.java    |  3 +-
 .../solrj/io/eval/RecursiveBooleanEvaluator.java   |  8 +++
 .../client/solrj/io/eval/RecursiveEvaluator.java   |  2 +
 .../solrj/io/eval/RecursiveNumericEvaluator.java   |  1 +
 .../io/eval/RecursiveNumericListEvaluator.java     |  1 +
 .../solrj/io/eval/RecursiveTemporalEvaluator.java  |  2 +
 .../solrj/io/eval/ScalarDivideEvaluator.java       |  1 +
 .../solrj/io/eval/ScalarMultiplyEvaluator.java     |  1 +
 .../solrj/io/eval/ScalarSubtractEvaluator.java     |  1 +
 .../solr/client/solrj/io/eval/SourceEvaluator.java |  2 +
 .../client/solrj/io/eval/TopFeaturesEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/TwoValueWorker.java  |  1 +
 .../client/solrj/io/graph/GatherNodesStream.java   | 14 ++++++
 .../client/solrj/io/graph/ShortestPathStream.java  |  7 +++
 .../client/solrj/io/ops/DistinctOperation.java     |  3 ++
 .../solr/client/solrj/io/ops/GroupOperation.java   |  4 ++
 .../solr/client/solrj/io/sql/DriverImpl.java       |  7 +++
 .../solr/client/solrj/io/stream/BiJoinStream.java  |  1 +
 .../client/solrj/io/stream/CalculatorStream.java   |  7 +++
 .../solrj/io/stream/CartesianProductStream.java    |  9 +++-
 .../solr/client/solrj/io/stream/CellStream.java    |  7 +++
 .../client/solrj/io/stream/CloudSolrStream.java    |  9 ++++
 .../client/solrj/io/stream/ComplementStream.java   |  7 +++
 .../solr/client/solrj/io/stream/CsvStream.java     |  7 +++
 .../solr/client/solrj/io/stream/DaemonStream.java  |  9 ++++
 .../client/solrj/io/stream/DeepRandomStream.java   |  8 +++
 .../solr/client/solrj/io/stream/DrillStream.java   |  4 ++
 .../solr/client/solrj/io/stream/EchoStream.java    |  7 +++
 .../solr/client/solrj/io/stream/EvalStream.java    |  7 +++
 .../client/solrj/io/stream/ExceptionStream.java    |  6 +++
 .../client/solrj/io/stream/ExecutorStream.java     |  8 +++
 .../solr/client/solrj/io/stream/Facet2DStream.java |  6 +++
 .../solr/client/solrj/io/stream/FacetStream.java   |  6 +++
 .../solrj/io/stream/FeaturesSelectionStream.java   |  7 +++
 .../solr/client/solrj/io/stream/FetchStream.java   |  7 +++
 .../solr/client/solrj/io/stream/GetStream.java     |  7 +++
 .../client/solrj/io/stream/HashJoinStream.java     |  6 +++
 .../client/solrj/io/stream/HashRollupStream.java   |  6 +++
 .../solr/client/solrj/io/stream/HavingStream.java  |  7 +++
 .../client/solrj/io/stream/InnerJoinStream.java    |  1 +
 .../client/solrj/io/stream/IntersectStream.java    |  7 +++
 .../solr/client/solrj/io/stream/JDBCStream.java    |  4 ++
 .../client/solrj/io/stream/JSONTupleStream.java    |  1 +
 .../solr/client/solrj/io/stream/JoinStream.java    |  5 ++
 .../solr/client/solrj/io/stream/KnnStream.java     |  6 +++
 .../solrj/io/stream/LeftOuterJoinStream.java       |  1 +
 .../solr/client/solrj/io/stream/LetStream.java     |  7 +++
 .../solr/client/solrj/io/stream/ListStream.java    |  7 +++
 .../solr/client/solrj/io/stream/MergeStream.java   |  7 +++
 .../solr/client/solrj/io/stream/ModelStream.java   |  6 +++
 .../solr/client/solrj/io/stream/NoOpStream.java    |  7 +++
 .../solr/client/solrj/io/stream/NullStream.java    |  7 +++
 .../solrj/io/stream/OuterHashJoinStream.java       |  1 +
 .../client/solrj/io/stream/ParallelListStream.java | 12 ++++-
 .../client/solrj/io/stream/ParallelStream.java     |  4 ++
 .../solr/client/solrj/io/stream/PlotStream.java    |  7 +++
 .../client/solrj/io/stream/PriorityStream.java     |  7 +++
 .../client/solrj/io/stream/PushBackStream.java     |  9 ++++
 .../client/solrj/io/stream/RandomFacadeStream.java |  6 +++
 .../solr/client/solrj/io/stream/RandomStream.java  |  6 +++
 .../solr/client/solrj/io/stream/RankStream.java    |  8 +++
 .../solr/client/solrj/io/stream/ReducerStream.java |  7 +++
 .../solr/client/solrj/io/stream/RollupStream.java  |  6 +++
 .../client/solrj/io/stream/ScoreNodesStream.java   |  7 +++
 .../client/solrj/io/stream/SearchFacadeStream.java |  6 +++
 .../solr/client/solrj/io/stream/SearchStream.java  |  6 +++
 .../solr/client/solrj/io/stream/SelectStream.java  |  7 +++
 .../solr/client/solrj/io/stream/ShuffleStream.java |  1 +
 .../solrj/io/stream/SignificantTermsStream.java    |  8 +++
 .../solr/client/solrj/io/stream/SolrStream.java    |  6 +++
 .../solr/client/solrj/io/stream/SortStream.java    | 10 ++++
 .../solr/client/solrj/io/stream/SqlStream.java     |  6 +++
 .../solr/client/solrj/io/stream/StatsStream.java   |  6 +++
 .../client/solrj/io/stream/TextLogitStream.java    |  7 +++
 .../client/solrj/io/stream/TimeSeriesStream.java   |  6 +++
 .../solr/client/solrj/io/stream/TopicStream.java   |  6 +++
 .../solr/client/solrj/io/stream/TsvStream.java     |  1 +
 .../solr/client/solrj/io/stream/TupStream.java     |  7 +++
 .../solr/client/solrj/io/stream/TupleStream.java   |  3 ++
 .../solr/client/solrj/io/stream/UniqueStream.java  |  7 +++
 .../solr/client/solrj/io/stream/ZplotStream.java   |  7 +++
 .../solrj/io/stream/expr/StreamExplanation.java    |  1 +
 .../solrj/io/stream/expr/StreamExpression.java     |  6 +--
 .../expr/StreamExpressionNamedParameter.java       |  4 +-
 .../io/stream/expr/StreamExpressionValue.java      |  2 +-
 .../client/solrj/io/stream/expr/StreamFactory.java |  4 +-
 .../client/solrj/io/stream/metrics/Bucket.java     |  1 +
 .../io/stream/metrics/CountDistinctMetric.java     |  4 ++
 .../solrj/io/stream/metrics/CountMetric.java       |  4 ++
 .../client/solrj/io/stream/metrics/MaxMetric.java  |  4 ++
 .../client/solrj/io/stream/metrics/MeanMetric.java |  4 ++
 .../client/solrj/io/stream/metrics/MinMetric.java  |  4 ++
 .../solrj/io/stream/metrics/PercentileMetric.java  |  4 ++
 .../client/solrj/io/stream/metrics/StdMetric.java  |  4 ++
 .../client/solrj/io/stream/metrics/SumMetric.java  |  4 ++
 .../solrj/io/stream/metrics/WeightedSumMetric.java |  4 ++
 .../solrj/request/CollectionAdminRequest.java      |  4 ++
 .../client/solrj/request/CoreAdminRequest.java     |  3 ++
 .../solrj/request/DelegationTokenRequest.java      |  2 -
 .../solrj/request/json/DirectJsonQueryRequest.java |  1 +
 .../solrj/request/json/JsonQueryRequest.java       |  1 +
 .../client/solrj/request/json/RangeFacetMap.java   |  1 +
 .../client/solrj/request/json/TermsFacetMap.java   |  1 +
 .../client/solrj/response/SolrResponseBase.java    |  1 +
 .../solrj/routing/NoOpReplicaListTransformer.java  |  1 +
 .../routing/ShufflingReplicaListTransformer.java   |  1 +
 .../java/org/apache/solr/common/SolrDocument.java  |  1 +
 .../org/apache/solr/common/SolrInputDocument.java  |  5 ++
 .../apache/solr/common/ToleratedUpdateError.java   |  3 ++
 .../org/apache/solr/common/cloud/ClusterState.java |  3 +-
 .../org/apache/solr/common/cloud/DocRouter.java    |  3 +-
 .../java/org/apache/solr/common/cloud/Replica.java |  3 +-
 .../org/apache/solr/common/luke/FieldFlag.java     |  1 +
 .../org/apache/solr/common/util/JavaBinCodec.java  |  1 +
 .../apache/solr/common/util/JsonTextWriter.java    | 15 ++++++
 .../org/apache/solr/common/util/NamedList.java     |  3 ++
 .../apache/solr/common/util/SolrJSONWriter.java    |  2 +
 .../org/apache/solr/common/util/TimeSource.java    |  1 +
 solr/solrj/src/java/org/noggit/CharArr.java        |  2 +-
 .../apache/solr/client/solrj/SolrExampleTests.java |  1 +
 .../client/solrj/embedded/JettyWebappTest.java     |  6 ---
 .../solrj/embedded/TestEmbeddedSolrServer.java     |  7 ---
 .../client/solrj/embedded/TestSolrProperties.java  |  6 ---
 .../impl/CloudHttp2SolrClientBadInputTest.java     |  2 -
 .../solrj/impl/CloudHttp2SolrClientTest.java       |  4 +-
 .../solrj/impl/CloudSolrClientBadInputTest.java    |  2 -
 .../client/solrj/impl/CloudSolrClientTest.java     |  4 +-
 .../impl/ConcurrentUpdateHttp2SolrClientTest.java  |  1 +
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java |  1 +
 .../solrj/impl/HttpSolrClientConPoolTest.java      |  2 +-
 .../client/solrj/io/stream/RecordCountStream.java  |  5 ++
 ...DirectJsonQueryRequestFacetingEmbeddedTest.java |  2 +-
 ...ectJsonQueryRequestFacetingIntegrationTest.java |  6 +--
 .../JsonQueryRequestFacetingIntegrationTest.java   |  6 +--
 .../json/JsonQueryRequestHeatmapFacetingTest.java  |  3 --
 .../json/JsonQueryRequestIntegrationTest.java      |  5 --
 .../solrj/request/json/QueryFacetMapTest.java      |  6 +--
 .../solrj/routing/ReplicaListTransformerTest.java  |  1 +
 .../solr/common/TestToleratedUpdateError.java      |  2 +
 solr/solrj/src/test/org/noggit/TestJSONParser.java |  4 +-
 .../src/java/org/apache/solr/JSONTestUtil.java     |  1 -
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |  3 +-
 .../cloud/AbstractBasicDistributedZkTestBase.java  |  9 ++--
 .../AbstractChaosMonkeyNothingIsSafeTestBase.java  |  2 +
 .../AbstractChaosMonkeySafeLeaderTestBase.java     |  2 +
 .../solr/cloud/AbstractFullDistribZkTestBase.java  | 22 +++-----
 .../solr/cloud/AbstractMoveReplicaTestBase.java    |  5 +-
 .../solr/cloud/AbstractRecoveryZkTestBase.java     |  2 +-
 .../AbstractRestartWhileUpdatingTestBase.java      |  3 ++
 .../solr/cloud/AbstractSyncSliceTestBase.java      |  2 +-
 .../cloud/AbstractUnloadDistributedZkTestBase.java |  1 +
 .../cloud/FullThrottleStoppableIndexingThread.java |  1 +
 .../collections/AbstractIncrementalBackupTest.java |  8 +--
 .../java/org/apache/solr/util/ErrorLogMuter.java   | 16 ++++++
 .../src/java/org/apache/solr/util/LogListener.java | 15 ++++++
 .../org/apache/solr/util/MockCoreContainer.java    |  1 +
 .../java/org/apache/solr/util/SSLTestConfig.java   | 10 ++++
 .../src/java/org/apache/solr/util/TestHarness.java |  2 +
 640 files changed, 2075 insertions(+), 872 deletions(-)


[solr] 08/09: SOLR-16427: Evaluate and fix errorprone rules - LogicalAssignment

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 2e3894ab1fa6699bf7f11f3e029ecd37856bd636
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Mon Oct 24 17:41:35 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - LogicalAssignment
---
 gradle/validation/error-prone.gradle                                | 1 -
 .../java/org/apache/solr/cloud/api/collections/OverseerRoleCmd.java | 4 ++--
 .../src/java/org/apache/solr/request/json/JsonQueryConverter.java   | 4 ++--
 .../src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java    | 6 ++++--
 .../src/java/org/apache/solr/cloud/AbstractMoveReplicaTestBase.java | 5 +++--
 5 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 649d6921f4b..f5a30bf1483 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -95,7 +95,6 @@ allprojects { prj ->
             '-Xep:IntLongMath:OFF',
             '-Xep:InvalidBlockTag:OFF', // this is needed for tags like lucene.internal
             '-Xep:JavaUtilDate:OFF',
-            '-Xep:LogicalAssignment:OFF',
             '-Xep:MissingSummary:OFF',
             '-Xep:MixedMutabilityReturnType:OFF',
             '-Xep:MutablePublicArray:OFF', // this should be possible...
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerRoleCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerRoleCmd.java
index 5e31cc89b7c..0d8d1be61e6 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerRoleCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerRoleCmd.java
@@ -75,8 +75,8 @@ public class OverseerRoleCmd implements CollApiCmds.CollectionApiCommand {
     }
 
     String roleName = message.getStr("role");
-    boolean nodeExists = false;
-    if (nodeExists = zkClient.exists(ZkStateReader.ROLES, true)) {
+    boolean nodeExists = zkClient.exists(ZkStateReader.ROLES, true);
+    if (nodeExists) {
       @SuppressWarnings("unchecked")
       Map<String, List<String>> tmp =
           (Map<String, List<String>>)
diff --git a/solr/core/src/java/org/apache/solr/request/json/JsonQueryConverter.java b/solr/core/src/java/org/apache/solr/request/json/JsonQueryConverter.java
index 17f168fbec5..7c0baedd9d7 100644
--- a/solr/core/src/java/org/apache/solr/request/json/JsonQueryConverter.java
+++ b/solr/core/src/java/org/apache/solr/request/json/JsonQueryConverter.java
@@ -114,8 +114,8 @@ class JsonQueryConverter {
         }
       } else {
         if (qtype.equals("param")) {
-          boolean toplevel;
-          if (toplevel = (builder.length() == 0)) {
+          boolean toplevel = builder.length() == 0;
+          if (toplevel) {
             builder.append("{!v=");
           }
           builder.append("$").append(map.get("param"));
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 f8f117020c3..d088e0819a7 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
@@ -629,7 +629,8 @@ public abstract class LBSolrClient extends SolrClient {
     long timeAllowedNano = getTimeAllowedInNanos(request);
     long timeOutTime = System.nanoTime() + timeAllowedNano;
     for (int attempts = 0; attempts < maxTries; attempts++) {
-      if (timeAllowedExceeded = isTimeExceeded(timeAllowedNano, timeOutTime)) {
+      timeAllowedExceeded = isTimeExceeded(timeAllowedNano, timeOutTime);
+      if (timeAllowedExceeded) {
         break;
       }
 
@@ -657,7 +658,8 @@ public abstract class LBSolrClient extends SolrClient {
 
     // try other standard servers that we didn't try just now
     for (ServerWrapper wrapper : zombieServers.values()) {
-      if (timeAllowedExceeded = isTimeExceeded(timeAllowedNano, timeOutTime)) {
+      timeAllowedExceeded = isTimeExceeded(timeAllowedNano, timeOutTime);
+      if (timeAllowedExceeded) {
         break;
       }
 
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractMoveReplicaTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractMoveReplicaTestBase.java
index 58a0b928150..676e4bc2e96 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractMoveReplicaTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractMoveReplicaTestBase.java
@@ -69,10 +69,11 @@ public abstract class AbstractMoveReplicaTestBase extends SolrCloudTestCase {
         .configure();
 
     // If Collection API is distributed let's not wait for Overseer.
-    if (isCollectionApiDistributed =
+    isCollectionApiDistributed =
         new CollectionAdminRequest.RequestApiDistributedProcessing()
             .process(cluster.getSolrClient())
-            .getIsCollectionApiDistributed()) {
+            .getIsCollectionApiDistributed();
+    if (isCollectionApiDistributed) {
       return;
     }
 


[solr] 04/09: SOLR-16427: Evaluate and fix errorprone rules - HidingField

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 9c612fc8e8e4dd9e5f7ce63510b99e77b6e06fcd
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Mon Oct 24 14:28:14 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - HidingField
---
 gradle/validation/error-prone.gradle               |  1 -
 .../apache/solr/logging/log4j2/Log4j2Watcher.java  | 10 +++---
 .../apache/solr/response/CSVResponseWriter.java    |  3 --
 .../solr/search/CollapsingQParserPlugin.java       |  1 -
 .../org/apache/solr/search/FunctionRangeQuery.java |  6 ++--
 .../solr/security/MultiDestinationAuditLogger.java |  1 -
 .../processor/AtomicUpdateProcessorFactory.java    |  3 --
 .../apache/solr/cloud/DocValuesNotIndexedTest.java |  7 ----
 .../org/apache/solr/cloud/SolrXmlInZkTest.java     |  7 ----
 .../org/apache/solr/cloud/ZkControllerTest.java    |  1 -
 .../solr/core/TestBackupRepositoryFactory.java     |  6 ----
 .../src/test/org/apache/solr/core/TestSolrXml.java |  7 ----
 .../solr/handler/admin/CoreAdminHandlerTest.java   |  6 ----
 .../admin/CoreMergeIndexesAdminHandlerTest.java    |  7 ----
 .../component/QueryElevationComponentTest.java     |  7 ----
 .../handler/component/TermVectorComponentTest.java |  7 ----
 .../org/apache/solr/metrics/MetricsConfigTest.java |  6 ----
 .../solr/response/TestRetrieveFieldsOptimizer.java |  7 ----
 .../apache/solr/update/SolrCmdDistributorTest.java | 30 ++++++++--------
 .../org/apache/solr/util/TestCircuitBreaker.java   |  6 ----
 .../solr/hdfs/update/HdfsTransactionLog.java       | 40 +++++++++++-----------
 .../org/apache/solr/hdfs/update/HdfsUpdateLog.java | 36 +++++++++----------
 .../SharedFileSystemAutoReplicaFailoverTest.java   | 18 +++++-----
 .../apache/solr/jaeger/TestJaegerConfigurator.java |  6 ----
 .../org/apache/solr/handler/sql/SolrRules.java     |  2 --
 .../VMParamsAllAndReadonlyDigestZkACLProvider.java |  1 -
 ...eSetCredentialsDigestZkCredentialsProvider.java |  1 -
 .../client/solrj/embedded/JettyWebappTest.java     |  6 ----
 .../solrj/embedded/TestEmbeddedSolrServer.java     |  7 ----
 .../client/solrj/embedded/TestSolrProperties.java  |  6 ----
 .../cloud/AbstractBasicDistributedZkTestBase.java  |  6 ----
 31 files changed, 69 insertions(+), 189 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index a97b42fa4e2..276bb435449 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -87,7 +87,6 @@ allprojects { prj ->
             '-Xep:EscapedEntity:OFF',
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
-            '-Xep:HidingField:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
             '-Xep:IdentityHashMapUsage:OFF',
             '-Xep:ImmutableEnumChecker:OFF',
diff --git a/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java b/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
index ff1ef3f456e..7cc2d3e66ed 100644
--- a/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
+++ b/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
@@ -79,16 +79,16 @@ public class Log4j2Watcher extends LogWatcher<LogEvent> {
 
   @SuppressForbidden(reason = "class is specific to log4j2")
   protected static class Log4j2Info extends LoggerInfo {
-    final Level level;
-
     Log4j2Info(String name, Level level) {
       super(name);
-      this.level = level;
+      if (level != null) {
+        this.level = level.toString();
+      }
     }
 
     @Override
     public String getLevel() {
-      return (level != null) ? level.toString() : null;
+      return (level != null) ? level : null;
     }
 
     @Override
@@ -98,7 +98,7 @@ public class Log4j2Watcher extends LogWatcher<LogEvent> {
 
     @Override
     public boolean isSet() {
-      return (level != null) ? true : false;
+      return level != null;
     }
   }
 
diff --git a/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java b/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
index 1935abcc8f2..05df434bf37 100644
--- a/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
@@ -20,7 +20,6 @@ import java.io.CharArrayWriter;
 import java.io.IOException;
 import java.io.Writer;
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -151,8 +150,6 @@ class CSVWriter extends TabularResponseWriter {
   int pass;
   Map<String, CSVField> csvFields = new LinkedHashMap<>();
 
-  Calendar cal; // for formatting date objects
-
   CSVStrategy strategy; // strategy for encoding the fields of documents
   CSVPrinter printer;
   ResettableFastWriter mvWriter = new ResettableFastWriter(); // writer used for multi-valued fields
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 68f7e1cdd76..3edb2073712 100644
--- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
@@ -1523,7 +1523,6 @@ public class CollapsingQParserPlugin extends QParserPlugin {
     protected final boolean needsScores;
     protected final boolean expandNulls;
     private final MergeBoost boostDocs;
-    private int docBase = 0;
 
     protected AbstractBlockCollector(
         final String collapseField,
diff --git a/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java b/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java
index ad316d710e6..db71c7d6589 100644
--- a/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/FunctionRangeQuery.java
@@ -62,7 +62,7 @@ public class FunctionRangeQuery extends ExtendedQueryBase implements PostFilter
   class FunctionRangeCollector extends DelegatingCollector {
     final Map<Object, Object> fcontext;
     final Weight weight;
-    ValueSourceScorer scorer;
+    ValueSourceScorer valueSourceScorer;
     int maxdoc;
 
     public FunctionRangeCollector(Map<Object, Object> fcontext, Weight weight) {
@@ -73,7 +73,7 @@ public class FunctionRangeQuery extends ExtendedQueryBase implements PostFilter
     @Override
     public void collect(int doc) throws IOException {
       assert doc < maxdoc;
-      if (scorer.matches(doc)) {
+      if (valueSourceScorer.matches(doc)) {
         leafDelegate.collect(doc);
       }
     }
@@ -83,7 +83,7 @@ public class FunctionRangeQuery extends ExtendedQueryBase implements PostFilter
       super.doSetNextReader(context);
       maxdoc = context.reader().maxDoc();
       FunctionValues dv = rangeFilt.getValueSource().getValues(fcontext, context);
-      scorer =
+      valueSourceScorer =
           dv.getRangeScorer(
               weight,
               context,
diff --git a/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java b/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java
index dd22abf91bd..5dc04422f78 100644
--- a/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java
+++ b/solr/core/src/java/org/apache/solr/security/MultiDestinationAuditLogger.java
@@ -54,7 +54,6 @@ public class MultiDestinationAuditLogger extends AuditLoggerPlugin implements Re
   private ResourceLoader loader;
   List<AuditLoggerPlugin> plugins = new ArrayList<>();
   List<String> pluginNames = new ArrayList<>();
-  SolrMetricsContext solrMetricsContext;
 
   /**
    * Passes the AuditEvent to all sub plugins in parallel. The event should be a {@link AuditEvent}
diff --git a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
index 5f1a3574363..8416e0eca9f 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateProcessorFactory.java
@@ -92,11 +92,8 @@ public class AtomicUpdateProcessorFactory extends UpdateRequestProcessorFactory
     @SuppressWarnings("unused")
     private final SolrQueryRequest req;
 
-    private final UpdateRequestProcessor next;
-
     private AtomicUpdateProcessor(SolrQueryRequest req, UpdateRequestProcessor next) {
       super(next);
-      this.next = next;
       this.req = req;
     }
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/DocValuesNotIndexedTest.java b/solr/core/src/test/org/apache/solr/cloud/DocValuesNotIndexedTest.java
index 7259eb2f707..f7947c5f2e4 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DocValuesNotIndexedTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DocValuesNotIndexedTest.java
@@ -19,7 +19,6 @@ package org.apache.solr.cloud;
 
 import static org.apache.lucene.tests.util.LuceneTestCase.random;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.IOException;
 import java.time.Instant;
 import java.util.ArrayList;
@@ -52,15 +51,9 @@ import org.apache.solr.common.SolrInputDocument;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 public class DocValuesNotIndexedTest extends SolrCloudTestCase {
-
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   static final String COLLECTION = "dv_coll";
 
   static volatile List<FieldProps> fieldsToTestSingle = null;
diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java b/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
index 8f9c27e4915..36413dccd02 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.cloud;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.lang.invoke.MethodHandles;
 import java.nio.charset.StandardCharsets;
@@ -27,19 +26,13 @@ import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.core.NodeConfig;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class SolrXmlInZkTest extends SolrTestCaseJ4 {
-
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   protected ZkTestServer zkServer;
 
   protected Path zkDir;
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
index 78cc987b76e..0ddf70c360f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
@@ -409,7 +409,6 @@ public class ZkControllerTest extends SolrTestCaseJ4 {
   private static class MockCoreContainer extends CoreContainer {
     UpdateShardHandler updateShardHandler =
         new UpdateShardHandler(UpdateShardHandlerConfig.DEFAULT);
-    SolrMetricManager metricManager;
 
     public MockCoreContainer() {
       super(SolrXmlConfig.fromString(TEST_PATH(), "<solr/>"));
diff --git a/solr/core/src/test/org/apache/solr/core/TestBackupRepositoryFactory.java b/solr/core/src/test/org/apache/solr/core/TestBackupRepositoryFactory.java
index 7417ccb0c2f..34551c9b342 100644
--- a/solr/core/src/test/org/apache/solr/core/TestBackupRepositoryFactory.java
+++ b/solr/core/src/test/org/apache/solr/core/TestBackupRepositoryFactory.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.core;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.util.Arrays;
 import java.util.Collections;
@@ -31,14 +30,9 @@ import org.apache.solr.core.backup.repository.LocalFileSystemRepository;
 import org.apache.solr.schema.FieldType;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 public class TestBackupRepositoryFactory extends SolrTestCaseJ4 {
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   // tmp dir, cleaned up automatically.
   private static File solrHome = null;
   private static SolrResourceLoader loader = null;
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
index 00391178bd0..7379cc906bb 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
@@ -18,7 +18,6 @@ package org.apache.solr.core;
 
 import static org.hamcrest.core.StringContains.containsString;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -36,14 +35,8 @@ import org.apache.solr.update.UpdateShardHandlerConfig;
 import org.hamcrest.MatcherAssert;
 import org.junit.Before;
 import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 public class TestSolrXml extends SolrTestCaseJ4 {
-
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   // tmp dir, cleaned up automatically.
   private Path solrHome;
 
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
index 11a11cab478..e39bd902eea 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.handler.admin;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
@@ -45,10 +44,7 @@ import org.apache.solr.core.CoreDescriptor;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.response.SolrQueryResponse;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 public class CoreAdminHandlerTest extends SolrTestCaseJ4 {
 
@@ -57,8 +53,6 @@ public class CoreAdminHandlerTest extends SolrTestCaseJ4 {
     initCore("solrconfig.xml", "schema.xml");
   }
 
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   public String getCoreName() {
     return this.getClass().getName() + "_sys_vars";
   }
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
index eda0d06eba1..7de13638991 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.handler.admin;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.io.IOException;
 import org.apache.lucene.store.Directory;
@@ -30,21 +29,15 @@ import org.apache.solr.core.MockFSDirectoryFactory;
 import org.apache.solr.core.SolrCore;
 import org.apache.solr.response.SolrQueryResponse;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 public class CoreMergeIndexesAdminHandlerTest extends SolrTestCaseJ4 {
-
   @BeforeClass
   public static void beforeClass() throws Exception {
     useFactory(FailingDirectoryFactory.class.getName());
     initCore("solrconfig.xml", "schema.xml");
   }
 
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   private static String WRAPPED_FAILING_MSG = "Error handling 'mergeindexes' action";
   private static String FAILING_CAUSE_MSG =
       "Creating a directory using FailingDirectoryFactoryException always fails";
diff --git a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
index e0f0e14a534..43d3955519b 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
@@ -21,7 +21,6 @@ import static org.apache.solr.common.params.CursorMarkParams.CURSOR_MARK_PARAM;
 import static org.apache.solr.common.params.CursorMarkParams.CURSOR_MARK_START;
 import static org.apache.solr.common.util.Utils.fromJSONString;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
@@ -48,17 +47,11 @@ import org.apache.solr.search.CollapsingQParserPlugin;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.junit.Before;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class QueryElevationComponentTest extends SolrTestCaseJ4 {
-
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @BeforeClass
diff --git a/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentTest.java
index f5d206aa3a2..670a4d8aef2 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentTest.java
@@ -16,23 +16,16 @@
  */
 package org.apache.solr.handler.component;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.common.params.TermVectorParams;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 /** */
 public class TermVectorComponentTest extends SolrTestCaseJ4 {
-
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   // ensure that we operate correctly with all valid combinations of the uniqueKey being
   // stored and/or in docValues.
   @BeforeClass
diff --git a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
index 45c1e3f7601..eff63f4db72 100644
--- a/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/MetricsConfigTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.metrics;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import com.codahale.metrics.Clock;
 import com.codahale.metrics.ExponentiallyDecayingReservoir;
 import com.codahale.metrics.Reservoir;
@@ -28,15 +27,10 @@ import java.util.Properties;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.NodeConfig;
 import org.apache.solr.core.SolrXmlConfig;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 /** */
 public class MetricsConfigTest extends SolrTestCaseJ4 {
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   @Test
   public void testDefaults() {
     NodeConfig cfg = loadNodeConfig("solr-metricsconfig.xml");
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 66c4f80edb6..aa147068bd0 100644
--- a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
+++ b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
@@ -22,7 +22,6 @@ import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.ALL_FROM_DV;
 import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.ALL_FROM_STORED;
 import static org.apache.solr.search.SolrReturnFields.FIELD_SOURCES.MIXED_SOURCES;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.time.Instant;
@@ -60,15 +59,9 @@ import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.search.SolrReturnFields;
 import org.apache.solr.util.RefCounted;
 import org.junit.BeforeClass;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 public class TestRetrieveFieldsOptimizer extends SolrTestCaseJ4 {
-
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   @BeforeClass
   public static void initManagedSchemaCore() throws Exception {
     // This testing approach means no schema file or per-test temp solr-home!
diff --git a/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java b/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
index 43bc7203277..04046d0e5f9 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrCmdDistributorTest.java
@@ -70,7 +70,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
     STANDARD
   };
 
-  private AtomicInteger id = new AtomicInteger();
+  private final AtomicInteger uniqueId = new AtomicInteger();
 
   @BeforeClass
   public static void beforeClass() {
@@ -175,7 +175,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(new StdNode(new ZkCoreNodeProps(nodeProps)));
 
       // add one doc to controlClient
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       params = new ModifiableSolrParams();
 
       cmdDistrib.distribAdd(cmd, nodes, params);
@@ -201,12 +201,12 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
     int id2;
     // add another 2 docs to control and 3 to client
     try (SolrCmdDistributor cmdDistrib = new SolrCmdDistributor(updateShardHandler)) {
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       params = new ModifiableSolrParams();
       params.set(DistributedUpdateProcessor.COMMIT_END_POINT, true);
       cmdDistrib.distribAdd(cmd, nodes, params);
 
-      id2 = id.incrementAndGet();
+      id2 = uniqueId.incrementAndGet();
       AddUpdateCommand cmd2 = new AddUpdateCommand(null);
       cmd2.solrDoc = sdoc("id", id2);
 
@@ -215,7 +215,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       cmdDistrib.distribAdd(cmd2, nodes, params);
 
       AddUpdateCommand cmd3 = new AddUpdateCommand(null);
-      cmd3.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd3.solrDoc = sdoc("id", uniqueId.incrementAndGet());
 
       params = new ModifiableSolrParams();
       params.set(DistributedUpdateProcessor.COMMIT_END_POINT, true);
@@ -290,7 +290,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
           nodes.add(new StdNode(new ZkCoreNodeProps(nodeProps)));
         }
         AddUpdateCommand c = new AddUpdateCommand(null);
-        c.solrDoc = sdoc("id", id.incrementAndGet());
+        c.solrDoc = sdoc("id", uniqueId.incrementAndGet());
         if (nodes.size() > 0) {
           params = new ModifiableSolrParams();
           cmdDistrib.distribAdd(c, nodes, params);
@@ -408,7 +408,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
 
       for (int i = 0; i < 5; i++) {
         AddUpdateCommand cmd = new AddUpdateCommand(null);
-        int currentId = id.incrementAndGet();
+        int currentId = uniqueId.incrementAndGet();
         cmd.solrDoc = sdoc("id", currentId);
         ModifiableSolrParams params = new ModifiableSolrParams();
         cmdDistrib.distribAdd(cmd, nodes, params);
@@ -483,7 +483,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       }
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
       RollupRequestReplicationTracker rollupReqTracker = new RollupRequestReplicationTracker();
       LeaderRequestReplicationTracker leaderReqTracker =
@@ -539,7 +539,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(retryNode);
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
 
       cmdDistrib.distribAdd(cmd, nodes, params);
@@ -665,7 +665,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(retryNode);
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
 
       CommitUpdateCommand ccmd = new CommitUpdateCommand(null, false);
@@ -723,7 +723,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(retryNode);
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
 
       CommitUpdateCommand ccmd = new CommitUpdateCommand(null, false);
@@ -773,7 +773,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(retryNode);
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
 
       CommitUpdateCommand ccmd = new CommitUpdateCommand(null, false);
@@ -821,7 +821,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(retryNode);
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
 
       cmdDistrib.distribAdd(cmd, nodes, params);
@@ -862,7 +862,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
       nodes.add(retryNode);
 
       AddUpdateCommand cmd = new AddUpdateCommand(null);
-      cmd.solrDoc = sdoc("id", id.incrementAndGet());
+      cmd.solrDoc = sdoc("id", uniqueId.incrementAndGet());
       ModifiableSolrParams params = new ModifiableSolrParams();
 
       cmdDistrib.distribAdd(cmd, nodes, params);
@@ -936,7 +936,7 @@ public class SolrCmdDistributorTest extends BaseDistributedSearchTestCase {
           nodes.add(node);
         }
         AddUpdateCommand c = new AddUpdateCommand(null);
-        c.solrDoc = sdoc("id", id.incrementAndGet());
+        c.solrDoc = sdoc("id", uniqueId.incrementAndGet());
         if (nodes.size() > 0) {
           params = new ModifiableSolrParams();
           cmdDistrib.distribAdd(c, nodes, params, false);
diff --git a/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java b/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java
index e39b63d7f39..c89b92281f6 100644
--- a/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java
+++ b/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java
@@ -19,7 +19,6 @@ package org.apache.solr.util;
 
 import static org.hamcrest.CoreMatchers.containsString;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -42,9 +41,6 @@ import org.apache.solr.util.circuitbreaker.MemoryCircuitBreaker;
 import org.hamcrest.MatcherAssert;
 import org.junit.After;
 import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,8 +48,6 @@ public class TestCircuitBreaker extends SolrTestCaseJ4 {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   private static final int NUM_DOCS = 20;
 
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   @BeforeClass
   public static void setUpClass() throws Exception {
     System.setProperty("filterCache.enabled", "false");
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java
index 83664b30670..c7bca1b9aa6 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java
@@ -378,7 +378,7 @@ public class HdfsTransactionLog extends TransactionLog {
   }
 
   public class HDFSLogReader extends LogReader {
-    FSDataFastInputStream fis;
+    FSDataFastInputStream hdfsFis;
     private LogCodec codec = new LogCodec(resolver);
     private long sz;
 
@@ -397,7 +397,7 @@ public class HdfsTransactionLog extends TransactionLog {
         }
 
         FSDataInputStream fdis = fs.open(tlogFile);
-        fis = new FSDataFastInputStream(fdis, pos);
+        hdfsFis = new FSDataFastInputStream(fdis, pos);
       } catch (IOException e) {
         throw new RuntimeException(e);
       }
@@ -411,7 +411,7 @@ public class HdfsTransactionLog extends TransactionLog {
      */
     @Override
     public Object next() throws IOException, InterruptedException {
-      long pos = fis.position();
+      long pos = hdfsFis.position();
 
       synchronized (HdfsTransactionLog.this) {
         if (trace) {
@@ -428,28 +428,28 @@ public class HdfsTransactionLog extends TransactionLog {
       if (pos >= sz) {
         log.info("Read available inputstream data, opening new inputstream pos={} sz={}", pos, sz);
 
-        fis.close();
+        hdfsFis.close();
         initStream(pos);
       }
 
       if (pos == 0) {
-        readHeader(fis);
+        readHeader(hdfsFis);
 
         // shouldn't currently happen - header and first record are currently written at the same
         // time
         synchronized (HdfsTransactionLog.this) {
-          if (fis.position() >= getLogSize()) {
+          if (hdfsFis.position() >= getLogSize()) {
             return null;
           }
-          pos = fis.position();
+          pos = hdfsFis.position();
         }
       }
 
-      Object o = codec.readVal(fis);
+      Object o = codec.readVal(hdfsFis);
 
       // skip over record size
-      int size = fis.readInt();
-      assert size == fis.position() - pos - 4;
+      int size = hdfsFis.readInt();
+      assert size == hdfsFis.position() - pos - 4;
 
       return o;
     }
@@ -457,7 +457,7 @@ public class HdfsTransactionLog extends TransactionLog {
     @Override
     public void close() {
       try {
-        fis.close();
+        hdfsFis.close();
       } catch (IOException e) {
         throw new RuntimeException(e);
       }
@@ -471,7 +471,7 @@ public class HdfsTransactionLog extends TransactionLog {
             + "file="
             + tlogFile
             + ", position="
-            + fis.position()
+            + hdfsFis.position()
             + ", end="
             + getLogSize()
             + "}";
@@ -480,7 +480,7 @@ public class HdfsTransactionLog extends TransactionLog {
 
     @Override
     public long currentPos() {
-      return fis.position();
+      return hdfsFis.position();
     }
 
     @Override
@@ -518,7 +518,7 @@ public class HdfsTransactionLog extends TransactionLog {
           if (version < lastVersion) inOrder = false;
           lastVersion = version;
         }
-        fis.seek(startingPos);
+        hdfsFis.seek(startingPos);
       }
 
       if (inOrder) {
@@ -527,7 +527,7 @@ public class HdfsTransactionLog extends TransactionLog {
         if (iterator == null) iterator = versionToPos.values().iterator();
         if (!iterator.hasNext()) return null;
         long pos = iterator.next();
-        if (pos != currentPos()) fis.seek(pos);
+        if (pos != currentPos()) hdfsFis.seek(pos);
         return super.next();
       }
     }
@@ -648,18 +648,18 @@ public class HdfsTransactionLog extends TransactionLog {
 }
 
 class FSDataFastInputStream extends FastInputStream {
-  private FSDataInputStream fis;
+  private final FSDataInputStream hdfsFis;
 
-  public FSDataFastInputStream(FSDataInputStream fis, long chPosition) {
+  public FSDataFastInputStream(FSDataInputStream hdfsFis, long chPosition) {
     // super(null, new byte[10],0,0);    // a small buffer size for testing purposes
     super(null);
-    this.fis = fis;
+    this.hdfsFis = hdfsFis;
     super.readFromStream = chPosition;
   }
 
   @Override
   public int readWrappedStream(byte[] target, int offset, int len) throws IOException {
-    return fis.read(readFromStream, target, offset, len);
+    return hdfsFis.read(readFromStream, target, offset, len);
   }
 
   public void seek(long position) throws IOException {
@@ -688,7 +688,7 @@ class FSDataFastInputStream extends FastInputStream {
 
   @Override
   public void close() throws IOException {
-    fis.close();
+    hdfsFis.close();
   }
 
   @Override
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java
index f42b07a824a..dfe7944a15a 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java
@@ -53,7 +53,7 @@ public class HdfsUpdateLog extends UpdateLog {
 
   private final Object fsLock = new Object();
   private FileSystem fs;
-  private volatile Path tlogDir;
+  private volatile Path hdfsTlogDir;
   private final String confDir;
   private Integer tlogDfsReplication;
 
@@ -131,7 +131,7 @@ public class HdfsUpdateLog extends UpdateLog {
         if (debug) {
           log.debug(
               "UpdateHandler init: tlogDir={}, next id={}  this is a reopen or double init ... nothing else to do.",
-              tlogDir,
+              hdfsTlogDir,
               id);
         }
         versionInfo.reload();
@@ -139,16 +139,16 @@ public class HdfsUpdateLog extends UpdateLog {
       }
     }
 
-    tlogDir = new Path(dataDir, TLOG_NAME);
+    hdfsTlogDir = new Path(dataDir, TLOG_NAME);
     while (true) {
       try {
-        if (!fs.exists(tlogDir)) {
-          boolean success = fs.mkdirs(tlogDir);
+        if (!fs.exists(hdfsTlogDir)) {
+          boolean success = fs.mkdirs(hdfsTlogDir);
           if (!success) {
-            throw new RuntimeException("Could not create directory:" + tlogDir);
+            throw new RuntimeException("Could not create directory:" + hdfsTlogDir);
           }
         } else {
-          fs.mkdirs(tlogDir); // To check for safe mode
+          fs.mkdirs(hdfsTlogDir); // To check for safe mode
         }
         break;
       } catch (RemoteException e) {
@@ -161,32 +161,32 @@ public class HdfsUpdateLog extends UpdateLog {
           }
           continue;
         }
-        throw new RuntimeException("Problem creating directory: " + tlogDir, e);
+        throw new RuntimeException("Problem creating directory: " + hdfsTlogDir, e);
       } catch (IOException e) {
-        throw new RuntimeException("Problem creating directory: " + tlogDir, e);
+        throw new RuntimeException("Problem creating directory: " + hdfsTlogDir, e);
       }
     }
 
-    String[] oldBufferTlog = getBufferLogList(fs, tlogDir);
+    String[] oldBufferTlog = getBufferLogList(fs, hdfsTlogDir);
     if (oldBufferTlog != null && oldBufferTlog.length != 0) {
       existOldBufferLog = true;
     }
 
-    tlogFiles = getLogList(fs, tlogDir);
+    tlogFiles = getLogList(fs, hdfsTlogDir);
     id = getLastLogId() + 1; // add 1 since we will create a new log for the
     // next update
 
     if (debug) {
       log.debug(
           "UpdateHandler init: tlogDir={}, existing tlogs={}, next id={}",
-          tlogDir,
+          hdfsTlogDir,
           Arrays.asList(tlogFiles),
           id);
     }
 
     TransactionLog oldLog = null;
     for (String oldLogName : tlogFiles) {
-      Path f = new Path(tlogDir, oldLogName);
+      Path f = new Path(hdfsTlogDir, oldLogName);
       try {
         oldLog = new HdfsTransactionLog(fs, f, null, true, tlogDfsReplication);
         addOldLog(oldLog, false); // don't remove old logs on startup since more
@@ -253,7 +253,7 @@ public class HdfsUpdateLog extends UpdateLog {
 
   @Override
   public String getLogDir() {
-    return tlogDir.toUri().toString();
+    return hdfsTlogDir.toUri().toString();
   }
 
   public static String[] getBufferLogList(FileSystem fs, Path tlogDir) {
@@ -321,17 +321,17 @@ public class HdfsUpdateLog extends UpdateLog {
         String.format(Locale.ROOT, LOG_FILENAME_PATTERN, BUFFER_TLOG_NAME, System.nanoTime());
     bufferTlog =
         new HdfsTransactionLog(
-            fs, new Path(tlogDir, newLogName), globalStrings, tlogDfsReplication);
+            fs, new Path(hdfsTlogDir, newLogName), globalStrings, tlogDfsReplication);
     bufferTlog.isBuffer = true;
   }
 
   @Override
   protected void deleteBufferLogs() {
     // Delete old buffer logs
-    String[] oldBufferTlog = getBufferLogList(fs, tlogDir);
+    String[] oldBufferTlog = getBufferLogList(fs, hdfsTlogDir);
     if (oldBufferTlog != null && oldBufferTlog.length != 0) {
       for (String oldBufferLogName : oldBufferTlog) {
-        Path f = new Path(tlogDir, oldBufferLogName);
+        Path f = new Path(hdfsTlogDir, oldBufferLogName);
         try {
           boolean s = fs.delete(f, false);
           if (!s) {
@@ -351,7 +351,7 @@ public class HdfsUpdateLog extends UpdateLog {
       String newLogName = String.format(Locale.ROOT, LOG_FILENAME_PATTERN, TLOG_NAME, id);
       HdfsTransactionLog ntlog =
           new HdfsTransactionLog(
-              fs, new Path(tlogDir, newLogName), globalStrings, tlogDfsReplication);
+              fs, new Path(hdfsTlogDir, newLogName), globalStrings, tlogDfsReplication);
       tlog = ntlog;
     }
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java
index 98a1d771df9..817083afd10 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java
@@ -30,7 +30,6 @@ import java.util.concurrent.CompletionService;
 import java.util.concurrent.ExecutorCompletionService;
 import java.util.concurrent.Future;
 import java.util.concurrent.SynchronousQueue;
-import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -89,15 +88,6 @@ public class SharedFileSystemAutoReplicaFailoverTest extends AbstractFullDistrib
   private static final boolean DEBUG = true;
   private static MiniDFSCluster dfsCluster;
 
-  ThreadPoolExecutor executor =
-      new ExecutorUtil.MDCAwareThreadPoolExecutor(
-          0,
-          Integer.MAX_VALUE,
-          5,
-          TimeUnit.SECONDS,
-          new SynchronousQueue<>(),
-          new SolrNamedThreadFactory("testExecutor"));
-
   CompletionService<Object> completionService;
   Set<Future<Object>> pending;
   private final Map<String, String> collectionUlogDirMap = new HashMap<>();
@@ -141,6 +131,14 @@ public class SharedFileSystemAutoReplicaFailoverTest extends AbstractFullDistrib
   }
 
   public SharedFileSystemAutoReplicaFailoverTest() {
+    executor =
+        new ExecutorUtil.MDCAwareThreadPoolExecutor(
+            0,
+            Integer.MAX_VALUE,
+            5,
+            TimeUnit.SECONDS,
+            new SynchronousQueue<>(),
+            new SolrNamedThreadFactory("testExecutor"));
     completionService = new ExecutorCompletionService<>(executor);
     pending = new HashSet<>();
   }
diff --git a/solr/modules/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java b/solr/modules/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
index 4a8cdd9498b..4759c5ced19 100644
--- a/solr/modules/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
+++ b/solr/modules/jaegertracer-configurator/src/test/org/apache/solr/jaeger/TestJaegerConfigurator.java
@@ -18,7 +18,6 @@
 package org.apache.solr.jaeger;
 
 import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import io.opentracing.util.GlobalTracer;
 import java.util.concurrent.TimeUnit;
 import org.apache.solr.SolrTestCaseJ4;
@@ -30,15 +29,10 @@ import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.TimeSource;
 import org.apache.solr.util.TimeOut;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.TestRule;
 
 @ThreadLeakLingering(linger = 10)
 public class TestJaegerConfigurator extends SolrTestCaseJ4 {
-
-  @Rule public TestRule solrTestRules = new SystemPropertiesRestoreRule();
-
   @Before
   public void doBefore() {
     // to be safe because this test tests tracing.
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
index ea5ceecd6a4..a6e0b7416b2 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
@@ -104,8 +104,6 @@ class SolrRules {
    * Base class for planner rules that convert a relational expression to Solr calling convention.
    */
   abstract static class SolrConverterRule extends ConverterRule {
-    final Convention out = SolrRel.CONVENTION;
-
     SolrConverterRule(Class<? extends RelNode> clazz, String description) {
       this(clazz, relNode -> true, description);
     }
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
index 744026ee808..6ddd1a98a18 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsAllAndReadonlyDigestZkACLProvider.java
@@ -51,7 +51,6 @@ public class VMParamsAllAndReadonlyDigestZkACLProvider extends SecurityAwareZkAC
   public static final String DEFAULT_DIGEST_FILE_VM_PARAM_NAME =
       VMParamsZkCredentialsInjector.DEFAULT_DIGEST_FILE_VM_PARAM_NAME;
 
-  private ZkCredentialsInjector zkCredentialsInjector;
   private DigestZkACLProvider digestZkACLProvider;
 
   public VMParamsAllAndReadonlyDigestZkACLProvider() {
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
index d437e5b6682..0674a088616 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/VMParamsSingleSetCredentialsDigestZkCredentialsProvider.java
@@ -35,7 +35,6 @@ public class VMParamsSingleSetCredentialsDigestZkCredentialsProvider
   public static final String DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME =
       VMParamsZkCredentialsInjector.DEFAULT_DIGEST_PASSWORD_VM_PARAM_NAME;
 
-  private ZkCredentialsInjector zkCredentialsInjector;
   private DigestZkCredentialsProvider digestZkCredentialsProvider;
 
   public VMParamsSingleSetCredentialsDigestZkCredentialsProvider() {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
index 53232cb485e..7388211fec5 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.client.solrj.embedded;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.File;
 import java.net.URL;
 import java.util.Locale;
@@ -38,9 +37,6 @@ import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.session.DefaultSessionIdManager;
 import org.eclipse.jetty.webapp.WebAppContext;
-import org.junit.Rule;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 
 /**
  * @since solr 1.3
@@ -49,8 +45,6 @@ public class JettyWebappTest extends SolrTestCaseJ4 {
   int port = 0;
   static final String context = "/test";
 
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   Server server;
 
   @Override
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java
index 3c8968dc37f..11415926d65 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java
@@ -16,22 +16,15 @@
  */
 package org.apache.solr.client.solrj.embedded;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
 import org.apache.solr.core.SolrCore;
-import org.junit.Rule;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class TestEmbeddedSolrServer extends AbstractEmbeddedSolrServerTestCase {
-
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
   @Override
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
index 77667cf68cc..77a081cb602 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
@@ -16,7 +16,6 @@
  */
 package org.apache.solr.client.solrj.embedded;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import java.lang.invoke.MethodHandles;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.SolrClient;
@@ -27,10 +26,7 @@ import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.CoreAdminResponse;
 import org.apache.solr.common.SolrInputDocument;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.RuleChain;
-import org.junit.rules.TestRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,8 +36,6 @@ import org.slf4j.LoggerFactory;
 public class TestSolrProperties extends AbstractEmbeddedSolrServerTestCase {
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  @Rule public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   protected SolrClient getSolrAdmin() {
     return new EmbeddedSolrServer(cores, null);
   }
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 e60e3ab11e9..eb5ace81685 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
@@ -97,14 +97,8 @@ public abstract class AbstractBasicDistributedZkTestBase extends AbstractFullDis
 
   private final boolean onlyLeaderIndexes = random().nextBoolean();
 
-  String t1 = "a_t";
-  String i1 = "a_i1";
-  String tlong = "other_tl1";
   String tsort = "t_sortable";
 
-  String oddField = "oddField_s";
-  String missingField = "ignore_exception__missing_but_valid_field_t";
-
   private Map<String, List<SolrClient>> otherCollectionClients = new HashMap<>();
 
   private String oneInstanceCollection = "oneInstanceCollection";


[solr] 06/09: SOLR-16427: Evaluate and fix errorprone rules - ReferenceEquality

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 05f61f60bb631662035439f84edf5df9e06b5790
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Mon Oct 24 15:38:26 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - ReferenceEquality
---
 gradle/validation/error-prone.gradle                      |  1 -
 .../core/src/java/org/apache/solr/cloud/ZkController.java |  2 +-
 .../java/org/apache/solr/cloud/overseer/SliceMutator.java |  2 +-
 .../org/apache/solr/core/IndexDeletionPolicyWrapper.java  |  3 ++-
 solr/core/src/java/org/apache/solr/core/SolrConfig.java   |  2 +-
 solr/core/src/java/org/apache/solr/core/SolrCores.java    |  2 +-
 .../org/apache/solr/handler/admin/LukeRequestHandler.java |  2 +-
 .../src/java/org/apache/solr/handler/admin/SplitOp.java   |  3 ++-
 .../solr/handler/component/QueryElevationComponent.java   |  2 +-
 .../org/apache/solr/highlight/DefaultSolrHighlighter.java |  2 +-
 .../java/org/apache/solr/parser/SolrQueryParserBase.java  |  3 ++-
 solr/core/src/java/org/apache/solr/query/FilterQuery.java |  2 +-
 .../src/java/org/apache/solr/query/SolrRangeQuery.java    |  7 +++----
 .../core/src/java/org/apache/solr/schema/IndexSchema.java |  2 +-
 .../java/org/apache/solr/search/AbstractReRankQuery.java  |  2 +-
 .../java/org/apache/solr/search/ExportQParserPlugin.java  |  2 +-
 .../src/java/org/apache/solr/search/MatchCostQuery.java   |  2 +-
 solr/core/src/java/org/apache/solr/search/QueryUtils.java |  4 ++--
 .../java/org/apache/solr/search/SolrIndexSearcher.java    | 15 ++++++++-------
 .../src/java/org/apache/solr/search/SortSpecParsing.java  |  2 +-
 .../java/org/apache/solr/uninverting/FieldCacheImpl.java  |  2 +-
 .../java/org/apache/solr/update/DeleteByQueryWrapper.java |  2 +-
 .../core/src/java/org/apache/solr/util/DOMConfigNode.java |  2 +-
 .../org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java  |  2 +-
 .../org/apache/solr/cloud/MissingSegmentRecoveryTest.java |  2 +-
 .../src/test/org/apache/solr/cloud/ShardRoutingTest.java  |  2 +-
 .../src/test/org/apache/solr/cloud/TestTlogReplica.java   | 11 ++++++-----
 .../src/test/org/apache/solr/core/CoreSorterTest.java     |  2 +-
 .../org/apache/solr/core/TestSolrDeletionPolicy1.java     |  2 +-
 .../server/datanode/fsdataset/impl/BlockPoolSlice.java    |  7 ++++---
 .../src/java/org/apache/solr/common/LazySolrCluster.java  |  2 +-
 .../java/org/apache/solr/common/cloud/ZkStateReader.java  |  3 ++-
 .../apache/solr/cloud/AbstractFullDistribZkTestBase.java  |  2 +-
 .../org/apache/solr/cloud/AbstractRecoveryZkTestBase.java |  2 +-
 .../org/apache/solr/cloud/AbstractSyncSliceTestBase.java  |  2 +-
 35 files changed, 56 insertions(+), 51 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index fa61cabb918..24e830b51f6 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -107,7 +107,6 @@ allprojects { prj ->
             '-Xep:ObjectToString:OFF',
             '-Xep:ObjectsHashCodePrimitive:OFF',
             '-Xep:OperatorPrecedence:OFF',
-            '-Xep:ReferenceEquality:OFF',
             '-Xep:ReturnValueIgnored:OFF',
             '-Xep:SameNameButDifferent:OFF',
             '-Xep:ShortCircuitBoolean:OFF',
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index 3ff0a309058..14e5ab3f7a5 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -800,7 +800,7 @@ public class ZkController implements Closeable {
 
     // if this replica is not a leader, it will be put in recovery state by the leader
     String leader = cd.getCloudDescriptor().getCoreNodeName();
-    if (shard.getReplica(leader) != shard.getLeader()) return;
+    if (!Objects.equals(shard.getReplica(leader), shard.getLeader())) return;
 
     Set<String> liveNodes = getClusterState().getLiveNodes();
     int numActiveReplicas =
diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java
index 50b793beca0..f29d72f4233 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/SliceMutator.java
@@ -162,7 +162,7 @@ public class SliceMutator {
           ZkCoreNodeProps.getCoreUrl(
               replica.getBaseUrl(), replica.getStr(ZkStateReader.CORE_NAME_PROP));
 
-      if (replica == oldLeader && !coreURL.equals(leaderUrl)) {
+      if (replica.equals(oldLeader) && !coreURL.equals(leaderUrl)) {
         replica = ReplicaMutator.unsetLeader(replica);
       } else if (coreURL.equals(leaderUrl)) {
         newLeader = replica = ReplicaMutator.setLeader(replica);
diff --git a/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java b/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java
index 645add25791..8089372713e 100644
--- a/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java
+++ b/solr/core/src/java/org/apache/solr/core/IndexDeletionPolicyWrapper.java
@@ -24,6 +24,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -473,7 +474,7 @@ public final class IndexDeletionPolicyWrapper extends IndexDeletionPolicy {
     assert (list.isEmpty() || null != latestCommit) : "Code flaw: How is latestCommit not set yet?";
     assert (null == latestCommit || !latestCommit.isDeleted())
         : "Code flaw: How did the latestCommit get set but deleted?";
-    assert (list.isEmpty() || latestCommit == list.get(list.size() - 1).delegate)
+    assert (list.isEmpty() || Objects.equals(latestCommit, list.get(list.size() - 1).delegate))
         : "Code flaw, updateLatestCommit() should have already been called";
 
     final Map<Long, IndexCommit> map = new ConcurrentHashMap<>();
diff --git a/solr/core/src/java/org/apache/solr/core/SolrConfig.java b/solr/core/src/java/org/apache/solr/core/SolrConfig.java
index eb1f82e401a..a3be18156c5 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrConfig.java
@@ -417,7 +417,7 @@ public class SolrConfig implements MapSerializable {
           pe);
     }
 
-    if (version == Version.LATEST && !versionWarningAlreadyLogged.getAndSet(true)) {
+    if (Objects.equals(version, Version.LATEST) && !versionWarningAlreadyLogged.getAndSet(true)) {
       log.warn(
           "You should not use LATEST as luceneMatchVersion property: "
               + "if you use this setting, and then Solr upgrades to a newer release of Lucene, "
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCores.java b/solr/core/src/java/org/apache/solr/core/SolrCores.java
index 36847bf83db..bc868568889 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCores.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCores.java
@@ -334,7 +334,7 @@ class SolrCores {
       if (core == null) {
         core = getTransientCacheHandler().getCore(name);
       }
-      if (core != null && coreId != null && coreId != core.uniqueId) return null;
+      if (core != null && coreId != null && !coreId.equals(core.uniqueId)) return null;
 
       if (core != null && incRefCount) {
         core.open();
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
index d2b3eac9a2f..b430094a1ed 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
@@ -597,7 +597,7 @@ public class LukeRequestHandler extends RequestHandlerBase {
     if (f.getDefaultValue() != null) {
       field.add("default", f.getDefaultValue());
     }
-    if (f == uniqueField) {
+    if (f.equals(uniqueField)) {
       field.add("uniqueKey", true);
     }
     if (ft.getIndexAnalyzer().getPositionIncrementGap(f.getName()) != 0) {
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SplitOp.java b/solr/core/src/java/org/apache/solr/handler/admin/SplitOp.java
index c743b27824b..646b19e2dc2 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/SplitOp.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/SplitOp.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.TreeMap;
 import org.apache.lucene.index.MultiTerms;
 import org.apache.lucene.index.Terms;
@@ -596,7 +597,7 @@ class SplitOp implements CoreAdminHandler.CoreAdminOp {
 
     // The middle should never be the last, since that means that we won't actually do a split.
     // Minimising the error (above) should already ensure this never happens.
-    assert middle != last;
+    assert !Objects.equals(middle, last);
 
     // Make sure to include the shard's current range in the new ranges so we don't create useless
     // empty shards.
diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
index f687edf878d..6c74cd49740 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
@@ -331,7 +331,7 @@ public class QueryElevationComponent extends SearchComponent implements SolrCore
   @VisibleForTesting
   ElevationProvider getElevationProvider(IndexReader reader, SolrCore core) {
     synchronized (LOCK) {
-      if (cacheElevationProvider != null && cacheIndexReader.get() == reader) {
+      if (cacheElevationProvider != null && Objects.equals(cacheIndexReader.get(), reader)) {
         return cacheElevationProvider; // cache hit !
       }
 
diff --git a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
index 8edb9b13006..a73ed06238f 100644
--- a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
+++ b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
@@ -727,7 +727,7 @@ public class DefaultSolrHighlighter extends SolrHighlighter implements PluginInf
           // If the tokenStream is right from the term vectors, then CachingTokenFilter is
           // unnecessary. It should be okay if OffsetLimit won't get applied in this case.
           final TokenStream tempTokenStream;
-          if (tstream != tvStream) {
+          if (!tstream.equals(tvStream)) {
             if (maxCharsToAnalyze >= thisText.length()) {
               tempTokenStream = new CachingTokenFilter(tstream);
             } else {
diff --git a/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java b/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
index e8b8478fa8d..410b59efceb 100644
--- a/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
+++ b/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
@@ -27,6 +27,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.TokenFilterFactory;
@@ -729,7 +730,7 @@ public abstract class SolrQueryParserBase extends QueryBuilder {
           RawQuery rawq = (RawQuery) subq;
 
           // only look up fmap and type info on a field change
-          if (sfield != rawq.sfield) {
+          if (!Objects.equals(sfield, rawq.sfield)) {
             sfield = rawq.sfield;
             fieldValues = fmap.get(sfield);
             // If this field isn't indexed, or if it is indexed and we want to use TermsQuery, then
diff --git a/solr/core/src/java/org/apache/solr/query/FilterQuery.java b/solr/core/src/java/org/apache/solr/query/FilterQuery.java
index ce495832ae4..9039bc1f083 100644
--- a/solr/core/src/java/org/apache/solr/query/FilterQuery.java
+++ b/solr/core/src/java/org/apache/solr/query/FilterQuery.java
@@ -107,7 +107,7 @@ public class FilterQuery extends ExtendedQueryBase {
   @Override
   public Query rewrite(IndexReader reader) throws IOException {
     Query newQ = q.rewrite(reader);
-    if (newQ != q) {
+    if (!newQ.equals(q)) {
       return new FilterQuery(newQ);
     } else {
       return this;
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 fa460c71546..7451e4f7acd 100644
--- a/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/query/SolrRangeQuery.java
@@ -19,6 +19,7 @@ package org.apache.solr.query;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import org.apache.lucene.index.BaseTermsEnum;
 import org.apache.lucene.index.ImpactsEnum;
 import org.apache.lucene.index.IndexReader;
@@ -121,10 +122,8 @@ public final class SolrRangeQuery extends ExtendedQueryBase implements DocSetPro
 
     return (this.flags == other.flags)
         && (this.field.equals(other.field))
-        && (this.lower == other.lower
-            || (this.lower != null && other.lower != null && this.lower.equals(other.lower)))
-        && (this.upper == other.upper
-            || (this.upper != null && other.upper != null && this.upper.equals(other.upper)));
+        && (Objects.equals(this.lower, other.lower))
+        && (Objects.equals(this.upper, other.upper));
   }
 
   @Override
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 34e0944c547..3907c674183 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -640,7 +640,7 @@ public class IndexSchema {
         }
 
         // Unless the uniqueKeyField is marked 'required=false' then make sure it exists
-        if (Boolean.FALSE != explicitRequiredProp.get(uniqueKeyFieldName)) {
+        if (!Boolean.FALSE.equals(explicitRequiredProp.get(uniqueKeyFieldName))) {
           uniqueKeyField.required = true;
           requiredFields.add(uniqueKeyField);
         }
diff --git a/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java b/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java
index f37e2372e4a..f0ac6ed41e6 100644
--- a/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java
@@ -77,7 +77,7 @@ public abstract class AbstractReRankQuery extends RankQuery {
   @Override
   public Query rewrite(IndexReader reader) throws IOException {
     Query q = mainQuery.rewrite(reader);
-    if (q != mainQuery) {
+    if (!q.equals(mainQuery)) {
       return rewrite(q);
     }
     return super.rewrite(reader);
diff --git a/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
index 16c3393786a..e43f229d8a5 100644
--- a/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
@@ -96,7 +96,7 @@ public class ExportQParserPlugin extends QParserPlugin {
     @Override
     public Query rewrite(IndexReader reader) throws IOException {
       Query q = mainQuery.rewrite(reader);
-      if (q == mainQuery) {
+      if (q.equals(mainQuery)) {
         return super.rewrite(reader);
       } else {
         return clone().wrap(q);
diff --git a/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java b/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
index fe7160f473e..d1a4656a88c 100644
--- a/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/MatchCostQuery.java
@@ -68,7 +68,7 @@ public class MatchCostQuery extends Query {
   @Override
   public Query rewrite(IndexReader reader) throws IOException {
     final Query rewrite = delegate.rewrite(reader);
-    if (delegate == rewrite) {
+    if (delegate.equals(rewrite)) {
       return this; // unchanged
     }
     return new MatchCostQuery(rewrite, matchCost);
diff --git a/solr/core/src/java/org/apache/solr/search/QueryUtils.java b/solr/core/src/java/org/apache/solr/search/QueryUtils.java
index 2709d9d6b7a..0e43d3baac8 100644
--- a/solr/core/src/java/org/apache/solr/search/QueryUtils.java
+++ b/solr/core/src/java/org/apache/solr/search/QueryUtils.java
@@ -97,14 +97,14 @@ public class QueryUtils {
       BoostQuery bq = (BoostQuery) q;
       Query subQ = bq.getQuery();
       Query absSubQ = getAbs(subQ);
-      if (absSubQ == subQ) return q;
+      if (absSubQ.equals(subQ)) return q;
       return new BoostQuery(absSubQ, bq.getBoost());
     }
 
     if (q instanceof WrappedQuery) {
       Query subQ = ((WrappedQuery) q).getWrappedQuery();
       Query absSubQ = getAbs(subQ);
-      if (absSubQ == subQ) return q;
+      if (absSubQ.equals(subQ)) return q;
       return new WrappedQuery(absSubQ);
     }
 
diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index 86d5f549e3c..631ebdd0109 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -30,6 +30,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
@@ -523,7 +524,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
 
   @Override
   public final DirectoryReader getIndexReader() {
-    assert reader == super.getIndexReader();
+    assert Objects.equals(reader, super.getIndexReader());
     return reader;
   }
 
@@ -1191,7 +1192,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
       Query posQuery = QueryUtils.getAbs(q);
       sets[end] = getPositiveDocSet(posQuery);
       // Negative query if absolute value different from original
-      if (q == posQuery) {
+      if (Objects.equals(q, posQuery)) {
         neg[end] = false;
         // keep track of the smallest positive set.
         // This optimization is only worth it if size() is cached, which it would
@@ -1401,7 +1402,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
     // Get the absolute value (positive version) of this query. If we
     // get back the same reference, we know it's positive.
     Query absQ = QueryUtils.getAbs(query);
-    boolean positive = absQ == query;
+    boolean positive = Objects.equals(absQ, query);
 
     DocSet absAnswer = getAndCacheDocSet(absQ);
 
@@ -2322,7 +2323,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
       // Negative query if absolute value different from original
       Query absQ = QueryUtils.getAbs(a);
       DocSet positiveA = getPositiveDocSet(absQ);
-      return a == absQ ? b.intersectionSize(positiveA) : b.andNotSize(positiveA);
+      return Objects.equals(a, absQ) ? b.intersectionSize(positiveA) : b.andNotSize(positiveA);
     } else {
       // If there isn't a cache, then do a single filtered query
       TotalHitCountCollector collector = new TotalHitCountCollector();
@@ -2368,11 +2369,11 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
     DocSet positiveB = getPositiveDocSet(absB);
 
     // Negative query if absolute value different from original
-    if (a == absA) {
-      if (b == absB) return positiveA.intersectionSize(positiveB);
+    if (Objects.equals(a, absA)) {
+      if (Objects.equals(b, absB)) return positiveA.intersectionSize(positiveB);
       return positiveA.andNotSize(positiveB);
     }
-    if (b == absB) return positiveB.andNotSize(positiveA);
+    if (Objects.equals(b, absB)) return positiveB.andNotSize(positiveA);
 
     // if both negative, we need to create a temp DocSet since we
     // don't have a counting method that takes three.
diff --git a/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java b/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java
index e05aa4dee42..cb2da219f25 100644
--- a/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java
+++ b/solr/core/src/java/org/apache/solr/search/SortSpecParsing.java
@@ -213,7 +213,7 @@ public class SortSpecParsing {
     }
 
     // normalize a sort on score desc to null
-    if (sorts.size() == 1 && sorts.get(0) == SortField.FIELD_SCORE) {
+    if (sorts.size() == 1 && SortField.FIELD_SCORE.equals(sorts.get(0))) {
       return newEmptySortSpec();
     }
 
diff --git a/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java b/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
index 717b67e60e1..c4d193b79f5 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
@@ -1261,7 +1261,7 @@ public class FieldCacheImpl implements FieldCache {
   public SortedSetDocValues getDocTermOrds(LeafReader reader, String field, BytesRef prefix)
       throws IOException {
     // not a general purpose filtering mechanism...
-    assert prefix == null || prefix == INT32_TERM_PREFIX || prefix == INT64_TERM_PREFIX;
+    assert prefix == null || INT32_TERM_PREFIX.equals(prefix) || INT64_TERM_PREFIX.equals(prefix);
 
     SortedSetDocValues dv = reader.getSortedSetDocValues(field);
     if (dv != null) {
diff --git a/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java b/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
index 4edb1919fb1..ce6489f9083 100644
--- a/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
+++ b/solr/core/src/java/org/apache/solr/update/DeleteByQueryWrapper.java
@@ -56,7 +56,7 @@ final class DeleteByQueryWrapper extends Query {
   @Override
   public Query rewrite(IndexReader reader) throws IOException {
     Query rewritten = in.rewrite(reader);
-    if (rewritten != in) {
+    if (!rewritten.equals(in)) {
       return new DeleteByQueryWrapper(rewritten, schema);
     } else {
       return super.rewrite(reader);
diff --git a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
index 31d84bc05cc..f7a47b5cc93 100644
--- a/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
+++ b/solr/core/src/java/org/apache/solr/util/DOMConfigNode.java
@@ -82,7 +82,7 @@ public class DOMConfigNode implements ConfigNode {
       Node item = nlst.item(i);
       if (item.getNodeType() != Node.ELEMENT_NODE) continue;
       Boolean toContinue = fun.apply(new DOMConfigNode(item));
-      if (Boolean.FALSE == toContinue) break;
+      if (Boolean.FALSE.equals(toContinue)) break;
     }
   }
 
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 d354b69defb..edbcd5c15fd 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
@@ -126,7 +126,7 @@ public class ChaosMonkeyShardSplitTest extends ShardSplitTest {
       // SolrQuery("*:*")).getResults().getNumFound();
 
       // Wait until new leader is elected
-      while (deadJetty == leaderJetty) {
+      while (deadJetty.equals(leaderJetty)) {
         updateMappingsFromZk(this.jettys, this.clients);
         leaderJetty = shardToLeaderJetty.get("shard1");
       }
diff --git a/solr/core/src/test/org/apache/solr/cloud/MissingSegmentRecoveryTest.java b/solr/core/src/test/org/apache/solr/cloud/MissingSegmentRecoveryTest.java
index 4e071f7974f..b90554e625f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/MissingSegmentRecoveryTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/MissingSegmentRecoveryTest.java
@@ -69,7 +69,7 @@ public class MissingSegmentRecoveryTest extends SolrCloudTestCase {
 
     DocCollection state = getCollectionState(collection);
     leader = state.getLeader("shard1");
-    replica = getRandomReplica(state.getSlice("shard1"), (r) -> leader != r);
+    replica = getRandomReplica(state.getSlice("shard1"), (r) -> !leader.equals(r));
   }
 
   @After
diff --git a/solr/core/src/test/org/apache/solr/cloud/ShardRoutingTest.java b/solr/core/src/test/org/apache/solr/cloud/ShardRoutingTest.java
index 8cc54a9e25d..6722e1bfd32 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ShardRoutingTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ShardRoutingTest.java
@@ -258,7 +258,7 @@ public class ShardRoutingTest extends AbstractFullDistribZkTestBase {
     CloudJettyRunner leader = shardToLeaderJetty.get(bucket1);
     CloudJettyRunner replica = null;
     for (CloudJettyRunner r : runners) {
-      if (r != leader) replica = r;
+      if (!r.equals(leader)) replica = r;
     }
 
     long nStart = getNumRequests();
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 45586dd4858..6bf85bd7aaf 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
@@ -28,6 +28,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -774,7 +775,7 @@ public class TestTlogReplica extends SolrCloudTestCase {
     Slice slice = docCollection.getSlices().iterator().next();
     Replica newLeader = null;
     for (Replica replica : slice.getReplicas()) {
-      if (slice.getLeader() == replica) continue;
+      if (Objects.equals(slice.getLeader(), replica)) continue;
       newLeader = replica;
       break;
     }
@@ -1114,9 +1115,9 @@ public class TestTlogReplica extends SolrCloudTestCase {
         CloudDescriptor cloudDescriptor = solrCore.getCoreDescriptor().getCloudDescriptor();
         Slice slice = docCollection.getSlice(cloudDescriptor.getShardId());
         Replica replica = docCollection.getReplica(cloudDescriptor.getCoreNodeName());
-        if (slice.getLeader().equals(replica) && isLeader) {
+        if (Objects.equals(slice.getLeader(), replica) && isLeader) {
           rs.add(solrCore);
-        } else if (!slice.getLeader().equals(replica) && !isLeader) {
+        } else if (!Objects.equals(slice.getLeader(), replica) && !isLeader) {
           rs.add(solrCore);
         }
       }
@@ -1151,9 +1152,9 @@ public class TestTlogReplica extends SolrCloudTestCase {
         CloudDescriptor cloudDescriptor = solrCore.getCoreDescriptor().getCloudDescriptor();
         Slice slice = docCollection.getSlice(cloudDescriptor.getShardId());
         Replica replica = docCollection.getReplica(cloudDescriptor.getCoreNodeName());
-        if (slice.getLeader() == replica && isLeader) {
+        if (Objects.equals(slice.getLeader(), replica) && isLeader) {
           rs.add(solrRunner);
-        } else if (slice.getLeader() != replica && !isLeader) {
+        } else if (!Objects.equals(slice.getLeader(), replica) && !isLeader) {
           rs.add(solrRunner);
         }
       }
diff --git a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
index 9eca696f0e0..5e7458a6196 100644
--- a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
+++ b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
@@ -192,7 +192,7 @@ public class CoreSorterTest extends SolrTestCaseJ4 {
       CountsForEachShard lastCounts = null;
       for (CoreDescriptor resultDesc : resultDescs) {
         CountsForEachShard counts = myDescsToCounts.get(resultDesc);
-        if (counts != lastCounts) {
+        if (!counts.equals(lastCounts)) {
           resultCounts.add(counts);
         }
         lastCounts = counts;
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java b/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java
index 75efcb3b508..cf0be9581d3 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrDeletionPolicy1.java
@@ -70,7 +70,7 @@ public class TestSolrDeletionPolicy1 extends SolrTestCaseJ4 {
     Map<Long, IndexCommit> commits = delPolicy.getCommits();
     IndexCommit latest = delPolicy.getLatestCommit();
     for (Long gen : commits.keySet()) {
-      if (commits.get(gen) == latest) continue;
+      if (commits.get(gen).equals(latest)) continue;
       assertEquals(1, commits.get(gen).getSegmentCount());
     }
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java b/solr/modules/hdfs/src/test/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java
index cd13a814b63..3961fc29641 100644
--- a/solr/modules/hdfs/src/test/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java
+++ b/solr/modules/hdfs/src/test/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java
@@ -61,6 +61,7 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Objects;
 import java.util.Queue;
 import java.util.Scanner;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -538,7 +539,7 @@ public class BlockPoolSlice {
     }
 
     ReplicaInfo tmpReplicaInfo = volumeMap.addAndGet(bpid, newReplica);
-    ReplicaInfo oldReplica = (tmpReplicaInfo == newReplica) ? null
+    ReplicaInfo oldReplica = (tmpReplicaInfo.equals(newReplica)) ? null
         : tmpReplicaInfo;
     if (oldReplica != null) {
       // We have multiple replicas of the same block so decide which one
@@ -640,7 +641,7 @@ public class BlockPoolSlice {
     final ReplicaInfo replicaToDelete =
         selectReplicaToDelete(replica1, replica2);
     final ReplicaInfo replicaToKeep =
-        (replicaToDelete != replica1) ? replica1 : replica2;
+        (!Objects.equals(replicaToDelete, replica1)) ? replica1 : replica2;
     // Update volumeMap and delete the replica
     volumeMap.add(bpid, replicaToKeep);
     if (replicaToDelete != null) {
@@ -673,7 +674,7 @@ public class BlockPoolSlice {
       replicaToKeep = replica1;
     }
 
-    replicaToDelete = (replicaToKeep == replica1) ? replica2 : replica1;
+    replicaToDelete = (replicaToKeep.equals(replica1)) ? replica2 : replica1;
 
     if (LOG.isDebugEnabled()) {
       LOG.debug("resolveDuplicateReplicas decide to keep {}.  Will try to delete {}", replicaToKeep, replicaToDelete);
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java
index 295018a3372..811a0b4e2e8 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/LazySolrCluster.java
@@ -188,7 +188,7 @@ public class LazySolrCluster implements SolrCluster {
       return null;
     }
     SolrCollectionImpl existing = cached.get(key);
-    if (existing == null || existing.coll != c) {
+    if (existing == null || !Objects.equals(existing.coll, c)) {
       cached.put(key, existing = new SolrCollectionImpl(c, zkStateReader));
     }
     return existing;
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
index 2110e4a63c9..7e2c626431c 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
@@ -30,6 +30,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
@@ -352,7 +353,7 @@ public class ZkStateReader implements SolrCloseable {
                 }
               }
             }
-            stateHasChanged.set(oldState != watch.currentState);
+            stateHasChanged.set(!Objects.equals(oldState, watch.currentState));
             return watch;
           });
 
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 1f2ba6965ed..b3c7c4be31c 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
@@ -974,7 +974,7 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
               list = new ArrayList<>();
               shardToJetty.put(slice.getName(), list);
             }
-            boolean isLeader = slice.getLeader() == replica;
+            boolean isLeader = Objects.equals(slice.getLeader(), replica);
             CloudJettyRunner cjr = new CloudJettyRunner();
             cjr.jetty = jetty;
             cjr.info = replica;
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractRecoveryZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractRecoveryZkTestBase.java
index 7c8c696fa8a..2982a81f2c1 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractRecoveryZkTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractRecoveryZkTestBase.java
@@ -98,7 +98,7 @@ public abstract class AbstractRecoveryZkTestBase extends SolrCloudTestCase {
     // bring shard replica down
     DocCollection state = getCollectionState(collection);
     Replica leader = state.getLeader("shard1");
-    Replica replica = getRandomReplica(state.getSlice("shard1"), (r) -> leader != r);
+    Replica replica = getRandomReplica(state.getSlice("shard1"), (r) -> !leader.equals(r));
 
     JettySolrRunner jetty = cluster.getReplicaJetty(replica);
     jetty.stop();
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 17f03224525..1b00e68b396 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
@@ -144,7 +144,7 @@ public abstract class AbstractSyncSliceTestBase extends AbstractFullDistribZkTes
     CloudJettyRunner deadJetty = leaderJetty;
 
     // let's get the latest leader
-    while (deadJetty == leaderJetty) {
+    while (deadJetty.equals(leaderJetty)) {
       updateMappingsFromZk(this.jettys, this.clients);
       leaderJetty = shardToLeaderJetty.get("shard1");
     }


[solr] 03/09: SOLR-16427: Evaluate and fix errorprone rules - EqualsGetClass

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 c4663233c00998f7900984b7ab761b19e904db5a
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Sun Oct 23 04:34:23 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - EqualsGetClass
---
 gradle/validation/error-prone.gradle               |  1 -
 .../solr/bench/generators/RandomDataHistogram.java |  2 +-
 .../src/java/org/apache/solr/api/AnnotatedApi.java |  2 +-
 .../org/apache/solr/cloud/OverseerTaskQueue.java   |  9 ++--
 .../solr/cloud/RecoveringCoreTermWatcher.java      |  3 +-
 .../java/org/apache/solr/cloud/ZkController.java   | 14 ++----
 .../solr/cloud/api/collections/RoutedAlias.java    |  2 +-
 .../solr/cluster/placement/impl/MetricImpl.java    |  2 +-
 .../cluster/placement/impl/NodeMetricImpl.java     |  2 +-
 .../impl/SimpleClusterAbstractionsImpl.java        | 15 ++----
 .../src/java/org/apache/solr/core/CoreSorter.java  |  2 +-
 .../java/org/apache/solr/core/backup/BackupId.java |  2 +-
 .../java/org/apache/solr/core/backup/Checksum.java |  2 +-
 .../apache/solr/handler/component/ShardDoc.java    |  8 ++--
 .../handler/designer/SchemaDesignerSettings.java   |  2 +-
 .../org/apache/solr/handler/export/SortDoc.java    |  2 +-
 .../org/apache/solr/legacy/BBoxValueSource.java    |  6 +--
 .../org/apache/solr/legacy/LegacyFieldType.java    |  5 +-
 .../solr/legacy/LegacyNumericRangeQuery.java       |  6 +--
 .../solr/legacy/LegacyNumericTokenStream.java      |  6 +--
 .../org/apache/solr/metrics/SolrMetricInfo.java    | 10 ++--
 .../src/java/org/apache/solr/schema/BoolField.java |  3 +-
 .../org/apache/solr/schema/CurrencyFieldType.java  | 25 ++++------
 .../solr/schema/FileExchangeRateProvider.java      |  5 +-
 .../solr/schema/LatLonPointSpatialField.java       |  2 +-
 .../solr/schema/OpenExchangeRatesOrgProvider.java  |  6 +--
 .../solr/schema/RptWithGeometrySpatialField.java   | 10 ++--
 .../solr/search/FloatPayloadValueSource.java       | 17 +++----
 .../org/apache/solr/search/HashQParserPlugin.java  |  4 +-
 .../solr/search/IGainTermsQParserPlugin.java       |  6 +--
 .../solr/search/SignificantTermsQParserPlugin.java |  6 +--
 .../org/apache/solr/search/SolrIndexSearcher.java  |  2 +-
 .../org/apache/solr/search/ValueSourceParser.java  |  6 +--
 .../apache/solr/search/facet/AggValueSource.java   |  3 +-
 .../apache/solr/search/facet/RelatednessAgg.java   |  4 +-
 .../solr/search/facet/SimpleAggValueSource.java    |  6 +--
 .../search/function/CollapseScoreFunction.java     |  6 +--
 .../solr/search/function/DualDoubleFunction.java   |  5 +-
 .../solr/search/function/FileFloatSource.java      |  2 +-
 .../solr/search/function/MultiStringFunction.java  |  5 +-
 .../solr/search/function/OrdFieldSource.java       |  4 +-
 .../search/function/ReverseOrdFieldSource.java     |  2 +-
 .../search/function/ValueSourceRangeFilter.java    | 18 +++-----
 .../distance/GeohashHaversineFunction.java         | 11 +++--
 .../function/distance/HaversineFunction.java       | 11 +++--
 .../search/join/ChildFieldValueSourceParser.java   | 17 ++-----
 .../solr/search/join/ScoreJoinQParserPlugin.java   |  9 ++--
 .../org/apache/solr/security/BasicAuthPlugin.java  |  2 +-
 .../apache/solr/servlet/CoreContainerProvider.java |  2 +-
 .../apache/solr/spelling/PossibilityIterator.java  |  8 ++--
 .../java/org/apache/solr/spelling/ResultEntry.java | 16 +++----
 .../src/java/org/apache/solr/spelling/Token.java   | 10 ++--
 .../org/apache/solr/update/SolrCmdDistributor.java | 32 ++++---------
 .../placement/ClusterAbstractionsForTest.java      | 33 +++-----------
 .../component/DistributedFacetPivotSmallTest.java  |  6 +--
 .../solr/security/PrincipalWithUserRoles.java      |  3 +-
 .../solr/hdfs/store/blockcache/BlockCacheKey.java  | 12 ++---
 .../org/apache/solr/security/jwt/JWTPrincipal.java |  2 +-
 .../org/apache/solr/ltr/model/LTRScoringModel.java | 53 +++-------------------
 .../org/apache/solr/ltr/model/WrapperModel.java    | 12 ++---
 .../prometheus/exporter/MetricsQueryTemplate.java  |  2 +-
 .../solr/client/solrj/cloud/VersionedData.java     |  2 +-
 .../solr/client/solrj/io/comp/FieldComparator.java |  2 +-
 .../solrj/io/comp/MultipleFieldComparator.java     |  2 +-
 .../solrj/io/stream/expr/StreamExpression.java     |  6 +--
 .../expr/StreamExpressionNamedParameter.java       |  4 +-
 .../io/stream/expr/StreamExpressionValue.java      |  2 +-
 .../client/solrj/io/stream/expr/StreamFactory.java |  3 +-
 .../org/apache/solr/common/cloud/ClusterState.java |  3 +-
 .../org/apache/solr/common/cloud/DocRouter.java    |  2 +-
 .../java/org/apache/solr/common/cloud/Replica.java |  2 +-
 solr/solrj/src/test/org/noggit/TestJSONParser.java |  2 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   |  3 +-
 .../solr/cloud/AbstractFullDistribZkTestBase.java  | 17 ++-----
 74 files changed, 194 insertions(+), 347 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 73a5f7bb575..a97b42fa4e2 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:EqualsGetClass:OFF',
             '-Xep:EqualsUnsafeCast:OFF',
             '-Xep:EscapedEntity:OFF',
             '-Xep:Finally:OFF',
diff --git a/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java b/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java
index 947db5a253e..0f9062331ef 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/generators/RandomDataHistogram.java
@@ -436,7 +436,7 @@ public class RandomDataHistogram {
       @Override
       public boolean equals(Object o) {
         if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (!(o instanceof Surrogate)) return false;
         Surrogate surrogate = (Surrogate) o;
         return hashCode.equals(surrogate.hashCode)
             && identityHashcode.equals(surrogate.identityHashcode);
diff --git a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
index 12337c0e4c7..072eb246b10 100644
--- a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
+++ b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
@@ -353,7 +353,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider, Closeab
     public boolean equals(Object rhs) {
       if (null == rhs) return false;
       if (this == rhs) return true;
-      if (getClass() != rhs.getClass()) return false;
+      if (!(rhs instanceof Cmd)) return false;
 
       final Cmd rhsCast = (Cmd) rhs;
       return new EqualsBuilder()
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskQueue.java b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskQueue.java
index b14b4834a91..10137e5416e 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskQueue.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskQueue.java
@@ -20,6 +20,7 @@ import com.codahale.metrics.Timer;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.TreeSet;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -317,13 +318,9 @@ public class OverseerTaskQueue extends ZkDistributedQueue {
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof QueueEvent)) return false;
       QueueEvent other = (QueueEvent) obj;
-      if (id == null) {
-        if (other.id != null) return false;
-      } else if (!id.equals(other.id)) return false;
-      return true;
+      return Objects.equals(id, other.id);
     }
 
     private WatchedEvent event = null;
diff --git a/solr/core/src/java/org/apache/solr/cloud/RecoveringCoreTermWatcher.java b/solr/core/src/java/org/apache/solr/cloud/RecoveringCoreTermWatcher.java
index addcb71275a..1821600fc83 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RecoveringCoreTermWatcher.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RecoveringCoreTermWatcher.java
@@ -76,10 +76,9 @@ public class RecoveringCoreTermWatcher implements ZkShardTerms.CoreTermWatcher {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof RecoveringCoreTermWatcher)) return false;
 
     RecoveringCoreTermWatcher that = (RecoveringCoreTermWatcher) o;
-
     return coreDescriptor.getName().equals(that.coreDescriptor.getName());
   }
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index 47ac97e1f8b..3ff0a309058 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -186,16 +186,10 @@ public class ZkController implements Closeable {
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof ContextKey)) return false;
       ContextKey other = (ContextKey) obj;
-      if (collection == null) {
-        if (other.collection != null) return false;
-      } else if (!collection.equals(other.collection)) return false;
-      if (coreNodeName == null) {
-        if (other.coreNodeName != null) return false;
-      } else if (!coreNodeName.equals(other.coreNodeName)) return false;
-      return true;
+      return Objects.equals(collection, other.collection)
+          && Objects.equals(coreNodeName, other.coreNodeName);
     }
 
     @Override
@@ -2884,7 +2878,7 @@ public class ZkController implements Closeable {
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof UnloadCoreOnDeletedWatcher)) return false;
       UnloadCoreOnDeletedWatcher that = (UnloadCoreOnDeletedWatcher) o;
       return Objects.equals(coreNodeName, that.coreNodeName)
           && Objects.equals(shard, that.shard)
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
index 7d46eba3276..1c196dd427e 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
@@ -488,7 +488,7 @@ public abstract class RoutedAlias {
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof Action)) return false;
       Action action = (Action) o;
       return Objects.equals(sourceAlias, action.sourceAlias)
           && actionType == action.actionType
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java
index 0c6791bf708..caee316952c 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/MetricImpl.java
@@ -115,7 +115,7 @@ public abstract class MetricImpl<T> implements Metric<T> {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof MetricImpl)) {
       return false;
     }
     MetricImpl<?> that = (MetricImpl<?>) o;
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
index 9da286faeae..f5f9cd8dbd6 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
@@ -85,7 +85,7 @@ public class NodeMetricImpl<T> extends MetricImpl<T> implements NodeMetric<T> {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof NodeMetricImpl)) {
       return false;
     }
     if (!super.equals(o)) {
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
index bfd6ff77f7f..3fede98a576 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
@@ -135,13 +135,10 @@ class SimpleClusterAbstractionsImpl {
      */
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) {
-        return false;
-      }
       if (obj == this) {
         return true;
       }
-      if (obj.getClass() != getClass()) {
+      if (!(obj instanceof NodeImpl)) {
         return false;
       }
       NodeImpl other = (NodeImpl) obj;
@@ -305,13 +302,10 @@ class SimpleClusterAbstractionsImpl {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) {
-        return false;
-      }
       if (obj == this) {
         return true;
       }
-      if (obj.getClass() != getClass()) {
+      if (!(obj instanceof ShardImpl)) {
         return false;
       }
       ShardImpl other = (ShardImpl) obj;
@@ -468,13 +462,10 @@ class SimpleClusterAbstractionsImpl {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) {
-        return false;
-      }
       if (obj == this) {
         return true;
       }
-      if (obj.getClass() != getClass()) {
+      if (!(obj instanceof ReplicaImpl)) {
         return false;
       }
       ReplicaImpl other = (ReplicaImpl) obj;
diff --git a/solr/core/src/java/org/apache/solr/core/CoreSorter.java b/solr/core/src/java/org/apache/solr/core/CoreSorter.java
index 1eb59422b53..c90a3d6540a 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreSorter.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreSorter.java
@@ -155,7 +155,7 @@ public final class CoreSorter implements Comparator<CoreDescriptor> {
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof CountsForEachShard)) return false;
       CountsForEachShard that = (CountsForEachShard) o;
       return totalReplicasInDownNodes == that.totalReplicasInDownNodes
           && myReplicas == that.myReplicas
diff --git a/solr/core/src/java/org/apache/solr/core/backup/BackupId.java b/solr/core/src/java/org/apache/solr/core/backup/BackupId.java
index 8d1e2faff75..3effa11b4e8 100644
--- a/solr/core/src/java/org/apache/solr/core/backup/BackupId.java
+++ b/solr/core/src/java/org/apache/solr/core/backup/BackupId.java
@@ -62,7 +62,7 @@ public class BackupId implements Comparable<BackupId> {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof BackupId)) return false;
     BackupId backupId = (BackupId) o;
     return id == backupId.id;
   }
diff --git a/solr/core/src/java/org/apache/solr/core/backup/Checksum.java b/solr/core/src/java/org/apache/solr/core/backup/Checksum.java
index 6e97537ef03..888c6489b1d 100644
--- a/solr/core/src/java/org/apache/solr/core/backup/Checksum.java
+++ b/solr/core/src/java/org/apache/solr/core/backup/Checksum.java
@@ -32,7 +32,7 @@ public class Checksum {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof Checksum)) return false;
     Checksum checksum = (Checksum) o;
     return size == checksum.size && this.checksum == checksum.checksum;
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java b/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java
index 49c8b8824f9..3936e298703 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/ShardDoc.java
@@ -17,6 +17,7 @@
 package org.apache.solr.handler.component;
 
 import java.util.List;
+import java.util.Objects;
 import org.apache.lucene.search.FieldDoc;
 import org.apache.solr.common.util.NamedList;
 
@@ -59,13 +60,10 @@ public class ShardDoc extends FieldDoc {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof ShardDoc)) return false;
 
     ShardDoc shardDoc = (ShardDoc) o;
-
-    if (id != null ? !id.equals(shardDoc.id) : shardDoc.id != null) return false;
-
-    return true;
+    return Objects.equals(id, shardDoc.id);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java
index 5b35160fcc4..4f16464fedd 100644
--- a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java
+++ b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerSettings.java
@@ -144,7 +144,7 @@ class SchemaDesignerSettings implements SchemaDesignerConstants {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof SchemaDesignerSettings)) return false;
     SchemaDesignerSettings that = (SchemaDesignerSettings) o;
     return isDisabled == that.isDisabled
         && dynamicFieldsEnabled == that.dynamicFieldsEnabled
diff --git a/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java b/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java
index 4f0febc19d3..8e770cd371a 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java
@@ -38,7 +38,7 @@ class SortDoc implements Comparable<SortDoc> {
   @Override
   public boolean equals(Object obj) {
     // subclasses are not equal
-    if (!obj.getClass().equals(getClass())) {
+    if (!(obj instanceof SortDoc)) {
       return false;
     }
     return compareTo((SortDoc) obj) == 0;
diff --git a/solr/core/src/java/org/apache/solr/legacy/BBoxValueSource.java b/solr/core/src/java/org/apache/solr/legacy/BBoxValueSource.java
index 762581ad00f..d04f8046004 100644
--- a/solr/core/src/java/org/apache/solr/legacy/BBoxValueSource.java
+++ b/solr/core/src/java/org/apache/solr/legacy/BBoxValueSource.java
@@ -88,13 +88,11 @@ class BBoxValueSource extends ShapeValuesSource {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof BBoxValueSource)) return false;
 
     BBoxValueSource that = (BBoxValueSource) o;
 
-    if (!strategy.equals(that.strategy)) return false;
-
-    return true;
+    return strategy.equals(that.strategy);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/legacy/LegacyFieldType.java b/solr/core/src/java/org/apache/solr/legacy/LegacyFieldType.java
index 1b20bea8771..98199d62b6a 100644
--- a/solr/core/src/java/org/apache/solr/legacy/LegacyFieldType.java
+++ b/solr/core/src/java/org/apache/solr/legacy/LegacyFieldType.java
@@ -114,11 +114,10 @@ public final class LegacyFieldType extends FieldType {
     if (!super.equals(obj)) {
       return false;
     }
-    if (getClass() != obj.getClass()) return false;
+    if (!(obj instanceof LegacyFieldType)) return false;
     LegacyFieldType other = (LegacyFieldType) obj;
     if (numericPrecisionStep != other.numericPrecisionStep) return false;
-    if (numericType != other.numericType) return false;
-    return true;
+    return numericType == other.numericType;
   }
 
   /** Prints a Field for human consumption. */
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 063b474eb7c..66c5abe05d6 100644
--- a/solr/core/src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java
+++ b/solr/core/src/java/org/apache/solr/legacy/LegacyNumericRangeQuery.java
@@ -424,11 +424,11 @@ public final class LegacyNumericRangeQuery<T extends Number> extends MultiTermQu
     if (!super.equals(o)) return false;
     if (o instanceof LegacyNumericRangeQuery) {
       final LegacyNumericRangeQuery<?> q = (LegacyNumericRangeQuery<?>) o;
-      return ((q.min == null ? min == null : q.min.equals(min))
-          && (q.max == null ? max == null : q.max.equals(max))
+      return Objects.equals(q.min, min)
+          && Objects.equals(q.max, max)
           && minInclusive == q.minInclusive
           && maxInclusive == q.maxInclusive
-          && precisionStep == q.precisionStep);
+          && precisionStep == q.precisionStep;
     }
     return false;
   }
diff --git a/solr/core/src/java/org/apache/solr/legacy/LegacyNumericTokenStream.java b/solr/core/src/java/org/apache/solr/legacy/LegacyNumericTokenStream.java
index adec647c192..d115eb4fcdc 100644
--- a/solr/core/src/java/org/apache/solr/legacy/LegacyNumericTokenStream.java
+++ b/solr/core/src/java/org/apache/solr/legacy/LegacyNumericTokenStream.java
@@ -252,14 +252,12 @@ public final class LegacyNumericTokenStream extends TokenStream {
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof LegacyNumericTermAttributeImpl)) return false;
       LegacyNumericTermAttributeImpl other = (LegacyNumericTermAttributeImpl) obj;
       if (precisionStep != other.precisionStep) return false;
       if (shift != other.shift) return false;
       if (value != other.value) return false;
-      if (valueSize != other.valueSize) return false;
-      return true;
+      return valueSize == other.valueSize;
     }
   }
 
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricInfo.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricInfo.java
index 65deba69cd0..2c8b9aa95cd 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricInfo.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricInfo.java
@@ -17,6 +17,7 @@
 package org.apache.solr.metrics;
 
 import com.codahale.metrics.MetricRegistry;
+import java.util.Objects;
 import org.apache.solr.core.SolrInfoBean;
 
 /** Wraps meta-data for a metric. */
@@ -93,13 +94,12 @@ public final class SolrMetricInfo {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof SolrMetricInfo)) return false;
 
     SolrMetricInfo that = (SolrMetricInfo) o;
-
-    if (name != null ? !name.equals(that.name) : that.name != null) return false;
-    if (scope != null ? !scope.equals(that.scope) : that.scope != null) return false;
-    return category == that.category;
+    return Objects.equals(name, that.name)
+        && Objects.equals(scope, that.scope)
+        && category == that.category;
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/schema/BoolField.java b/solr/core/src/java/org/apache/solr/schema/BoolField.java
index cdaf59aaa5c..b198666cd43 100644
--- a/solr/core/src/java/org/apache/solr/schema/BoolField.java
+++ b/solr/core/src/java/org/apache/solr/schema/BoolField.java
@@ -291,8 +291,7 @@ public class BoolField extends PrimitiveFieldType {
 
     @Override
     public boolean equals(Object o) {
-      return o.getClass() == BoolFieldSource.class
-          && this.field.equals(((BoolFieldSource) o).field);
+      return (o instanceof BoolFieldSource) && this.field.equals(((BoolFieldSource) o).field);
     }
 
     private static final int hcode = OrdFieldSource.class.hashCode();
diff --git a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
index 9b48ad63e57..03603c9509b 100644
--- a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
+++ b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Currency;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.document.StoredField;
 import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.index.LeafReaderContext;
@@ -514,22 +515,20 @@ public class CurrencyFieldType extends FieldType implements SchemaAware, Resourc
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof ConvertedCurrencyValueSource)) return false;
 
       ConvertedCurrencyValueSource that = (ConvertedCurrencyValueSource) o;
 
-      return !(source != null ? !source.equals(that.source) : that.source != null)
+      return Objects.equals(source, that.source)
           && (rate == that.rate)
-          && !(targetCurrency != null
-              ? !targetCurrency.equals(that.targetCurrency)
-              : that.targetCurrency != null);
+          && Objects.equals(targetCurrency, that.targetCurrency);
     }
 
     @Override
     public int hashCode() {
       int result = targetCurrency != null ? targetCurrency.hashCode() : 0;
       result = 31 * result + (source != null ? source.hashCode() : 0);
-      result = 31 * (int) Double.doubleToLongBits(rate);
+      result = 31 * result + (int) Double.doubleToLongBits(rate);
       return result;
     }
   }
@@ -728,19 +727,13 @@ public class CurrencyFieldType extends FieldType implements SchemaAware, Resourc
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof RawCurrencyValueSource)) return false;
 
       RawCurrencyValueSource that = (RawCurrencyValueSource) o;
 
-      return !(amountValues != null
-              ? !amountValues.equals(that.amountValues)
-              : that.amountValues != null)
-          && !(currencyValues != null
-              ? !currencyValues.equals(that.currencyValues)
-              : that.currencyValues != null)
-          && !(targetCurrency != null
-              ? !targetCurrency.equals(that.targetCurrency)
-              : that.targetCurrency != null);
+      return Objects.equals(amountValues, that.amountValues)
+          && Objects.equals(currencyValues, that.currencyValues)
+          && Objects.equals(targetCurrency, that.targetCurrency);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/schema/FileExchangeRateProvider.java b/solr/core/src/java/org/apache/solr/schema/FileExchangeRateProvider.java
index 2a0b0e5e87f..18318770c1c 100644
--- a/solr/core/src/java/org/apache/solr/schema/FileExchangeRateProvider.java
+++ b/solr/core/src/java/org/apache/solr/schema/FileExchangeRateProvider.java
@@ -22,6 +22,7 @@ import java.lang.invoke.MethodHandles;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
@@ -131,11 +132,11 @@ public class FileExchangeRateProvider implements ExchangeRateProvider {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof FileExchangeRateProvider)) return false;
 
     FileExchangeRateProvider that = (FileExchangeRateProvider) o;
 
-    return !(rates != null ? !rates.equals(that.rates) : that.rates != null);
+    return Objects.equals(rates, that.rates);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java b/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java
index f5bba30093b..b6e3193111a 100644
--- a/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java
+++ b/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java
@@ -252,7 +252,7 @@ public class LatLonPointSpatialField
       @Override
       public boolean equals(Object o) {
         if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (!(o instanceof DistanceSortValueSource)) return false;
         DistanceSortValueSource that = (DistanceSortValueSource) o;
         return Double.compare(that.multiplier, multiplier) == 0
             && Objects.equals(fieldName, that.fieldName)
diff --git a/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java b/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java
index 051273dad35..58e4d9f2f85 100644
--- a/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java
+++ b/solr/core/src/java/org/apache/solr/schema/OpenExchangeRatesOrgProvider.java
@@ -24,6 +24,7 @@ import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import org.apache.lucene.util.ResourceLoader;
 import org.apache.solr.common.SolrException;
@@ -121,11 +122,10 @@ public class OpenExchangeRatesOrgProvider implements ExchangeRateProvider {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof OpenExchangeRatesOrgProvider)) return false;
 
     OpenExchangeRatesOrgProvider that = (OpenExchangeRatesOrgProvider) o;
-
-    return !(rates != null ? !rates.equals(that.rates) : that.rates != null);
+    return Objects.equals(rates, that.rates);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java b/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java
index 64188a93975..ce9a7e04669 100644
--- a/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java
+++ b/solr/core/src/java/org/apache/solr/schema/RptWithGeometrySpatialField.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.lang.ref.WeakReference;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.LeafReaderContext;
@@ -133,12 +134,11 @@ public class RptWithGeometrySpatialField
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof CachingShapeValuesource)) return false;
 
       CachingShapeValuesource that = (CachingShapeValuesource) o;
-
-      if (!targetValueSource.equals(that.targetValueSource)) return false;
-      return fieldName.equals(that.fieldName);
+      return Objects.equals(targetValueSource, that.targetValueSource)
+          && Objects.equals(fieldName, that.fieldName);
     }
 
     @Override
@@ -217,7 +217,7 @@ public class RptWithGeometrySpatialField
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof PerSegCacheKey)) return false;
 
       PerSegCacheKey that = (PerSegCacheKey) o;
 
diff --git a/solr/core/src/java/org/apache/solr/search/FloatPayloadValueSource.java b/solr/core/src/java/org/apache/solr/search/FloatPayloadValueSource.java
index 97122163b59..d6572edd31d 100644
--- a/solr/core/src/java/org/apache/solr/search/FloatPayloadValueSource.java
+++ b/solr/core/src/java/org/apache/solr/search/FloatPayloadValueSource.java
@@ -19,6 +19,7 @@ package org.apache.solr.search;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.PostingsEnum;
 import org.apache.lucene.index.Terms;
@@ -220,18 +221,14 @@ public class FloatPayloadValueSource extends ValueSource {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof FloatPayloadValueSource)) return false;
 
     FloatPayloadValueSource that = (FloatPayloadValueSource) o;
-
-    if (!indexedField.equals(that.indexedField)) return false;
-    if (indexedBytes != null ? !indexedBytes.equals(that.indexedBytes) : that.indexedBytes != null)
-      return false;
-    if (!decoder.equals(that.decoder)) return false;
-    if (payloadFunction != null
-        ? !payloadFunction.equals(that.payloadFunction)
-        : that.payloadFunction != null) return false;
-    return defaultValueSource.equals(that.defaultValueSource);
+    return Objects.equals(indexedField, that.indexedField)
+        && Objects.equals(indexedBytes, that.indexedBytes)
+        && Objects.equals(decoder, that.decoder)
+        && Objects.equals(payloadFunction, that.payloadFunction)
+        && Objects.equals(defaultValueSource, that.defaultValueSource);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java
index 1438edeabfd..89c012654ee 100644
--- a/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java
@@ -193,7 +193,7 @@ public class HashQParserPlugin extends QParserPlugin {
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof HashCodeValuesSource)) return false;
       HashCodeValuesSource that = (HashCodeValuesSource) o;
       return Arrays.equals(fields, that.fields);
     }
@@ -240,7 +240,7 @@ public class HashQParserPlugin extends QParserPlugin {
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof HashPartitionPredicate)) return false;
       HashPartitionPredicate that = (HashPartitionPredicate) o;
       return workers == that.workers && worker == that.worker;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/IGainTermsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/IGainTermsQParserPlugin.java
index 18e48191810..74b31fe04cd 100644
--- a/solr/core/src/java/org/apache/solr/search/IGainTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/IGainTermsQParserPlugin.java
@@ -18,6 +18,7 @@
 package org.apache.solr.search;
 
 import java.io.IOException;
+import java.util.Objects;
 import java.util.TreeSet;
 import org.apache.lucene.index.LeafReader;
 import org.apache.lucene.index.LeafReaderContext;
@@ -229,10 +230,9 @@ public class IGainTermsQParserPlugin extends QParserPlugin {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) return false;
-      if (obj.getClass() != getClass()) return false;
+      if (!(obj instanceof TermWithScore)) return false;
       TermWithScore other = (TermWithScore) obj;
-      return other.term.equals(this.term);
+      return Objects.equals(this.term, other.term);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/search/SignificantTermsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/SignificantTermsQParserPlugin.java
index c5b958059cd..2488df85e5b 100644
--- a/solr/core/src/java/org/apache/solr/search/SignificantTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/SignificantTermsQParserPlugin.java
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Objects;
 import java.util.TreeSet;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.PostingsEnum;
@@ -290,10 +291,9 @@ public class SignificantTermsQParserPlugin extends QParserPlugin {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) return false;
-      if (obj.getClass() != getClass()) return false;
+      if (!(obj instanceof TermWithScore)) return false;
       TermWithScore other = (TermWithScore) obj;
-      return other.term.equals(this.term);
+      return Objects.equals(this.term, other.term);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index ca084cc75c6..86d5f549e3c 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -1978,7 +1978,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
 
       TopDocs topDocs = topCollector.topDocs(0, len);
       if (cmd.getSort() != null
-          && cmd.getQuery() instanceof RankQuery == false
+          && !(cmd.getQuery() instanceof RankQuery)
           && (cmd.getFlags() & GET_SCORES) != 0) {
         TopFieldCollector.populateScores(topDocs.scoreDocs, this, query);
       }
diff --git a/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java b/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
index 89309db4ce8..43600f9ac9e 100644
--- a/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
+++ b/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
@@ -1586,7 +1586,7 @@ public abstract class ValueSourceParser implements NamedListInitializedPlugin {
 
     @Override
     public boolean equals(Object o) {
-      if (LongConstValueSource.class != o.getClass()) return false;
+      if (!(o instanceof LongConstValueSource)) return false;
       LongConstValueSource other = (LongConstValueSource) o;
       return this.constant == other.constant;
     }
@@ -1739,7 +1739,7 @@ public abstract class ValueSourceParser implements NamedListInitializedPlugin {
 
       @Override
       public boolean equals(Object o) {
-        if (this.getClass() != o.getClass()) return false;
+        if (!(o instanceof Function)) return false;
         Function other = (Function) o;
         return this.a.equals(other.a) && this.b.equals(other.b);
       }
@@ -1779,7 +1779,7 @@ public abstract class ValueSourceParser implements NamedListInitializedPlugin {
 
     @Override
     public boolean equals(Object o) {
-      if (BoolConstValueSource.class != o.getClass()) return false;
+      if (!(o instanceof BoolConstValueSource)) return false;
       BoolConstValueSource other = (BoolConstValueSource) o;
       return this.constant == other.constant;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/AggValueSource.java b/solr/core/src/java/org/apache/solr/search/facet/AggValueSource.java
index 37e74e097f5..9a31ca980f1 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/AggValueSource.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/AggValueSource.java
@@ -18,6 +18,7 @@ package org.apache.solr.search.facet;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -39,7 +40,7 @@ public abstract class AggValueSource extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    return this.getClass() == o.getClass() && name.equals(((AggValueSource) o).name);
+    return (o instanceof AggValueSource) && Objects.equals(name, ((AggValueSource) o).name);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java b/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java
index edcc9ae6df7..3c358785f40 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java
@@ -118,7 +118,7 @@ public class RelatednessAgg extends AggValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (!Objects.equals(this.getClass(), o.getClass())) {
+    if (!(o instanceof RelatednessAgg)) {
       return false;
     }
     RelatednessAgg that = (RelatednessAgg) o;
@@ -568,7 +568,7 @@ public class RelatednessAgg extends AggValueSource {
 
     @Override
     public boolean equals(Object other) {
-      if (!Objects.equals(this.getClass(), other.getClass())) {
+      if (!(other instanceof BucketData)) {
         return false;
       }
       BucketData that = (BucketData) other;
diff --git a/solr/core/src/java/org/apache/solr/search/facet/SimpleAggValueSource.java b/solr/core/src/java/org/apache/solr/search/facet/SimpleAggValueSource.java
index 49b98670fb7..c045f02a081 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/SimpleAggValueSource.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/SimpleAggValueSource.java
@@ -18,6 +18,7 @@ package org.apache.solr.search.facet;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -42,10 +43,9 @@ public abstract class SimpleAggValueSource extends AggValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (!super.equals(o)) return false;
+    if (!(o instanceof SimpleAggValueSource)) return false;
     ValueSource otherArg = ((SimpleAggValueSource) o).arg;
-    if (arg == otherArg) return true;
-    return (arg != null && arg.equals(otherArg));
+    return Objects.equals(arg, otherArg);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java b/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java
index a25043a2214..9910e543a42 100644
--- a/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java
@@ -32,11 +32,7 @@ public class CollapseScoreFunction extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (o instanceof CollapseScoreFunction) {
-      return true;
-    } else {
-      return false;
-    }
+    return o instanceof CollapseScoreFunction;
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/function/DualDoubleFunction.java b/solr/core/src/java/org/apache/solr/search/function/DualDoubleFunction.java
index d92ea9820a1..922851bc495 100644
--- a/solr/core/src/java/org/apache/solr/search/function/DualDoubleFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/DualDoubleFunction.java
@@ -18,6 +18,7 @@ package org.apache.solr.search.function;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -96,8 +97,8 @@ public abstract class DualDoubleFunction extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (this.getClass() != o.getClass()) return false;
+    if (!(o instanceof DualDoubleFunction)) return false;
     DualDoubleFunction other = (DualDoubleFunction) o;
-    return this.a.equals(other.a) && this.b.equals(other.b);
+    return Objects.equals(this.a, other.a) && Objects.equals(this.b, other.b);
   }
 }
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 9c5e5cc10cc..cc3f4d91216 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
@@ -109,7 +109,7 @@ public class FileFloatSource extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (o.getClass() != FileFloatSource.class) return false;
+    if (!(o instanceof FileFloatSource)) return false;
     FileFloatSource other = (FileFloatSource) o;
     return this.field.getName().equals(other.field.getName())
         && this.keyField.getName().equals(other.keyField.getName())
diff --git a/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java b/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java
index 3d889051779..a2e7dd7c3d2 100644
--- a/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/MultiStringFunction.java
@@ -19,6 +19,7 @@ package org.apache.solr.search.function;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -133,9 +134,9 @@ public abstract class MultiStringFunction extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (getClass() != o.getClass()) return false;
+    if (!(o instanceof MultiStringFunction)) return false;
     MultiStringFunction other = (MultiStringFunction) o;
-    return this.name().equals(other.name()) && Arrays.equals(this.sources, other.sources);
+    return Objects.equals(this.name(), other.name()) && Arrays.equals(this.sources, other.sources);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/function/OrdFieldSource.java b/solr/core/src/java/org/apache/solr/search/function/OrdFieldSource.java
index 5379c09b728..bbcb81363b5 100644
--- a/solr/core/src/java/org/apache/solr/search/function/OrdFieldSource.java
+++ b/solr/core/src/java/org/apache/solr/search/function/OrdFieldSource.java
@@ -170,9 +170,7 @@ public class OrdFieldSource extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    return o != null
-        && o.getClass() == OrdFieldSource.class
-        && this.field.equals(((OrdFieldSource) o).field);
+    return o instanceof OrdFieldSource && this.field.equals(((OrdFieldSource) o).field);
   }
 
   private static final int hcode = OrdFieldSource.class.hashCode();
diff --git a/solr/core/src/java/org/apache/solr/search/function/ReverseOrdFieldSource.java b/solr/core/src/java/org/apache/solr/search/function/ReverseOrdFieldSource.java
index 897d8f2a91c..5e725f79dab 100644
--- a/solr/core/src/java/org/apache/solr/search/function/ReverseOrdFieldSource.java
+++ b/solr/core/src/java/org/apache/solr/search/function/ReverseOrdFieldSource.java
@@ -122,7 +122,7 @@ public class ReverseOrdFieldSource extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (o == null || (o.getClass() != ReverseOrdFieldSource.class)) return false;
+    if (!(o instanceof ReverseOrdFieldSource)) return false;
     ReverseOrdFieldSource other = (ReverseOrdFieldSource) o;
     return this.field.equals(other.field);
   }
diff --git a/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java b/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
index 5060e889a10..457bc756b32 100644
--- a/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
+++ b/solr/core/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
@@ -18,6 +18,7 @@ package org.apache.solr.search.function;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -147,18 +148,13 @@ public class ValueSourceRangeFilter extends Query {
   public boolean equals(Object o) {
     if (this == o) return true;
     if (!(o instanceof ValueSourceRangeFilter)) return false;
-    ValueSourceRangeFilter other = (ValueSourceRangeFilter) o;
 
-    if (!this.valueSource.equals(other.valueSource)
-        || this.includeLower != other.includeLower
-        || this.includeUpper != other.includeUpper) {
-      return false;
-    }
-    if (this.lowerVal != null ? !this.lowerVal.equals(other.lowerVal) : other.lowerVal != null)
-      return false;
-    if (this.upperVal != null ? !this.upperVal.equals(other.upperVal) : other.upperVal != null)
-      return false;
-    return true;
+    ValueSourceRangeFilter other = (ValueSourceRangeFilter) o;
+    return Objects.equals(this.valueSource, other.valueSource)
+        && this.includeLower == other.includeLower
+        && this.includeUpper == other.includeUpper
+        && Objects.equals(this.lowerVal, other.lowerVal)
+        && Objects.equals(this.upperVal, other.upperVal);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java b/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java
index 73694bc7525..6ffb4691d8e 100644
--- a/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java
@@ -18,6 +18,7 @@ package org.apache.solr.search.function.distance;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -104,12 +105,12 @@ public class GeohashHaversineFunction extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (this.getClass() != o.getClass()) return false;
+    if (!(o instanceof GeohashHaversineFunction)) return false;
     GeohashHaversineFunction other = (GeohashHaversineFunction) o;
-    return this.name().equals(other.name())
-        && geoHash1.equals(other.geoHash1)
-        && geoHash2.equals(other.geoHash2)
-        && degreesToDist == other.degreesToDist;
+    return Objects.equals(this.name(), other.name())
+        && Objects.equals(geoHash1, other.geoHash1)
+        && Objects.equals(geoHash2, other.geoHash2)
+        && (degreesToDist == other.degreesToDist);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java b/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java
index 9060bd7612f..2a0203536f9 100644
--- a/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java
@@ -18,6 +18,7 @@ package org.apache.solr.search.function.distance;
 
 import java.io.IOException;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -123,12 +124,12 @@ public class HaversineFunction extends ValueSource {
 
   @Override
   public boolean equals(Object o) {
-    if (this.getClass() != o.getClass()) return false;
+    if (!(o instanceof HaversineFunction)) return false;
     HaversineFunction other = (HaversineFunction) o;
-    return this.name().equals(other.name())
-        && p1.equals(other.p1)
-        && p2.equals(other.p2)
-        && radius == other.radius;
+    return Objects.equals(this.name(), other.name())
+        && Objects.equals(p1, other.p1)
+        && Objects.equals(p2, other.p2)
+        && (radius == other.radius);
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/search/join/ChildFieldValueSourceParser.java b/solr/core/src/java/org/apache/solr/search/join/ChildFieldValueSourceParser.java
index 60e504cb1fa..2cd3e6a26f2 100644
--- a/solr/core/src/java/org/apache/solr/search/join/ChildFieldValueSourceParser.java
+++ b/solr/core/src/java/org/apache/solr/search/join/ChildFieldValueSourceParser.java
@@ -19,6 +19,7 @@ package org.apache.solr.search.join;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
@@ -98,19 +99,11 @@ public class ChildFieldValueSourceParser extends ValueSourceParser {
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof BlockJoinSortFieldValueSource)) return false;
       BlockJoinSortFieldValueSource other = (BlockJoinSortFieldValueSource) obj;
-      if (childField == null) {
-        if (other.childField != null) return false;
-      } else if (!childField.equals(other.childField)) return false;
-      if (childFilter == null) {
-        if (other.childFilter != null) return false;
-      } else if (!childFilter.equals(other.childFilter)) return false;
-      if (parentFilter == null) {
-        if (other.parentFilter != null) return false;
-      } else if (!parentFilter.equals(other.parentFilter)) return false;
-      return true;
+      return Objects.equals(childField, other.childField)
+          && Objects.equals(childFilter, other.childFilter)
+          && Objects.equals(parentFilter, other.parentFilter);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
index 9d94e10f548..73ca32b7167 100644
--- a/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
@@ -139,13 +139,10 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
     public boolean equals(Object obj) {
       if (this == obj) return true;
       if (!super.equals(obj)) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof OtherCoreJoinQuery)) return false;
       OtherCoreJoinQuery other = (OtherCoreJoinQuery) obj;
-      if (fromCoreOpenTime != other.fromCoreOpenTime) return false;
-      if (fromIndex == null) {
-        if (other.fromIndex != null) return false;
-      } else if (!fromIndex.equals(other.fromIndex)) return false;
-      return true;
+      return (fromCoreOpenTime == other.fromCoreOpenTime)
+          && Objects.equals(fromIndex, other.fromIndex);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
index 0fd18fa4287..87abbb0f1e4 100644
--- a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
@@ -313,7 +313,7 @@ public class BasicAuthPlugin extends AuthenticationPlugin
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof BasicAuthUserPrincipal)) return false;
       BasicAuthUserPrincipal that = (BasicAuthUserPrincipal) o;
       return Objects.equals(username, that.username) && Objects.equals(password, that.password);
     }
diff --git a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
index a32df7dee39..aad7d66946c 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -512,7 +512,7 @@ public class CoreContainerProvider implements ServletContextListener {
     @Override
     public boolean equals(Object o) {
       if (this == o) return true;
-      if (o == null || getClass() != o.getClass()) return false;
+      if (!(o instanceof ContextInitializationKey)) return false;
       ContextInitializationKey that = (ContextInitializationKey) o;
       return ctx.equals(that.ctx);
     }
diff --git a/solr/core/src/java/org/apache/solr/spelling/PossibilityIterator.java b/solr/core/src/java/org/apache/solr/spelling/PossibilityIterator.java
index e74189bf9a1..8f676fa06ea 100644
--- a/solr/core/src/java/org/apache/solr/spelling/PossibilityIterator.java
+++ b/solr/core/src/java/org/apache/solr/spelling/PossibilityIterator.java
@@ -25,6 +25,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Objects;
 import java.util.PriorityQueue;
 import java.util.Set;
 
@@ -362,12 +363,9 @@ public class PossibilityIterator implements Iterator<PossibilityIterator.RankedS
     public boolean equals(Object obj) {
       if (this == obj) return true;
       if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof RankedSpellPossibility)) return false;
       RankedSpellPossibility other = (RankedSpellPossibility) obj;
-      if (corrections == null) {
-        if (other.corrections != null) return false;
-      } else if (!corrections.equals(other.corrections)) return false;
-      return true;
+      return Objects.equals(corrections, other.corrections);
     }
 
     @Override
diff --git a/solr/core/src/java/org/apache/solr/spelling/ResultEntry.java b/solr/core/src/java/org/apache/solr/spelling/ResultEntry.java
index b9f82d0a014..67dd64f5f2d 100644
--- a/solr/core/src/java/org/apache/solr/spelling/ResultEntry.java
+++ b/solr/core/src/java/org/apache/solr/spelling/ResultEntry.java
@@ -16,6 +16,8 @@
  */
 package org.apache.solr.spelling;
 
+import java.util.Objects;
+
 public class ResultEntry {
   public Token token;
   public String suggestion;
@@ -40,16 +42,10 @@ public class ResultEntry {
   @Override
   public boolean equals(Object obj) {
     if (this == obj) return true;
-    if (obj == null) return false;
-    if (getClass() != obj.getClass()) return false;
+    if (!(obj instanceof ResultEntry)) return false;
     ResultEntry other = (ResultEntry) obj;
-    if (freq != other.freq) return false;
-    if (suggestion == null) {
-      if (other.suggestion != null) return false;
-    } else if (!suggestion.equals(other.suggestion)) return false;
-    if (token == null) {
-      if (other.token != null) return false;
-    } else if (!token.equals(other.token)) return false;
-    return true;
+    return freq == other.freq
+        && Objects.equals(suggestion, other.suggestion)
+        && Objects.equals(token, other.token);
   }
 }
diff --git a/solr/core/src/java/org/apache/solr/spelling/Token.java b/solr/core/src/java/org/apache/solr/spelling/Token.java
index 9d87eaeedb4..c625a9fbdc9 100644
--- a/solr/core/src/java/org/apache/solr/spelling/Token.java
+++ b/solr/core/src/java/org/apache/solr/spelling/Token.java
@@ -16,6 +16,7 @@
  */
 package org.apache.solr.spelling;
 
+import java.util.Objects;
 import org.apache.lucene.analysis.tokenattributes.FlagsAttribute;
 import org.apache.lucene.analysis.tokenattributes.PackedTokenAttributeImpl;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
@@ -131,13 +132,10 @@ public class Token extends PackedTokenAttributeImpl implements FlagsAttribute, P
   @Override
   public boolean equals(Object obj) {
     if (obj == this) return true;
+    if (!(obj instanceof Token)) return false;
 
-    if (obj instanceof Token) {
-      final Token other = (Token) obj;
-      return (flags == other.flags
-          && (payload == null ? other.payload == null : payload.equals(other.payload))
-          && super.equals(obj));
-    } else return false;
+    final Token other = (Token) obj;
+    return (flags == other.flags && (Objects.equals(payload, other.payload)) && super.equals(obj));
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
index cb5690e06df..af5dcaf4649 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
@@ -30,6 +30,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.CompletionService;
 import java.util.concurrent.ExecutorCompletionService;
@@ -638,24 +639,13 @@ public class SolrCmdDistributor implements Closeable {
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof StdNode)) return false;
       StdNode other = (StdNode) obj;
-      if (this.retry != other.retry) return false;
-      if (this.maxRetries != other.maxRetries) return false;
-      String baseUrl = nodeProps.getBaseUrl();
-      String coreName = nodeProps.getCoreName();
-      String url = nodeProps.getCoreUrl();
-      if (baseUrl == null) {
-        if (other.nodeProps.getBaseUrl() != null) return false;
-      } else if (!baseUrl.equals(other.nodeProps.getBaseUrl())) return false;
-      if (coreName == null) {
-        if (other.nodeProps.getCoreName() != null) return false;
-      } else if (!coreName.equals(other.nodeProps.getCoreName())) return false;
-      if (url == null) {
-        if (other.nodeProps.getCoreUrl() != null) return false;
-      } else if (!url.equals(other.nodeProps.getCoreUrl())) return false;
-      return true;
+      return (this.retry == other.retry)
+          && (this.maxRetries == other.maxRetries)
+          && Objects.equals(this.nodeProps.getBaseUrl(), other.nodeProps.getBaseUrl())
+          && Objects.equals(this.nodeProps.getCoreName(), other.nodeProps.getCoreName())
+          && Objects.equals(this.nodeProps.getCoreUrl(), other.nodeProps.getCoreUrl());
     }
 
     @Override
@@ -732,13 +722,9 @@ public class SolrCmdDistributor implements Closeable {
     public boolean equals(Object obj) {
       if (this == obj) return true;
       if (!super.equals(obj)) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof ForwardNode)) return false;
       ForwardNode other = (ForwardNode) obj;
-      if (nodeProps.getCoreUrl() == null) {
-        if (other.nodeProps.getCoreUrl() != null) return false;
-      } else if (!nodeProps.getCoreUrl().equals(other.nodeProps.getCoreUrl())) return false;
-
-      return true;
+      return Objects.equals(nodeProps.getCoreUrl(), other.nodeProps.getCoreUrl());
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java b/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
index baf24527965..c6e59364c3f 100644
--- a/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
+++ b/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
@@ -95,15 +95,8 @@ class ClusterAbstractionsForTest {
      */
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) {
-        return false;
-      }
-      if (obj == this) {
-        return true;
-      }
-      if (obj.getClass() != getClass()) {
-        return false;
-      }
+      if (obj == this) return true;
+      if (!(obj instanceof NodeImpl)) return false;
       NodeImpl other = (NodeImpl) obj;
       return Objects.equals(this.nodeName, other.nodeName);
     }
@@ -224,15 +217,8 @@ class ClusterAbstractionsForTest {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) {
-        return false;
-      }
-      if (obj == this) {
-        return true;
-      }
-      if (obj.getClass() != getClass()) {
-        return false;
-      }
+      if (obj == this) return true;
+      if (!(obj instanceof ShardImpl)) return false;
       ShardImpl other = (ShardImpl) obj;
       return Objects.equals(this.shardName, other.shardName)
           && Objects.equals(this.collection, other.collection)
@@ -302,15 +288,8 @@ class ClusterAbstractionsForTest {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj == null) {
-        return false;
-      }
-      if (obj == this) {
-        return true;
-      }
-      if (obj.getClass() != getClass()) {
-        return false;
-      }
+      if (obj == this) return true;
+      if (!(obj instanceof ReplicaImpl)) return false;
       ReplicaImpl other = (ReplicaImpl) obj;
       return Objects.equals(this.replicaName, other.replicaName)
           && Objects.equals(this.coreName, other.coreName)
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
index e844e652736..68de31559c4 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
@@ -2523,7 +2523,7 @@ public class DistributedFacetPivotSmallTest extends BaseDistributedSearchTestCas
     public boolean equals(Object obj) {
       if (this == obj) return true;
       if (obj == null) return false;
-      if (!obj.getClass().isAssignableFrom(PivotField.class)) return false;
+      if (!(obj instanceof PivotField)) return false;
       PivotField other = (PivotField) obj;
       if (getCount() != other.getCount()) return false;
       if (getField() == null) {
@@ -2568,12 +2568,12 @@ public class DistributedFacetPivotSmallTest extends BaseDistributedSearchTestCas
         }
       }
       if (getFacetQuery() == null) {
-        if (other.getFacetQuery() != null) return false;
+        return other.getFacetQuery() == null;
       } else {
         if (getFacetQuery().size() != other.getFacetQuery().size()) return false;
         for (Map.Entry<String, Integer> entry : getFacetQuery().entrySet()) {
           Integer otherQCount = other.getFacetQuery().get(entry.getKey());
-          if (otherQCount == null || !otherQCount.equals(entry.getValue())) return false;
+          if (!Objects.equals(otherQCount, entry.getValue())) return false;
         }
       }
       return true;
diff --git a/solr/core/src/test/org/apache/solr/security/PrincipalWithUserRoles.java b/solr/core/src/test/org/apache/solr/security/PrincipalWithUserRoles.java
index f5dc13179d2..b07b8e5cee3 100644
--- a/solr/core/src/test/org/apache/solr/security/PrincipalWithUserRoles.java
+++ b/solr/core/src/test/org/apache/solr/security/PrincipalWithUserRoles.java
@@ -65,10 +65,9 @@ public class PrincipalWithUserRoles implements Principal, VerifiedUserRoles {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof PrincipalWithUserRoles)) return false;
 
     PrincipalWithUserRoles that = (PrincipalWithUserRoles) o;
-
     if (!username.equals(that.username)) return false;
     return roles.equals(that.roles);
   }
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockCacheKey.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockCacheKey.java
index 29f061dbfb2..ed02ee53deb 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockCacheKey.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/store/blockcache/BlockCacheKey.java
@@ -16,6 +16,8 @@
  */
 package org.apache.solr.hdfs.store.blockcache;
 
+import java.util.Objects;
+
 /**
  * @lucene.experimental
  */
@@ -62,15 +64,9 @@ public class BlockCacheKey implements Cloneable {
   @Override
   public boolean equals(Object obj) {
     if (this == obj) return true;
-    if (obj == null) return false;
-    if (getClass() != obj.getClass()) return false;
+    if (!(obj instanceof BlockCacheKey)) return false;
     BlockCacheKey other = (BlockCacheKey) obj;
-    if (block != other.block) return false;
-    if (file != other.file) return false;
-    if (path == null) {
-      if (other.path != null) return false;
-    } else if (!path.equals(other.path)) return false;
-    return true;
+    return block == other.block && file == other.file && Objects.equals(path, other.path);
   }
 
   @Override
diff --git a/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTPrincipal.java b/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTPrincipal.java
index ec70bb2baf5..93d2764e83f 100644
--- a/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTPrincipal.java
+++ b/solr/modules/jwt-auth/src/java/org/apache/solr/security/jwt/JWTPrincipal.java
@@ -62,7 +62,7 @@ public class JWTPrincipal implements Principal {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof JWTPrincipal)) return false;
     JWTPrincipal that = (JWTPrincipal) o;
     return Objects.equals(username, that.username)
         && Objects.equals(token, that.token)
diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/model/LTRScoringModel.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/model/LTRScoringModel.java
index 48a98112970..8af64bbec5b 100644
--- a/solr/modules/ltr/src/java/org/apache/solr/ltr/model/LTRScoringModel.java
+++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/model/LTRScoringModel.java
@@ -214,53 +214,14 @@ public abstract class LTRScoringModel implements Accountable {
 
   @Override
   public boolean equals(Object obj) {
-    if (this == obj) {
-      return true;
-    }
-    if (obj == null) {
-      return false;
-    }
-    if (getClass() != obj.getClass()) {
-      return false;
-    }
+    if (this == obj) return true;
+    if (!(obj instanceof LTRScoringModel)) return false;
     final LTRScoringModel other = (LTRScoringModel) obj;
-    if (features == null) {
-      if (other.features != null) {
-        return false;
-      }
-    } else if (!features.equals(other.features)) {
-      return false;
-    }
-    if (norms == null) {
-      if (other.norms != null) {
-        return false;
-      }
-    } else if (!norms.equals(other.norms)) {
-      return false;
-    }
-    if (name == null) {
-      if (other.name != null) {
-        return false;
-      }
-    } else if (!name.equals(other.name)) {
-      return false;
-    }
-    if (params == null) {
-      if (other.params != null) {
-        return false;
-      }
-    } else if (!params.equals(other.params)) {
-      return false;
-    }
-    if (featureStoreName == null) {
-      if (other.featureStoreName != null) {
-        return false;
-      }
-    } else if (!featureStoreName.equals(other.featureStoreName)) {
-      return false;
-    }
-
-    return true;
+    return Objects.equals(features, other.features)
+        && Objects.equals(norms, other.norms)
+        && Objects.equals(name, other.name)
+        && Objects.equals(params, other.params)
+        && Objects.equals(featureStoreName, other.featureStoreName);
   }
 
   @Override
diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/model/WrapperModel.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/model/WrapperModel.java
index 19ff7c9b20d..86eb8c45564 100644
--- a/solr/modules/ltr/src/java/org/apache/solr/ltr/model/WrapperModel.java
+++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/model/WrapperModel.java
@@ -20,6 +20,7 @@ package org.apache.solr.ltr.model;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.Explanation;
 import org.apache.solr.ltr.feature.Feature;
@@ -68,15 +69,10 @@ public abstract class WrapperModel extends AdapterModel {
   public boolean equals(Object obj) {
     if (this == obj) return true;
     if (!super.equals(obj)) return false;
-    if (getClass() != obj.getClass()) return false;
+    if (!(obj instanceof WrapperModel)) return false;
     WrapperModel other = (WrapperModel) obj;
-    if (model == null) {
-      if (other.model != null) return false;
-    } else if (!model.equals(other.model)) return false;
-    if (solrResourceLoader == null) {
-      if (other.solrResourceLoader != null) return false;
-    } else if (!solrResourceLoader.equals(other.solrResourceLoader)) return false;
-    return true;
+    return Objects.equals(model, other.model)
+        && Objects.equals(solrResourceLoader, other.solrResourceLoader);
   }
 
   public WrapperModel(
diff --git a/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQueryTemplate.java b/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQueryTemplate.java
index b273b862ee4..48d02ca3a3a 100644
--- a/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQueryTemplate.java
+++ b/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/exporter/MetricsQueryTemplate.java
@@ -116,7 +116,7 @@ public class MetricsQueryTemplate {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof MetricsQueryTemplate)) return false;
     MetricsQueryTemplate that = (MetricsQueryTemplate) o;
     return name.equals(that.name)
         && Objects.equals(defaultType, that.defaultType)
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/cloud/VersionedData.java b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/cloud/VersionedData.java
index ef8aa61cd32..7a36d4578d1 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/cloud/VersionedData.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/client/solrj/cloud/VersionedData.java
@@ -82,7 +82,7 @@ public class VersionedData implements MapWriter {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof VersionedData)) return false;
     VersionedData that = (VersionedData) o;
     return version == that.version
         && Arrays.equals(data, that.data)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
index 9e2798c5c0b..e47bfd90da8 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
@@ -194,7 +194,7 @@ public class FieldComparator implements StreamComparator {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof FieldComparator)) return false;
     FieldComparator that = (FieldComparator) o;
     // comparator is based on the other fields so is not needed in this compare
     return leftFieldName.equals(that.leftFieldName)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java
index 087983e014c..9790baddf20 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java
@@ -60,7 +60,7 @@ public class MultipleFieldComparator implements StreamComparator {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof MultipleFieldComparator)) return false;
     MultipleFieldComparator that = (MultipleFieldComparator) o;
     return Arrays.equals(comps, that.comps);
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpression.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpression.java
index f2bf0fc7006..f9d2efbe844 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpression.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpression.java
@@ -99,7 +99,7 @@ public class StreamExpression implements StreamExpressionParameter {
 
   @Override
   public boolean equals(Object other) {
-    if (other.getClass() != StreamExpression.class) {
+    if (!(other instanceof StreamExpression)) {
       return false;
     }
 
@@ -112,9 +112,7 @@ public class StreamExpression implements StreamExpressionParameter {
       return false;
     }
 
-    if (null != this.functionName
-        && null != check.functionName
-        && !this.functionName.equals(check.functionName)) {
+    if (null != this.functionName && !this.functionName.equals(check.functionName)) {
       return false;
     }
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionNamedParameter.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionNamedParameter.java
index bfce06e5529..6c92b1c100d 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionNamedParameter.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionNamedParameter.java
@@ -96,7 +96,7 @@ public class StreamExpressionNamedParameter implements StreamExpressionParameter
 
   @Override
   public boolean equals(Object other) {
-    if (other.getClass() != StreamExpressionNamedParameter.class) {
+    if (!(other instanceof StreamExpressionNamedParameter)) {
       return false;
     }
 
@@ -109,7 +109,7 @@ public class StreamExpressionNamedParameter implements StreamExpressionParameter
       return false;
     }
 
-    if (null != this.name && null != check.name && !this.name.equals(check.name)) {
+    if (null != this.name && !this.name.equals(check.name)) {
       return false;
     }
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionValue.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionValue.java
index 2e7da74349e..dffa00e47db 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionValue.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamExpressionValue.java
@@ -47,7 +47,7 @@ public class StreamExpressionValue implements StreamExpressionParameter {
 
   @Override
   public boolean equals(Object other) {
-    if (other.getClass() != StreamExpressionValue.class) {
+    if (!(other instanceof StreamExpressionValue)) {
       return false;
     }
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java
index ec3615fbbcc..dc3e0d67eed 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/expr/StreamFactory.java
@@ -592,12 +592,11 @@ public class StreamFactory implements Serializable {
       return Long.valueOf(original);
     } catch (Exception ignored) {
     }
-    ;
+
     try {
       return Double.valueOf(original);
     } catch (Exception ignored) {
     }
-    ;
 
     // is a string
     return original;
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
index 3a96b8b8dcd..a4516f73bf1 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
@@ -317,8 +317,7 @@ public class ClusterState implements JSONWriter.Writable {
   @Override
   public boolean equals(Object obj) {
     if (this == obj) return true;
-    if (obj == null) return false;
-    if (getClass() != obj.getClass()) return false;
+    if (!(obj instanceof ClusterState)) return false;
     ClusterState other = (ClusterState) obj;
     if (liveNodes == null) {
       return other.liveNodes == null;
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java b/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
index e3ec561cd80..af0ebc66f12 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/DocRouter.java
@@ -136,7 +136,7 @@ public abstract class DocRouter {
 
     @Override
     public boolean equals(Object obj) {
-      if (obj.getClass() != getClass()) return false;
+      if (!(obj instanceof Range)) return false;
       Range other = (Range) obj;
       return this.min == other.min && this.max == other.max;
     }
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/Replica.java b/solr/solrj/src/java/org/apache/solr/common/cloud/Replica.java
index adbf57ecc32..bf1dca1ca96 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/Replica.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/Replica.java
@@ -265,7 +265,7 @@ public class Replica extends ZkNodeProps implements MapWriter {
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
-    if (o == null || getClass() != o.getClass()) return false;
+    if (!(o instanceof Replica)) return false;
     if (!super.equals(o)) return false;
 
     Replica other = (Replica) o;
diff --git a/solr/solrj/src/test/org/noggit/TestJSONParser.java b/solr/solrj/src/test/org/noggit/TestJSONParser.java
index 246c4a59c56..17d043e376e 100644
--- a/solr/solrj/src/test/org/noggit/TestJSONParser.java
+++ b/solr/solrj/src/test/org/noggit/TestJSONParser.java
@@ -302,7 +302,7 @@ public class TestJSONParser extends SolrTestCaseJ4 {
 
     @Override
     public boolean equals(Object o) {
-      return (getClass() == o.getClass() && digits.equals(((Num) o).digits));
+      return (o instanceof Num && digits.equals(((Num) o).digits));
     }
 
     @Override
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 25f7f6c3b5b..4d842681159 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -70,6 +70,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Properties;
 import java.util.Set;
@@ -1826,7 +1827,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
     public boolean equals(Object o) {
       if (!(o instanceof Doc)) return false;
       Doc other = (Doc) o;
-      return this == other || id != null && id.equals(other.id);
+      return this == other || Objects.equals(id, other.id);
     }
 
     @Override
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 9d2cac1d11d..1f2ba6965ed 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
@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.Random;
 import java.util.Set;
@@ -171,13 +172,9 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof CloudJettyRunner)) return false;
       CloudJettyRunner other = (CloudJettyRunner) obj;
-      if (url == null) {
-        if (other.url != null) return false;
-      } else if (!url.equals(other.url)) return false;
-      return true;
+      return Objects.equals(url, other.url);
     }
 
     @Override
@@ -213,13 +210,9 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
     @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
-      if (obj == null) return false;
-      if (getClass() != obj.getClass()) return false;
+      if (!(obj instanceof CloudSolrServerClient)) return false;
       CloudSolrServerClient other = (CloudSolrServerClient) obj;
-      if (solrClient == null) {
-        if (other.solrClient != null) return false;
-      } else if (!solrClient.equals(other.solrClient)) return false;
-      return true;
+      return Objects.equals(solrClient, other.solrClient);
     }
   }
 


[solr] 02/09: SOLR-16427: Evaluate and fix errorprone rules - ClassCanBeStatic

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 35cad2c711afbb6f84b491efcff316e5bb87b237
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Fri Oct 21 16:49:07 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - ClassCanBeStatic
---
 gradle/validation/error-prone.gradle               |  1 -
 solr/core/src/java/org/apache/solr/api/ApiBag.java |  4 +--
 .../solr/cloud/api/collections/RoutedAlias.java    |  2 +-
 .../java/org/apache/solr/handler/CatStream.java    |  2 +-
 .../handler/component/QueryElevationComponent.java |  2 +-
 .../apache/solr/logging/log4j2/Log4j2Watcher.java  |  4 +--
 .../apache/solr/request/LocalSolrQueryRequest.java |  2 +-
 .../apache/solr/response/JSONResponseWriter.java   |  2 +-
 .../analysis/ManagedSynonymFilterFactory.java      |  2 +-
 .../analysis/ManagedSynonymGraphFilterFactory.java |  2 +-
 .../apache/solr/search/ExportQParserPlugin.java    |  4 +--
 .../solr/search/GraphTermsQParserPlugin.java       |  2 +-
 .../apache/solr/search/ReRankQParserPlugin.java    |  4 +--
 .../java/org/apache/solr/search/facet/AvgAgg.java  |  6 ++--
 .../org/apache/solr/search/facet/CountValsAgg.java |  8 ++---
 .../org/apache/solr/search/facet/DocValuesAcc.java |  4 +--
 .../org/apache/solr/search/facet/FacetModule.java  |  2 +-
 .../org/apache/solr/search/facet/MinMaxAgg.java    |  2 +-
 .../org/apache/solr/search/facet/MissingAgg.java   |  2 +-
 .../org/apache/solr/search/facet/StddevAgg.java    |  6 ++--
 .../java/org/apache/solr/search/facet/SumAgg.java  |  6 ++--
 .../org/apache/solr/search/facet/SumsqAgg.java     |  6 ++--
 .../org/apache/solr/search/facet/VarianceAgg.java  |  6 ++--
 .../solr/search/join/CrossCollectionJoinQuery.java |  2 +-
 .../apache/solr/security/AuditLoggerPlugin.java    |  2 +-
 .../org/apache/solr/security/BasicAuthPlugin.java  |  2 +-
 .../org/apache/solr/update/TransactionLog.java     |  2 +-
 .../org/apache/solr/cloud/LeaderElectionTest.java  |  2 +-
 .../apache/solr/cloud/TestSSLRandomization.java    | 41 +++++++++++-----------
 .../cloud/TestWaitForStateWithJettyShutdowns.java  |  2 +-
 .../handler/FieldAnalysisRequestHandlerTest.java   |  6 ++--
 .../apache/solr/handler/TestContainerPlugin.java   |  4 +--
 .../solr/handler/TestReplicationHandler.java       |  2 +-
 .../solr/handler/admin/TestApiFramework.java       |  4 +--
 .../solr/handler/export/TestExportWriter.java      |  2 +-
 .../apache/solr/handler/tagger/TaggerTestCase.java |  2 +-
 .../org/apache/solr/rest/TestManagedResource.java  |  4 +--
 .../org/apache/solr/schema/TestPointFields.java    |  2 +-
 .../solr/search/TestCancellableCollector.java      |  2 +-
 .../solr/search/TestExtendedDismaxParser.java      |  4 +--
 .../apache/solr/search/TestTermsQParserPlugin.java |  2 +-
 .../solr/security/AuditLoggerIntegrationTest.java  |  4 +--
 .../test/org/apache/solr/util/TestRTimerTree.java  |  2 +-
 .../LTRInterleavingTransformerFactory.java         |  2 +-
 .../query-guide/examples/JsonRequestApiTest.java   |  2 +-
 .../apache/solr/common/cloud/ZkStateReader.java    |  2 +-
 .../solrj/impl/BaseHttpClusterStateProvider.java   |  2 +-
 .../client/solrj/io/eval/PairSortEvaluator.java    |  2 +-
 .../solrj/io/stream/CartesianProductStream.java    |  2 +-
 .../client/solrj/io/stream/ParallelListStream.java |  4 +--
 solr/solrj/src/java/org/noggit/CharArr.java        |  2 +-
 ...DirectJsonQueryRequestFacetingEmbeddedTest.java |  2 +-
 ...ectJsonQueryRequestFacetingIntegrationTest.java |  2 +-
 .../JsonQueryRequestFacetingIntegrationTest.java   |  2 +-
 54 files changed, 99 insertions(+), 99 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 8b23dacac45..73a5f7bb575 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -80,7 +80,6 @@ allprojects { prj ->
             '-Xep:BadImport:OFF', // style preference that we don't want to enforce
             '-Xep:BadShiftAmount:OFF',
             '-Xep:CanIgnoreReturnValueSuggester:OFF',
-            '-Xep:ClassCanBeStatic:OFF',
             '-Xep:ComplexBooleanConstant:OFF',
             '-Xep:DoubleCheckedLocking:OFF',
             '-Xep:EmptyCatch:OFF',
diff --git a/solr/core/src/java/org/apache/solr/api/ApiBag.java b/solr/core/src/java/org/apache/solr/api/ApiBag.java
index e8039401c90..c9bd0530d4b 100644
--- a/solr/core/src/java/org/apache/solr/api/ApiBag.java
+++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java
@@ -110,7 +110,7 @@ public class ApiBag {
    * <p>This is only possible currently for AnnotatedApis. All other Api implementations will resort
    * to the default "overwriting" behavior of PathTrie
    */
-  class CommandAggregatingPathTrie extends PathTrie<Api> {
+  static class CommandAggregatingPathTrie extends PathTrie<Api> {
 
     public CommandAggregatingPathTrie(Set<String> reserved) {
       super(reserved);
@@ -145,7 +145,7 @@ public class ApiBag {
     }
   }
 
-  class CommandAggregatingAnnotatedApi extends AnnotatedApi {
+  static class CommandAggregatingAnnotatedApi extends AnnotatedApi {
 
     private Collection<AnnotatedApi> combinedApis;
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
index 5d27a700a0c..7d46eba3276 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
@@ -309,7 +309,7 @@ public abstract class RoutedAlias {
 
   abstract CandidateCollection findCandidateGivenValue(AddUpdateCommand cmd);
 
-  class CandidateCollection {
+  static class CandidateCollection {
     private final CreationType creationType;
     private final String destinationCollection;
     private final String creationCollection;
diff --git a/solr/core/src/java/org/apache/solr/handler/CatStream.java b/solr/core/src/java/org/apache/solr/handler/CatStream.java
index 31ad6b11abf..8d6a3f62de2 100644
--- a/solr/core/src/java/org/apache/solr/handler/CatStream.java
+++ b/solr/core/src/java/org/apache/solr/handler/CatStream.java
@@ -255,7 +255,7 @@ public class CatStream extends TupleStream implements Expressible {
   // A pair of paths for a particular file to stream:
   // - absolute path for reading,
   // - display path to avoid leaking Solr node fs details in tuples (relative to chroot)
-  public class CrawlFile {
+  public static class CrawlFile {
     private final String displayPath;
     private final Path absolutePath;
 
diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
index 48b975a63d4..f687edf878d 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
@@ -1213,7 +1213,7 @@ public class QueryElevationComponent extends SearchComponent implements SolrCore
   }
 
   /** Elevates certain docs to the top. */
-  private class ElevationComparatorSource extends FieldComparatorSource {
+  private static class ElevationComparatorSource extends FieldComparatorSource {
 
     private final IntIntHashMap elevatedWithPriority;
     private final boolean useConfiguredElevatedOrder;
diff --git a/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java b/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
index 2cc3247a41c..ff1ef3f456e 100644
--- a/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
+++ b/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
@@ -47,7 +47,7 @@ public class Log4j2Watcher extends LogWatcher<LogEvent> {
   private static final String LOG4J2_WATCHER_APPENDER = "Log4j2WatcherAppender";
 
   @SuppressForbidden(reason = "class is specific to log4j2")
-  protected class Log4j2Appender extends AbstractAppender {
+  protected static class Log4j2Appender extends AbstractAppender {
 
     private Log4j2Watcher watcher;
     private ThresholdFilter filter;
@@ -78,7 +78,7 @@ public class Log4j2Watcher extends LogWatcher<LogEvent> {
   }
 
   @SuppressForbidden(reason = "class is specific to log4j2")
-  protected class Log4j2Info extends LoggerInfo {
+  protected static class Log4j2Info extends LoggerInfo {
     final Level level;
 
     Log4j2Info(String name, Level level) {
diff --git a/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java b/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
index 3bf8aa80dd1..02b36e9c3e4 100644
--- a/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
+++ b/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
@@ -86,7 +86,7 @@ public class LocalSolrQueryRequest extends SolrQueryRequestBase {
     this.userPrincipalName = s;
   }
 
-  private final class LocalPrincipal implements Principal {
+  private static final class LocalPrincipal implements Principal {
     private final String user;
 
     public LocalPrincipal(String user) {
diff --git a/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java b/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
index 21203f2e738..f972ca5e362 100644
--- a/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java
@@ -84,7 +84,7 @@ public class JSONResponseWriter implements QueryResponseWriter {
    * [{"name":"a","type":"int","value":1}, {"name":"bar","type":"str","value":"foo"},
    * {"name":null,"type":"float","value":3.4}]
    */
-  class ArrayOfNameTypeValueJSONWriter extends JSONWriter {
+  static class ArrayOfNameTypeValueJSONWriter extends JSONWriter {
     protected boolean writeTypeAndValueKey = false;
     private final boolean writeNullName;
 
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
index a2bce21a4b0..a004c907f20 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
@@ -355,7 +355,7 @@ public class ManagedSynonymFilterFactory extends BaseManagedTokenFilterFactory {
    * Custom SynonymMap.Parser implementation that provides synonym mappings from the managed JSON in
    * this class during SynonymMap building.
    */
-  private class ManagedSynonymParser extends SynonymMap.Parser {
+  private static class ManagedSynonymParser extends SynonymMap.Parser {
 
     SynonymManager synonymManager;
 
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
index 7517242f05e..7863ed6fc3b 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
@@ -351,7 +351,7 @@ public class ManagedSynonymGraphFilterFactory extends BaseManagedTokenFilterFact
    * Custom SynonymMap.Parser implementation that provides synonym mappings from the managed JSON in
    * this class during SynonymMap building.
    */
-  private class ManagedSynonymParser extends SynonymMap.Parser {
+  private static class ManagedSynonymParser extends SynonymMap.Parser {
 
     SynonymManager synonymManager;
 
diff --git a/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
index c55bdeba82f..16c3393786a 100644
--- a/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
@@ -48,7 +48,7 @@ public class ExportQParserPlugin extends QParserPlugin {
     return new ExportQParser(qstr, localParams, params, request);
   }
 
-  public class ExportQParser extends QParser {
+  public static class ExportQParser extends QParser {
 
     public ExportQParser(
         String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest request) {
@@ -65,7 +65,7 @@ public class ExportQParserPlugin extends QParserPlugin {
     }
   }
 
-  public class ExportQuery extends RankQuery {
+  public static class ExportQuery extends RankQuery {
     private Query mainQuery;
     private Object id;
 
diff --git a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
index f9dd2619778..3baae4e4027 100644
--- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
@@ -157,7 +157,7 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
   }
 
   /** Similar to {@code TermsQuery} but adds a {@code maxDocFreq}. */
-  private class GraphTermsQuery extends Query implements ExtendedQuery {
+  private static class GraphTermsQuery extends Query implements ExtendedQuery {
     // Not a post filter. This will typically be used as the main query.
 
     private Term[] queryTerms;
diff --git a/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
index 803694ea5a9..3bb9a5efc8c 100644
--- a/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
@@ -50,7 +50,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
     return new ReRankQParser(query, localParams, params, req);
   }
 
-  private class ReRankQParser extends QParser {
+  private static class ReRankQParser extends QParser {
 
     public ReRankQParser(
         String query, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
@@ -96,7 +96,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
     }
   }
 
-  private final class ReRankQuery extends AbstractReRankQuery {
+  private static final class ReRankQuery extends AbstractReRankQuery {
     private final Query reRankQuery;
     private final double reRankWeight;
 
diff --git a/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java b/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java
index 843366c71fa..1a6e79e0924 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java
@@ -90,7 +90,7 @@ public class AvgAgg extends SimpleAggValueSource {
     }
   }
 
-  class AvgSortedNumericAcc extends DocValuesAcc.DoubleSortedNumericDVAcc {
+  static class AvgSortedNumericAcc extends DocValuesAcc.DoubleSortedNumericDVAcc {
     int[] counts;
 
     public AvgSortedNumericAcc(FacetContext fcontext, SchemaField sf, int numSlots)
@@ -141,7 +141,7 @@ public class AvgAgg extends SimpleAggValueSource {
     }
   }
 
-  class AvgSortedSetAcc extends DocValuesAcc.DoubleSortedSetDVAcc {
+  static class AvgSortedSetAcc extends DocValuesAcc.DoubleSortedSetDVAcc {
     int[] counts;
 
     public AvgSortedSetAcc(FacetContext fcontext, SchemaField sf, int numSlots) throws IOException {
@@ -195,7 +195,7 @@ public class AvgAgg extends SimpleAggValueSource {
     }
   }
 
-  class AvgUnInvertedFieldAcc extends UnInvertedFieldAcc.DoubleUnInvertedFieldAcc {
+  static class AvgUnInvertedFieldAcc extends UnInvertedFieldAcc.DoubleUnInvertedFieldAcc {
     int[] counts;
 
     public AvgUnInvertedFieldAcc(FacetContext fcontext, SchemaField sf, int numSlots)
diff --git a/solr/core/src/java/org/apache/solr/search/facet/CountValsAgg.java b/solr/core/src/java/org/apache/solr/search/facet/CountValsAgg.java
index da08b86e9bf..e4994ddb25f 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/CountValsAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/CountValsAgg.java
@@ -65,7 +65,7 @@ public class CountValsAgg extends SimpleAggValueSource {
     return new FacetModule.FacetLongMerger();
   }
 
-  class CountValSlotAcc extends SlotAcc.LongFuncSlotAcc {
+  static class CountValSlotAcc extends SlotAcc.LongFuncSlotAcc {
 
     public CountValSlotAcc(ValueSource values, FacetContext fcontext, int numSlots) {
       super(values, fcontext, numSlots, 0);
@@ -80,7 +80,7 @@ public class CountValsAgg extends SimpleAggValueSource {
     }
   }
 
-  class CountSortedNumericDVAcc extends DocValuesAcc.LongSortedNumericDVAcc {
+  static class CountSortedNumericDVAcc extends DocValuesAcc.LongSortedNumericDVAcc {
 
     public CountSortedNumericDVAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -93,7 +93,7 @@ public class CountValsAgg extends SimpleAggValueSource {
     }
   }
 
-  class CountSortedSetDVAcc extends DocValuesAcc.LongSortedSetDVAcc {
+  static class CountSortedSetDVAcc extends DocValuesAcc.LongSortedSetDVAcc {
 
     public CountSortedSetDVAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -108,7 +108,7 @@ public class CountValsAgg extends SimpleAggValueSource {
     }
   }
 
-  class CountMultiValuedAcc extends UnInvertedFieldAcc {
+  static class CountMultiValuedAcc extends UnInvertedFieldAcc {
     private int currentSlot;
     long[] result;
 
diff --git a/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java b/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java
index 086af5cc391..fddfcf92118 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/DocValuesAcc.java
@@ -60,7 +60,7 @@ public abstract class DocValuesAcc extends SlotAcc {
   protected abstract boolean advanceExact(int doc) throws IOException;
 
   /** Accumulator for {@link NumericDocValues} */
-  abstract class NumericDVAcc extends DocValuesAcc {
+  abstract static class NumericDVAcc extends DocValuesAcc {
     NumericDocValues values;
 
     public NumericDVAcc(FacetContext fcontext, SchemaField sf) throws IOException {
@@ -249,7 +249,7 @@ public abstract class DocValuesAcc extends SlotAcc {
   }
 
   /** Accumulator for {@link SortedDocValues} */
-  abstract class SortedDVAcc extends DocValuesAcc {
+  abstract static class SortedDVAcc extends DocValuesAcc {
     SortedDocValues values;
 
     public SortedDVAcc(FacetContext fcontext, SchemaField sf) throws IOException {
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 116be21f335..a41d790c038 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
@@ -357,7 +357,7 @@ public class FacetModule extends SearchComponent {
   // TODO: perhaps factor out some sort of root/parent facet object that doesn't depend
   // on stuff like ResponseBuilder, but contains request parameters,
   // root filter lists (for filter exclusions), etc?
-  class FacetComponentState {
+  static class FacetComponentState {
     ResponseBuilder rb;
     Map<String, Object> facetCommands;
     FacetRequest facetRequest;
diff --git a/solr/core/src/java/org/apache/solr/search/facet/MinMaxAgg.java b/solr/core/src/java/org/apache/solr/search/facet/MinMaxAgg.java
index 9307e0e2f3f..efbbfc4d501 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/MinMaxAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/MinMaxAgg.java
@@ -368,7 +368,7 @@ public class MinMaxAgg extends SimpleAggValueSource {
     }
   }
 
-  abstract class OrdAcc extends SlotAcc {
+  abstract static class OrdAcc extends SlotAcc {
     static final int MISSING = -1;
     SchemaField field;
     int[] slotOrd;
diff --git a/solr/core/src/java/org/apache/solr/search/facet/MissingAgg.java b/solr/core/src/java/org/apache/solr/search/facet/MissingAgg.java
index 2f4c5f23ea6..e471020345f 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/MissingAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/MissingAgg.java
@@ -62,7 +62,7 @@ public class MissingAgg extends SimpleAggValueSource {
     return new FacetModule.FacetLongMerger();
   }
 
-  class MissingSlotAcc extends SlotAcc.LongFuncSlotAcc {
+  static class MissingSlotAcc extends SlotAcc.LongFuncSlotAcc {
 
     public MissingSlotAcc(ValueSource values, FacetContext fcontext, int numSlots) {
       super(values, fcontext, numSlots, 0);
diff --git a/solr/core/src/java/org/apache/solr/search/facet/StddevAgg.java b/solr/core/src/java/org/apache/solr/search/facet/StddevAgg.java
index 70fc1eb746b..1c930604aa5 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/StddevAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/StddevAgg.java
@@ -91,7 +91,7 @@ public class StddevAgg extends SimpleAggValueSource {
     }
   }
 
-  class StddevSortedNumericAcc extends DocValuesAcc.SDVSortedNumericAcc {
+  static class StddevSortedNumericAcc extends DocValuesAcc.SDVSortedNumericAcc {
 
     public StddevSortedNumericAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -105,7 +105,7 @@ public class StddevAgg extends SimpleAggValueSource {
     }
   }
 
-  class StddevSortedSetAcc extends DocValuesAcc.SDVSortedSetAcc {
+  static class StddevSortedSetAcc extends DocValuesAcc.SDVSortedSetAcc {
 
     public StddevSortedSetAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -119,7 +119,7 @@ public class StddevAgg extends SimpleAggValueSource {
     }
   }
 
-  class StddevUnInvertedFieldAcc extends UnInvertedFieldAcc.SDVUnInvertedFieldAcc {
+  static class StddevUnInvertedFieldAcc extends UnInvertedFieldAcc.SDVUnInvertedFieldAcc {
 
     public StddevUnInvertedFieldAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java b/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
index f7fdc14ba0c..614981e325a 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
@@ -83,7 +83,7 @@ public class SumAgg extends SimpleAggValueSource {
     }
   }
 
-  class SumSortedNumericAcc extends DocValuesAcc.DoubleSortedNumericDVAcc {
+  static class SumSortedNumericAcc extends DocValuesAcc.DoubleSortedNumericDVAcc {
 
     public SumSortedNumericAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -98,7 +98,7 @@ public class SumAgg extends SimpleAggValueSource {
     }
   }
 
-  class SumSortedSetAcc extends DocValuesAcc.DoubleSortedSetDVAcc {
+  static class SumSortedSetAcc extends DocValuesAcc.DoubleSortedSetDVAcc {
 
     public SumSortedSetAcc(FacetContext fcontext, SchemaField sf, int numSlots) throws IOException {
       super(fcontext, sf, numSlots, 0);
@@ -116,7 +116,7 @@ public class SumAgg extends SimpleAggValueSource {
     }
   }
 
-  class SumUnInvertedFieldAcc extends UnInvertedFieldAcc.DoubleUnInvertedFieldAcc {
+  static class SumUnInvertedFieldAcc extends UnInvertedFieldAcc.DoubleUnInvertedFieldAcc {
 
     public SumUnInvertedFieldAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/search/facet/SumsqAgg.java b/solr/core/src/java/org/apache/solr/search/facet/SumsqAgg.java
index a6e87ec8f96..6d4983812c5 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/SumsqAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/SumsqAgg.java
@@ -68,7 +68,7 @@ public class SumsqAgg extends SimpleAggValueSource {
     return new SumAgg.Merger();
   }
 
-  class SumSqSortedNumericAcc extends DocValuesAcc.DoubleSortedNumericDVAcc {
+  static class SumSqSortedNumericAcc extends DocValuesAcc.DoubleSortedNumericDVAcc {
 
     public SumSqSortedNumericAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -84,7 +84,7 @@ public class SumsqAgg extends SimpleAggValueSource {
     }
   }
 
-  class SumSqSortedSetAcc extends DocValuesAcc.DoubleSortedSetDVAcc {
+  static class SumSqSortedSetAcc extends DocValuesAcc.DoubleSortedSetDVAcc {
 
     public SumSqSortedSetAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -103,7 +103,7 @@ public class SumsqAgg extends SimpleAggValueSource {
     }
   }
 
-  class SumSqUnInvertedFieldAcc extends UnInvertedFieldAcc.DoubleUnInvertedFieldAcc {
+  static class SumSqUnInvertedFieldAcc extends UnInvertedFieldAcc.DoubleUnInvertedFieldAcc {
 
     public SumSqUnInvertedFieldAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/search/facet/VarianceAgg.java b/solr/core/src/java/org/apache/solr/search/facet/VarianceAgg.java
index a4c1a7a43a1..276e1c014f4 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/VarianceAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/VarianceAgg.java
@@ -90,7 +90,7 @@ public class VarianceAgg extends SimpleAggValueSource {
     }
   }
 
-  class VarianceSortedNumericAcc extends DocValuesAcc.SDVSortedNumericAcc {
+  static class VarianceSortedNumericAcc extends DocValuesAcc.SDVSortedNumericAcc {
 
     public VarianceSortedNumericAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -104,7 +104,7 @@ public class VarianceAgg extends SimpleAggValueSource {
     }
   }
 
-  class VarianceSortedSetAcc extends DocValuesAcc.SDVSortedSetAcc {
+  static class VarianceSortedSetAcc extends DocValuesAcc.SDVSortedSetAcc {
 
     public VarianceSortedSetAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
@@ -118,7 +118,7 @@ public class VarianceAgg extends SimpleAggValueSource {
     }
   }
 
-  class VarianceUnInvertedFieldAcc extends UnInvertedFieldAcc.SDVUnInvertedFieldAcc {
+  static class VarianceUnInvertedFieldAcc extends UnInvertedFieldAcc.SDVUnInvertedFieldAcc {
 
     public VarianceUnInvertedFieldAcc(FacetContext fcontext, SchemaField sf, int numSlots)
         throws IOException {
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 da779b1090e..c0fb74355df 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
@@ -112,7 +112,7 @@ public class CrossCollectionJoinQuery extends Query {
     DocSet getDocSet() throws IOException;
   }
 
-  private class TermsJoinKeyCollector implements JoinKeyCollector {
+  private static class TermsJoinKeyCollector implements JoinKeyCollector {
 
     FieldType fieldType;
     SolrIndexSearcher searcher;
diff --git a/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java b/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java
index 62d6d952220..49708efaebc 100644
--- a/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/AuditLoggerPlugin.java
@@ -386,7 +386,7 @@ public abstract class AuditLoggerPlugin implements Closeable, Runnable, SolrInfo
   }
 
   /** Set of rules for when audit logging should be muted. */
-  private class MuteRules {
+  private static class MuteRules {
     private List<List<MuteRule>> rules;
 
     MuteRules(Object o) {
diff --git a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
index 9e8ce1a6f2f..0fd18fa4287 100644
--- a/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
+++ b/solr/core/src/java/org/apache/solr/security/BasicAuthPlugin.java
@@ -287,7 +287,7 @@ public class BasicAuthPlugin extends AuthenticationPlugin
   }
 
   @Contract(threading = ThreadingBehavior.IMMUTABLE)
-  private class BasicAuthUserPrincipal implements Principal, Serializable {
+  private static class BasicAuthUserPrincipal implements Principal, Serializable {
     private String username;
     private final String password;
 
diff --git a/solr/core/src/java/org/apache/solr/update/TransactionLog.java b/solr/core/src/java/org/apache/solr/update/TransactionLog.java
index 55678912468..56f694314ee 100644
--- a/solr/core/src/java/org/apache/solr/update/TransactionLog.java
+++ b/solr/core/src/java/org/apache/solr/update/TransactionLog.java
@@ -799,7 +799,7 @@ public class TransactionLog implements Closeable {
     }
   }
 
-  public abstract class ReverseReader {
+  public abstract static class ReverseReader {
 
     /**
      * Returns the next object from the log, or null if none available.
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 66df9f1fc87..8dd949c410b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
@@ -74,7 +74,7 @@ public class LeaderElectionTest extends SolrTestCaseJ4 {
     zkClient.makePath("/collections/collection2", true);
   }
 
-  class TestLeaderElectionContext extends ShardLeaderElectionContextBase {
+  static class TestLeaderElectionContext extends ShardLeaderElectionContextBase {
     private long runLeaderDelay = 0;
 
     public TestLeaderElectionContext(
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestSSLRandomization.java b/solr/core/src/test/org/apache/solr/cloud/TestSSLRandomization.java
index 05f6602755b..0c40d8a9a88 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestSSLRandomization.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestSSLRandomization.java
@@ -50,38 +50,38 @@ public class TestSSLRandomization extends SolrCloudTestCase {
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(ssl = 0.42, clientAuth = 0.33, reason = "foo")
-  public class FullyAnnotated {}
+  public static class FullyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
-  public class InheritedFullyAnnotated extends FullyAnnotated {}
+  public static class InheritedFullyAnnotated extends FullyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
-  public class NotAnnotated {}
+  public static class NotAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
-  public class InheritedNotAnnotated extends NotAnnotated {}
+  public static class InheritedNotAnnotated extends NotAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @SuppressSSL(bugUrl = "fakeBugUrl")
-  public class Suppressed {}
+  public static class Suppressed {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
-  public class InheritedSuppressed extends Suppressed {}
+  public static class InheritedSuppressed extends Suppressed {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @SuppressSSL(bugUrl = "fakeBugUrl")
-  public class InheritedAnnotationButSuppressed extends FullyAnnotated {}
+  public static class InheritedAnnotationButSuppressed extends FullyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(ssl = 0.42, clientAuth = 0.33, reason = "foo")
-  public class InheritedSuppressedWithIgnoredAnnotation extends Suppressed {
+  public static class InheritedSuppressedWithIgnoredAnnotation extends Suppressed {
     // Even with direct annotation, suppression at superclass overrules us.
     //
     // (If it didn't work this way, it would be a pain in the ass to quickly disable SSL for a
@@ -90,60 +90,61 @@ public class TestSSLRandomization extends SolrCloudTestCase {
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL()
-  public class EmptyAnnotated {}
+  public static class EmptyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
-  public class InheritedEmptyAnnotated extends EmptyAnnotated {}
+  public static class InheritedEmptyAnnotated extends EmptyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(0.5)
-  public class InheritedEmptyAnnotationWithOverride extends EmptyAnnotated {}
+  public static class InheritedEmptyAnnotationWithOverride extends EmptyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(ssl = 0.42, clientAuth = 0.33, reason = "foo")
-  public class GrandchildInheritedEmptyAnnotationWithOverride extends InheritedEmptyAnnotated {}
+  public static class GrandchildInheritedEmptyAnnotationWithOverride
+      extends InheritedEmptyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(0.5)
-  public class SimplyAnnotated {}
+  public static class SimplyAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(0.0)
-  public class MinAnnotated {}
+  public static class MinAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(1)
-  public class MaxAnnotated {}
+  public static class MaxAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(ssl = 0.42)
-  public class SSlButNoClientAuthAnnotated {}
+  public static class SSlButNoClientAuthAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(clientAuth = 0.42)
-  public class ClientAuthButNoSSLAnnotated {}
+  public static class ClientAuthButNoSSLAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(ssl = 42.0)
-  public class SSLOutOfRangeAnnotated {}
+  public static class SSLOutOfRangeAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
   @RandomizeSSL(clientAuth = 42.0)
-  public class ClientAuthOutOfRangeAnnotated {}
+  public static class ClientAuthOutOfRangeAnnotated {}
   ;
 
   /** Used by {@link #testSSLRandomizer} */
-  public class InheritedOutOfRangeAnnotated extends ClientAuthOutOfRangeAnnotated {}
+  public static class InheritedOutOfRangeAnnotated extends ClientAuthOutOfRangeAnnotated {}
   ;
 
   public void testSSLRandomizer() {
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java b/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java
index bddb5ba2e35..dbbb15ee056 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java
@@ -143,7 +143,7 @@ public class TestWaitForStateWithJettyShutdowns extends SolrTestCaseJ4 {
     }
   }
 
-  public final class LatchCountingPredicateWrapper implements CollectionStatePredicate {
+  public static final class LatchCountingPredicateWrapper implements CollectionStatePredicate {
     private final CountDownLatch latch;
     private final CollectionStatePredicate inner;
 
diff --git a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
index b6f8cbd1f34..2cc1ba80c78 100644
--- a/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/FieldAnalysisRequestHandlerTest.java
@@ -818,14 +818,14 @@ public class FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB
   }
 
   /** A custom impl of a standard attribute impl; test this instance is used. */
-  public class CustomFlagsAttributeImpl extends FlagsAttributeImpl {
+  public static class CustomFlagsAttributeImpl extends FlagsAttributeImpl {
     @Override
     public void setFlags(int flags) {
       super.setFlags(900 + flags); // silly modification
     }
   }
 
-  private class CustomTokenizer extends Tokenizer {
+  private static class CustomTokenizer extends Tokenizer {
     CharTermAttribute charAtt;
     FlagsAttribute customAtt;
     boolean sentOneToken;
@@ -854,7 +854,7 @@ public class FieldAnalysisRequestHandlerTest extends AnalysisRequestHandlerTestB
     }
   }
 
-  private class CustomTokenFilter extends TokenFilter {
+  private static class CustomTokenFilter extends TokenFilter {
     FlagsAttribute flagAtt;
 
     public CustomTokenFilter(TokenStream input) {
diff --git a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
index 2612a42ea46..feee84732cc 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
@@ -83,7 +83,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
    * <p>Use by calling {@link #reset()} before the API calls, and then {@link #waitFor(int)} to
    * block until <code>num</code> cores have been notified.
    */
-  class CountingListener implements PackageListeners.Listener {
+  static class CountingListener implements PackageListeners.Listener {
     private Semaphore changeCalled = new Semaphore(0);
 
     @Override
@@ -464,7 +464,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
       method = GET,
       path = "/plugin/my/plugin",
       permission = PermissionNameProvider.Name.COLL_READ_PERM)
-  public class C2 {}
+  public static class C2 {}
 
   @EndPoint(
       method = GET,
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index 5e284d9fff3..c4b502c06b6 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -1738,7 +1738,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     assertEquals("aaa", ReplicationHandler.getObjectWithBackwardCompatibility(nl, "foo", "bar"));
   }
 
-  private class AddExtraDocs implements Runnable {
+  private static class AddExtraDocs implements Runnable {
 
     SolrClient leaderClient;
     int startId;
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java b/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java
index 95a15b6f799..999e9142f73 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/TestApiFramework.java
@@ -258,7 +258,7 @@ public class TestApiFramework extends SolrTestCaseJ4 {
       path = "/node/filestore/*",
       method = SolrRequest.METHOD.GET,
       permission = PermissionNameProvider.Name.ALL)
-  public class DummyTest {
+  public static class DummyTest {
     @Command
     public void read(SolrQueryRequest req, SolrQueryResponse rsp) {
       rsp.add("FSRead.called", "true");
@@ -266,7 +266,7 @@ public class TestApiFramework extends SolrTestCaseJ4 {
     }
   }
 
-  public class DummyTest1 {
+  public static class DummyTest1 {
     @EndPoint(
         path = "/node/filestore/*",
         method = SolrRequest.METHOD.GET,
diff --git a/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java b/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
index 7d0cf5e4e6a..7afc2d1d108 100644
--- a/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
+++ b/solr/core/src/test/org/apache/solr/handler/export/TestExportWriter.java
@@ -1409,7 +1409,7 @@ public class TestExportWriter extends SolrTestCaseJ4 {
     }
   }
 
-  private class SortFields {
+  private static class SortFields {
     String fieldName;
     String sortOrder;
     String[] orders = {"asc", "desc"};
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 2f22e0de4c5..7257e1f6290 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
@@ -211,7 +211,7 @@ public abstract class TaggerTestCase extends SolrTestCaseJ4 {
     }
   }
 
-  class TestTag implements Comparable<TestTag> {
+  static class TestTag implements Comparable<TestTag> {
     final int startOffset, endOffset;
     final String substring;
     final String docName;
diff --git a/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java b/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java
index 3f9dc81d26a..5b4338a4b99 100644
--- a/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java
+++ b/solr/core/src/test/org/apache/solr/rest/TestManagedResource.java
@@ -68,7 +68,7 @@ public class TestManagedResource extends SolrTestCaseJ4 {
     }
   }
 
-  private class ManagedTestResource extends ManagedResource {
+  private static class ManagedTestResource extends ManagedResource {
 
     private Object managedData;
 
@@ -179,7 +179,7 @@ public class TestManagedResource extends SolrTestCaseJ4 {
     }
   }
 
-  private class CustomStorageFormatResource extends ManagedTestResource {
+  private static class CustomStorageFormatResource extends ManagedTestResource {
     private CustomStorageFormatResource(
         String resourceId, SolrResourceLoader loader, StorageIO storageIO) throws SolrException {
       super(resourceId, loader, storageIO);
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 407fb4eca3b..b82e1136c7d 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
@@ -667,7 +667,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
         .toArray(new String[list.size()]);
   }
 
-  private class PosVal<T extends Comparable<T>> {
+  private static class PosVal<T extends Comparable<T>> {
     int pos;
     T val;
 
diff --git a/solr/core/src/test/org/apache/solr/search/TestCancellableCollector.java b/solr/core/src/test/org/apache/solr/search/TestCancellableCollector.java
index 1641f14bea5..7f187c01371 100644
--- a/solr/core/src/test/org/apache/solr/search/TestCancellableCollector.java
+++ b/solr/core/src/test/org/apache/solr/search/TestCancellableCollector.java
@@ -168,7 +168,7 @@ public class TestCancellableCollector extends SolrTestCase {
         });
   }
 
-  public class DummyCancellableCollector extends CancellableCollector {
+  public static class DummyCancellableCollector extends CancellableCollector {
     private final CancellableCollector collector;
     private final boolean delayStart;
     private final boolean delayCollection;
diff --git a/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java b/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
index 98b94d04f2d..be3edd51934 100644
--- a/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
+++ b/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
@@ -3198,7 +3198,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
       return new MultilanguageDismaxConfiguration(localParams, params, req);
     }
 
-    class MultilanguageDismaxConfiguration extends ExtendedDismaxConfiguration {
+    static class MultilanguageDismaxConfiguration extends ExtendedDismaxConfiguration {
 
       public MultilanguageDismaxConfiguration(
           SolrParams localParams, SolrParams params, SolrQueryRequest req) {
@@ -3226,7 +3226,7 @@ public class TestExtendedDismaxParser extends SolrTestCaseJ4 {
       return new FuzzyQueryParser(qParser, field);
     }
 
-    class FuzzyQueryParser extends ExtendedSolrQueryParser {
+    static class FuzzyQueryParser extends ExtendedSolrQueryParser {
 
       private Set<String> frequentlyMisspelledWords;
 
diff --git a/solr/core/src/test/org/apache/solr/search/TestTermsQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestTermsQParserPlugin.java
index aa250dba243..4f755573a1b 100644
--- a/solr/core/src/test/org/apache/solr/search/TestTermsQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestTermsQParserPlugin.java
@@ -164,7 +164,7 @@ public class TestTermsQParserPlugin extends SolrTestCaseJ4 {
         SolrException.ErrorCode.BAD_REQUEST);
   }
 
-  class TermsParams {
+  static class TermsParams {
     public String method;
     public boolean cache;
 
diff --git a/solr/core/src/test/org/apache/solr/security/AuditLoggerIntegrationTest.java b/solr/core/src/test/org/apache/solr/security/AuditLoggerIntegrationTest.java
index 91f6208a836..e42a6b89578 100644
--- a/solr/core/src/test/org/apache/solr/security/AuditLoggerIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/security/AuditLoggerIntegrationTest.java
@@ -552,7 +552,7 @@ public class AuditLoggerIntegrationTest extends SolrCloudAuthTestCase {
   // code. This all goes back to MiniSolrCloudCluster.close, which really _can_ throw an
   // InterruptedException
   @SuppressWarnings({"try"})
-  private class CallbackReceiver implements Runnable, AutoCloseable {
+  private static class CallbackReceiver implements Runnable, AutoCloseable {
     private final ServerSocket serverSocket;
     private BlockingQueue<AuditEvent> queue = new LinkedBlockingDeque<>();
 
@@ -617,7 +617,7 @@ public class AuditLoggerIntegrationTest extends SolrCloudAuthTestCase {
   // code. This all goes back to MiniSolrCloudCluster.close, which really _can_ throw an
   // InterruptedException
   @SuppressWarnings({"try"})
-  private class AuditTestHarness implements AutoCloseable {
+  private static class AuditTestHarness implements AutoCloseable {
     CallbackReceiver receiver;
     int callbackPort;
     Thread receiverThread;
diff --git a/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java b/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java
index 23a67a8daab..02630e09fb9 100644
--- a/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java
+++ b/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java
@@ -41,7 +41,7 @@ public class TestRTimerTree extends SolrTestCase {
     }
   }
 
-  private class MockRTimerTree extends RTimerTree {
+  private static class MockRTimerTree extends RTimerTree {
     @Override
     protected TimerImpl newTimerImpl() {
       return new MockTimerImpl();
diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRInterleavingTransformerFactory.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRInterleavingTransformerFactory.java
index 91a59e6cc3d..e08b564fb22 100644
--- a/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRInterleavingTransformerFactory.java
+++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRInterleavingTransformerFactory.java
@@ -42,7 +42,7 @@ public class LTRInterleavingTransformerFactory extends TransformerFactory {
     return new InterleavingTransformer(name, req);
   }
 
-  class InterleavingTransformer extends DocTransformer {
+  static class InterleavingTransformer extends DocTransformer {
 
     private final String name;
     private final SolrQueryRequest req;
diff --git a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
index 71bcbf9037d..3a95cf6de1d 100644
--- a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
+++ b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
@@ -744,7 +744,7 @@ public class JsonRequestApiTest extends SolrCloudTestCase {
         new FacetBucket("search", 1));
   }
 
-  private class FacetBucket {
+  private static class FacetBucket {
     private final Object val;
     private final int count;
 
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
index f11eccb5430..2110e4a63c9 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
@@ -1307,7 +1307,7 @@ public class ZkStateReader implements SolrCloseable {
     }
   }
 
-  private class VersionedCollectionProps {
+  private static class VersionedCollectionProps {
     int zkVersion;
     Map<String, String> props;
     long cacheUntilNs = 0;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
index 875f21a8ade..a6201918b8e 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java
@@ -356,7 +356,7 @@ public abstract class BaseHttpClusterStateProvider implements ClusterStateProvid
   }
 
   // This exception is not meant to escape this class it should be caught and wrapped.
-  private class NotACollectionException extends Exception {}
+  private static class NotACollectionException extends Exception {}
 
   @Override
   public String getQuorumHosts() {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java
index 6a1b8e8efb2..9b9b105acba 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java
@@ -97,7 +97,7 @@ public class PairSortEvaluator extends RecursiveNumericEvaluator implements TwoV
     return new Matrix(data);
   }
 
-  private class PairComp implements Comparator<double[]> {
+  private static class PairComp implements Comparator<double[]> {
     @Override
     public int compare(double[] a, double[] b) {
       if (a[0] > b[0]) {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java
index 4884581b1b2..c9973c5496e 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java
@@ -339,7 +339,7 @@ public class CartesianProductStream extends TupleStream implements Expressible {
     return 0;
   }
 
-  class NamedEvaluator {
+  static class NamedEvaluator {
     private String name;
     private StreamEvaluator evaluator;
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ParallelListStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ParallelListStream.java
index e16daa27f70..a8a205c06ce 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ParallelListStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ParallelListStream.java
@@ -164,7 +164,7 @@ public class ParallelListStream extends TupleStream implements Expressible {
     }
   }
 
-  protected class StreamOpener implements Callable<StreamIndex> {
+  protected static class StreamOpener implements Callable<StreamIndex> {
 
     private StreamIndex streamIndex;
 
@@ -179,7 +179,7 @@ public class ParallelListStream extends TupleStream implements Expressible {
     }
   }
 
-  protected class StreamIndex {
+  protected static class StreamIndex {
     private TupleStream tupleStream;
     private int index;
 
diff --git a/solr/solrj/src/java/org/noggit/CharArr.java b/solr/solrj/src/java/org/noggit/CharArr.java
index 7de8fc581bd..6e8ac9f2d25 100644
--- a/solr/solrj/src/java/org/noggit/CharArr.java
+++ b/solr/solrj/src/java/org/noggit/CharArr.java
@@ -258,7 +258,7 @@ public class CharArr implements CharSequence, Appendable {
   }
 
   // IDEA: a subclass that refills the array from a reader?
-  class CharArrReader extends CharArr {
+  static class CharArrReader extends CharArr {
     protected final Reader in;
 
     public CharArrReader(Reader in, int size) {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingEmbeddedTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingEmbeddedTest.java
index af4a76a865c..eebd3e6c5ae 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingEmbeddedTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingEmbeddedTest.java
@@ -625,7 +625,7 @@ public class DirectJsonQueryRequestFacetingEmbeddedTest extends EmbeddedSolrServ
         new FacetBucket("currency", 4));
   }
 
-  private class FacetBucket {
+  private static class FacetBucket {
     private final Object val;
     private final int count;
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java
index 4ad699afd2c..33d7e2b9b70 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java
@@ -604,7 +604,7 @@ public class DirectJsonQueryRequestFacetingIntegrationTest extends SolrCloudTest
         new FacetBucket("currency", 4));
   }
 
-  private class FacetBucket {
+  private static class FacetBucket {
     private final Object val;
     private final int count;
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java
index 58c684c92ee..91592436530 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java
@@ -592,7 +592,7 @@ public class JsonQueryRequestFacetingIntegrationTest extends SolrCloudTestCase {
     assertEquals(7, topLevelFacetData.getBucketBasedFacets("price_range").getBetween());
   }
 
-  private class FacetBucket {
+  private static class FacetBucket {
     private final Object val;
     private final int count;
 


[solr] 07/09: SOLR-16427: Evaluate and fix errorprone rules - ModifiedButNotUsed

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 a37cfac7cdbb2b9f35308e43cb627676cb2a528a
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Mon Oct 24 16:44:37 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - ModifiedButNotUsed
---
 gradle/validation/error-prone.gradle                |  3 +--
 .../test/org/apache/solr/bench/DockMakerTest.java   | 13 +++++--------
 .../org/apache/solr/cloud/ZkDistributedQueue.java   |  1 +
 .../cloud/api/collections/DeleteSnapshotCmd.java    |  3 +--
 .../solr/cloud/api/collections/SplitShardCmd.java   | 11 +----------
 .../apache/solr/cloud/ReplicationFactorTest.java    |  2 +-
 .../test/org/apache/solr/core/TestConfLoadPerf.java |  4 +++-
 .../solr/handler/admin/ThreadDumpHandlerTest.java   |  2 ++
 .../solr/handler/component/StatsComponentTest.java  | 21 ++++++++++-----------
 .../solr/response/TestRetrieveFieldsOptimizer.java  |  5 -----
 .../transform/TestSubQueryTransformerDistrib.java   |  6 ------
 .../org/apache/solr/update/AddBlockUpdateTest.java  |  4 ----
 .../org/apache/solr/util/TestCircuitBreaker.java    | 16 ----------------
 .../examples/JsonRequestApiHeatmapFacetingTest.java |  3 ---
 .../query-guide/examples/JsonRequestApiTest.java    |  5 -----
 .../solrj/request/DelegationTokenRequest.java       |  2 --
 .../impl/CloudHttp2SolrClientBadInputTest.java      |  2 --
 .../solrj/impl/CloudSolrClientBadInputTest.java     |  2 --
 ...rectJsonQueryRequestFacetingIntegrationTest.java |  4 ----
 .../JsonQueryRequestFacetingIntegrationTest.java    |  4 ----
 .../json/JsonQueryRequestHeatmapFacetingTest.java   |  3 ---
 .../json/JsonQueryRequestIntegrationTest.java       |  5 -----
 .../solrj/request/json/QueryFacetMapTest.java       |  6 +-----
 .../src/java/org/apache/solr/JSONTestUtil.java      |  1 -
 24 files changed, 26 insertions(+), 102 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 24e830b51f6..649d6921f4b 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -98,8 +98,7 @@ allprojects { prj ->
             '-Xep:LogicalAssignment:OFF',
             '-Xep:MissingSummary:OFF',
             '-Xep:MixedMutabilityReturnType:OFF',
-            '-Xep:ModifiedButNotUsed:OFF',
-            '-Xep:MutablePublicArray:OFF',
+            '-Xep:MutablePublicArray:OFF', // this should be possible...
             '-Xep:NarrowingCompoundAssignment:OFF',
             '-Xep:NegativeCharLiteral:OFF',
             '-Xep:NonAtomicVolatileUpdate:OFF',
diff --git a/solr/benchmark/src/test/org/apache/solr/bench/DockMakerTest.java b/solr/benchmark/src/test/org/apache/solr/bench/DockMakerTest.java
index 5793c535f5f..4f106241db6 100644
--- a/solr/benchmark/src/test/org/apache/solr/bench/DockMakerTest.java
+++ b/solr/benchmark/src/test/org/apache/solr/bench/DockMakerTest.java
@@ -191,17 +191,14 @@ public class DockMakerTest extends SolrTestCaseJ4 {
   }
 
   @Test
-  public void testWordListZipfian() throws Exception {
+  public void testWordListZipfian() {
     Docs docs = docs();
-
     docs.field("wordList", strings().wordList().withDistribution(Distribution.ZIPFIAN).multi(30));
 
-    Set<String> values = new HashSet<>();
-    for (int i = 0; i < 1; i++) {
-      SolrInputDocument doc = docs.inputDocument();
-      SolrInputField field = doc.getField("wordList");
-      values.add(field.getValue().toString());
-    }
+    SolrInputDocument doc = docs.inputDocument();
+    SolrInputField field = doc.getField("wordList");
+
+    assertNotNull(field.getValue().toString());
   }
 
   @Test
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java
index 5bb27867c62..1332661019b 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedQueue.java
@@ -387,6 +387,7 @@ public class ZkDistributedQueue implements DistributedQueue {
                     Map<String, Object> fo = new HashMap<>();
                     fo.put("req", failedOp.req);
                     fo.put("resp", failedOp.resp);
+                    failed.add(fo);
                   });
               statsMap.put(op, statMap);
             });
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/DeleteSnapshotCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/DeleteSnapshotCmd.java
index a893bbf701e..b3970210cb6 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/DeleteSnapshotCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/DeleteSnapshotCmd.java
@@ -134,7 +134,6 @@ public class DeleteSnapshotCmd implements CollApiCmds.CollectionApiCommand {
     shardRequestTracker.processResponses(shardRequestResults, shardHandler, false, null);
     @SuppressWarnings("unchecked")
     NamedList<Object> success = (NamedList<Object>) shardRequestResults.get("success");
-    List<CoreSnapshotMetaData> replicas = new ArrayList<>();
     if (success != null) {
       for (int i = 0; i < success.size(); i++) {
         NamedList<?> resp = (NamedList<?>) success.getVal(i);
@@ -182,7 +181,7 @@ public class DeleteSnapshotCmd implements CollApiCmds.CollectionApiCommand {
       // level meta-data.
       SolrSnapshotManager.deleteCollectionLevelSnapshot(zkClient, collectionName, commitName);
       log.info(
-          "Deleted Zookeeper snapshot metdata for collection={} with commitName={}",
+          "Deleted Zookeeper snapshot metadata for collection={} with commitName={}",
           collectionName,
           commitName);
       log.info(
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/SplitShardCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/SplitShardCmd.java
index a0bf85600d9..0193e0b1939 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/SplitShardCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/SplitShardCmd.java
@@ -377,7 +377,6 @@ public class SplitShardCmd implements CollApiCmds.CollectionApiCommand {
         // refresh the locally cached cluster state
         // we know we have the latest because otherwise deleteshard would have failed
         clusterState = zkStateReader.getClusterState();
-        collection = clusterState.getCollection(collectionName);
       }
 
       // 4. create the child sub-shards in CONSTRUCTION state
@@ -559,14 +558,6 @@ public class SplitShardCmd implements CollApiCmds.CollectionApiCommand {
 
       log.debug("Successfully applied buffered updates on : {}", subShardNames);
 
-      // 9. determine node placement for additional replicas
-      Set<String> nodes = clusterState.getLiveNodes();
-      List<String> nodeList = new ArrayList<>(nodes.size());
-      nodeList.addAll(nodes);
-
-      // Remove the node that hosts the parent shard for replica creation.
-      nodeList.remove(nodeName);
-
       // TODO: change this to handle sharding a slice into > 2 sub-shards.
 
       // we have already created one subReplica for each subShard on the parent node.
@@ -1252,7 +1243,7 @@ public class SplitShardCmd implements CollApiCmds.CollectionApiCommand {
       String path = ZkStateReader.COLLECTIONS_ZKNODE + "/" + collection;
       try {
         List<String> names = cloudManager.getDistribStateManager().listData(path);
-        for (String name : cloudManager.getDistribStateManager().listData(path)) {
+        for (String name : names) {
           if (name.endsWith("-splitting")) {
             try {
               cloudManager.getDistribStateManager().removeData(path + "/" + name, -1);
diff --git a/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java b/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java
index 37cd2f99328..c02e81ef575 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ReplicationFactorTest.java
@@ -253,7 +253,7 @@ public class ReplicationFactorTest extends AbstractFullDistribZkTestBase {
 
     // Delete the docs by query indicated.
     req = new UpdateRequest();
-    req.deleteByQuery("id:(" + StringUtils.join(byQueriesSet, " OR ") + ")");
+    req.deleteByQuery("id:(" + StringUtils.join(byQueryList, " OR ") + ")");
     sendNonDirectUpdateRequestReplicaWithRetry(rep, req, expectedRfDBQ, coll);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java b/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java
index af67ea58b9b..f8c7bc84c41 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfLoadPerf.java
@@ -82,9 +82,11 @@ public class TestConfLoadPerf extends SolrTestCaseJ4 {
     long heapSize = Runtime.getRuntime().totalMemory();
     List<SolrConfig> allConfigs = new ArrayList<>();
     long startTime = System.currentTimeMillis();
-    for (int i = 0; i < 100; i++) {
+    int numReads = 100;
+    for (int i = 0; i < numReads; i++) {
       allConfigs.add(SolrConfig.readFromResourceLoader(srl, "solrconfig.xml", true, null));
     }
+    assertEquals(numReads, allConfigs.size());
     System.gc();
     System.out.println("TIME_TAKEN : " + (System.currentTimeMillis() - startTime));
     System.out.println("HEAP_SIZE : " + ((Runtime.getRuntime().totalMemory() - heapSize) / (1024)));
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
index 962092db5fc..703bb18bb65 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/ThreadDumpHandlerTest.java
@@ -172,6 +172,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
       assertFalse("ownerT is still alive", ownerT.isAlive());
       blockedT.join(1000);
       assertFalse("blockedT is still alive", blockedT.isAlive());
+      assertTrue(failures.isEmpty());
     }
   }
 
@@ -298,6 +299,7 @@ public class ThreadDumpHandlerTest extends SolrTestCaseJ4 {
       assertFalse("ownerT is still alive", ownerT.isAlive());
       blockedT.join(1000);
       assertFalse("blockedT is still alive", blockedT.isAlive());
+      assertTrue(failures.isEmpty());
     }
   }
 
diff --git a/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
index 381928669c6..31c2ba8d91e 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
@@ -93,7 +93,7 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
       SolrParams[] baseParamsSet =
           new SolrParams[] {
             // NOTE: doTestFieldStatisticsResult needs the full list of possible tags to exclude
-            params("stats.field", f, "stats", "true"),
+            params(StatsParams.STATS_FIELD, f, StatsParams.STATS, "true"),
             params(
                 "stats.field",
                 "{!ex=fq1,fq2}" + f,
@@ -471,16 +471,15 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     assertU(adoc("id", "4"));
     assertU(commit());
 
-    Map<String, String> args = new HashMap<>();
-    args.put(CommonParams.Q, "*:*");
-    args.put(StatsParams.STATS, "true");
-    args.put(StatsParams.STATS_FIELD, f);
-    args.put("f." + f + ".stats.calcdistinct", "true");
-    args.put("indent", "true");
-
     for (SolrParams baseParams :
         new SolrParams[] {
-          params("stats.field", f, "stats", "true", "f." + f + ".stats.calcdistinct", "true"),
+          params(
+              StatsParams.STATS_FIELD,
+              f,
+              StatsParams.STATS,
+              "true",
+              "f." + f + ".stats.calcdistinct",
+              "true"),
           params(
               "json.facet", // note: no distinctValues support
               "{min:'min("
@@ -511,7 +510,7 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     // string field cardinality
     for (SolrParams baseParams :
         new SolrParams[] {
-          params("stats.field", "{!cardinality=true}" + f, "stats", "true"),
+          params(StatsParams.STATS_FIELD, "{!cardinality=true}" + f, StatsParams.STATS, "true"),
           params("json.facet", "{cardinality:'hll(" + f + ")'}")
         }) {
       assertQ(
@@ -524,7 +523,7 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
     // stats over a string function
     for (SolrParams baseParams :
         new SolrParams[] {
-          params("stats.field", "{!func}" + strFunc, "stats", "true"),
+          params(StatsParams.STATS_FIELD, "{!func}" + strFunc, StatsParams.STATS, "true"),
           params(
               "json.facet", // note: no function support for unique
               "{min:'min("
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 aa147068bd0..0c04a08b4ec 100644
--- a/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
+++ b/solr/core/src/test/org/apache/solr/response/TestRetrieveFieldsOptimizer.java
@@ -500,11 +500,6 @@ class RetrieveField {
   final RetrieveFieldType testFieldType;
 
   RetrieveField(IndexSchema schema, String name, String type, Map<String, String> opts) {
-
-    Map<String, String> fullOpts = new HashMap<>(opts);
-    fullOpts.put("name", name);
-    fullOpts.put("type", type);
-
     this.name = name;
     this.type = type;
     this.schemaField = schema.newField(name, type, opts);
diff --git a/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java b/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
index a9751e19b3b..40bc38fd1a3 100644
--- a/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
+++ b/solr/core/src/test/org/apache/solr/response/transform/TestSubQueryTransformerDistrib.java
@@ -23,10 +23,8 @@ import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Path;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.Random;
 import org.apache.solr.JSONTestUtil;
 import org.apache.solr.client.solrj.SolrServerException;
@@ -65,10 +63,6 @@ public class TestSubQueryTransformerDistrib extends SolrCloudTestCase {
     int nodeCount = 5;
     configureCluster(nodeCount).addConfig(configName, configDir).configure();
 
-    Map<String, String> collectionProperties = new HashMap<>();
-    collectionProperties.put("config", "solrconfig-doctransformers.xml");
-    collectionProperties.put("schema", "schema-docValuesJoin.xml");
-
     int shards = 2;
     int replicas = 2;
     CollectionAdminRequest.createCollection(people, configName, shards, replicas)
diff --git a/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java b/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
index 35ac7d6fe4d..056a7e70ad7 100644
--- a/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
+++ b/solr/core/src/test/org/apache/solr/update/AddBlockUpdateTest.java
@@ -29,10 +29,8 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
@@ -718,13 +716,11 @@ public class AddBlockUpdateTest extends SolrTestCaseJ4 {
     topDocument.addField("parent_f2", "v2");
 
     int childsNum = atLeast(10);
-    Map<String, SolrInputDocument> children = new HashMap<>(childsNum);
     for (int i = 0; i < childsNum; ++i) {
       SolrInputDocument child = new SolrInputDocument();
       child.addField("key", (i + 5) * atLeast(4));
       String childKey = String.format(Locale.ROOT, "child%d", i);
       topDocument.addField(childKey, child);
-      children.put(childKey, child);
     }
 
     ByteArrayOutputStream os = new ByteArrayOutputStream();
diff --git a/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java b/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java
index c89b92281f6..bb85b8d4cd6 100644
--- a/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java
+++ b/solr/core/src/test/org/apache/solr/util/TestCircuitBreaker.java
@@ -21,7 +21,6 @@ import static org.hamcrest.CoreMatchers.containsString;
 
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
@@ -33,7 +32,6 @@ import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.SolrNamedThreadFactory;
 import org.apache.solr.core.PluginInfo;
-import org.apache.solr.search.QueryParsing;
 import org.apache.solr.util.circuitbreaker.CPUCircuitBreaker;
 import org.apache.solr.util.circuitbreaker.CircuitBreaker;
 import org.apache.solr.util.circuitbreaker.CircuitBreakerManager;
@@ -79,11 +77,6 @@ public class TestCircuitBreaker extends SolrTestCaseJ4 {
   }
 
   public void testCBAlwaysTrips() {
-    HashMap<String, String> args = new HashMap<String, String>();
-
-    args.put(QueryParsing.DEFTYPE, CircuitBreaker.NAME);
-    args.put(CommonParams.FL, "id");
-
     removeAllExistingCircuitBreakers();
 
     PluginInfo pluginInfo =
@@ -104,11 +97,6 @@ public class TestCircuitBreaker extends SolrTestCaseJ4 {
   }
 
   public void testCBFakeMemoryPressure() {
-    HashMap<String, String> args = new HashMap<String, String>();
-
-    args.put(QueryParsing.DEFTYPE, CircuitBreaker.NAME);
-    args.put(CommonParams.FL, "id");
-
     removeAllExistingCircuitBreakers();
 
     PluginInfo pluginInfo =
@@ -130,10 +118,6 @@ public class TestCircuitBreaker extends SolrTestCaseJ4 {
   public void testBuildingMemoryPressure() {
     ExecutorService executor =
         ExecutorUtil.newMDCAwareCachedThreadPool(new SolrNamedThreadFactory("TestCircuitBreaker"));
-    HashMap<String, String> args = new HashMap<String, String>();
-
-    args.put(QueryParsing.DEFTYPE, CircuitBreaker.NAME);
-    args.put(CommonParams.FL, "id");
 
     AtomicInteger failureCount = new AtomicInteger();
 
diff --git a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java
index db749b94d05..245f1fc6e0d 100644
--- a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java
+++ b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiHeatmapFacetingTest.java
@@ -60,9 +60,6 @@ public class JsonRequestApiHeatmapFacetingTest extends SolrCloudTestCase {
                 .toPath())
         .configure();
 
-    final List<String> solrUrls = new ArrayList<>();
-    solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-
     CollectionAdminRequest.createCollection(COLLECTION_NAME, CONFIG_NAME, 1, 1)
         .setPerReplicaState(SolrCloudTestCase.USE_PER_REPLICA_STATE)
         .process(cluster.getSolrClient());
diff --git a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
index 3a95cf6de1d..ee338ffa2dd 100644
--- a/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
+++ b/solr/solr-ref-guide/modules/query-guide/examples/JsonRequestApiTest.java
@@ -61,9 +61,6 @@ public class JsonRequestApiTest extends SolrCloudTestCase {
         .addConfig(CONFIG_NAME, new File(ExternalPaths.TECHPRODUCTS_CONFIGSET).toPath())
         .configure();
 
-    final List<String> solrUrls = new ArrayList<>();
-    solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-
     CollectionAdminRequest.createCollection(COLLECTION_NAME, CONFIG_NAME, 1, 1)
         .setPerReplicaState(SolrCloudTestCase.USE_PER_REPLICA_STATE)
         .process(cluster.getSolrClient());
@@ -348,8 +345,6 @@ public class JsonRequestApiTest extends SolrCloudTestCase {
       // tag::solrj-ipod-query-bool-condensed[]
       final Map<String, Object> queryTopLevel = new HashMap<>();
       final Map<String, Object> boolProperties = new HashMap<>();
-      final List<Object> mustClauses = new ArrayList<>();
-      final List<Object> mustNotClauses = new ArrayList<>();
       queryTopLevel.put("bool", boolProperties);
       boolProperties.put("must", "name:iPod");
       boolProperties.put("must_not", "{!frange l=0 u=5}popularity");
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/DelegationTokenRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/DelegationTokenRequest.java
index 0e61e028bdd..46773c2671f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/DelegationTokenRequest.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/DelegationTokenRequest.java
@@ -18,7 +18,6 @@
 package org.apache.solr.client.solrj.request;
 
 import java.util.Arrays;
-import java.util.Set;
 import java.util.TreeSet;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrRequest;
@@ -131,7 +130,6 @@ public abstract class DelegationTokenRequest<
       super(METHOD.PUT);
       this.token = token;
       setResponseParser(new NoOpResponseParser());
-      Set<String> queryParams = new TreeSet<>();
       setQueryParams(new TreeSet<>(Arrays.asList(OP_KEY, TOKEN_KEY)));
     }
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBadInputTest.java
index e634cb2388b..20bd576ab9d 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBadInputTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientBadInputTest.java
@@ -34,8 +34,6 @@ public class CloudHttp2SolrClientBadInputTest extends SolrCloudTestCase {
   @BeforeClass
   public static void setupCluster() throws Exception {
     configureCluster(1).configure();
-
-    final List<String> solrUrls = new ArrayList<>();
   }
 
   @Test
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBadInputTest.java
index 3ec2d4d7497..4f498a0beb1 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBadInputTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBadInputTest.java
@@ -34,8 +34,6 @@ public class CloudSolrClientBadInputTest extends SolrCloudTestCase {
   @BeforeClass
   public static void setupCluster() throws Exception {
     configureCluster(1).configure();
-
-    final List<String> solrUrls = new ArrayList<>();
   }
 
   @Test
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java
index 33d7e2b9b70..9436185af51 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/DirectJsonQueryRequestFacetingIntegrationTest.java
@@ -18,7 +18,6 @@
 package org.apache.solr.client.solrj.request.json;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.List;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
@@ -52,9 +51,6 @@ public class DirectJsonQueryRequestFacetingIntegrationTest extends SolrCloudTest
         .addConfig(CONFIG_NAME, new File(ExternalPaths.TECHPRODUCTS_CONFIGSET).toPath())
         .configure();
 
-    final List<String> solrUrls = new ArrayList<>();
-    solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-
     CollectionAdminRequest.createCollection(COLLECTION_NAME, CONFIG_NAME, 1, 1)
         .setPerReplicaState(SolrCloudTestCase.USE_PER_REPLICA_STATE)
         .process(cluster.getSolrClient());
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java
index 91592436530..6705f4bb30f 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestFacetingIntegrationTest.java
@@ -20,7 +20,6 @@ package org.apache.solr.client.solrj.request.json;
 import java.io.File;
 import java.io.IOException;
 import java.time.Instant;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -59,9 +58,6 @@ public class JsonQueryRequestFacetingIntegrationTest extends SolrCloudTestCase {
         .addConfig(CONFIG_NAME, new File(ExternalPaths.TECHPRODUCTS_CONFIGSET).toPath())
         .configure();
 
-    final List<String> solrUrls = new ArrayList<>();
-    solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-
     CollectionAdminRequest.createCollection(COLLECTION_NAME, CONFIG_NAME, 1, 1)
         .setPerReplicaState(SolrCloudTestCase.USE_PER_REPLICA_STATE)
         .process(cluster.getSolrClient());
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestHeatmapFacetingTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestHeatmapFacetingTest.java
index 5b632bbee17..59e85869e14 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestHeatmapFacetingTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestHeatmapFacetingTest.java
@@ -47,9 +47,6 @@ public class JsonQueryRequestHeatmapFacetingTest extends SolrCloudTestCase {
                 .toPath())
         .configure();
 
-    final List<String> solrUrls = new ArrayList<>();
-    solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-
     CollectionAdminRequest.createCollection(COLLECTION_NAME, CONFIG_NAME, 1, 1)
         .setPerReplicaState(SolrCloudTestCase.USE_PER_REPLICA_STATE)
         .process(cluster.getSolrClient());
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestIntegrationTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestIntegrationTest.java
index 662daa8c27a..203f69189ce 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestIntegrationTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/JsonQueryRequestIntegrationTest.java
@@ -19,10 +19,8 @@ package org.apache.solr.client.solrj.request.json;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
@@ -55,9 +53,6 @@ public class JsonQueryRequestIntegrationTest extends SolrCloudTestCase {
         .addConfig(CONFIG_NAME, new File(ExternalPaths.TECHPRODUCTS_CONFIGSET).toPath())
         .configure();
 
-    final List<String> solrUrls = new ArrayList<>();
-    solrUrls.add(cluster.getJettySolrRunner(0).getBaseUrl().toString());
-
     CollectionAdminRequest.createCollection(COLLECTION_NAME, CONFIG_NAME, 1, 1)
         .process(cluster.getSolrClient());
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/QueryFacetMapTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/QueryFacetMapTest.java
index c86799b729a..bb69140accc 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/QueryFacetMapTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/json/QueryFacetMapTest.java
@@ -33,11 +33,7 @@ public class QueryFacetMapTest extends SolrTestCaseJ4 {
   @Test
   public void testRejectsInvalidQueryString() {
     final Throwable thrown =
-        expectThrows(
-            IllegalArgumentException.class,
-            () -> {
-              final QueryFacetMap queryFacet = new QueryFacetMap(null);
-            });
+        expectThrows(IllegalArgumentException.class, () -> new QueryFacetMap(null));
     MatcherAssert.assertThat(thrown.getMessage(), containsString("must be non-null"));
   }
 
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 7091ac58ef9..649664829f9 100644
--- a/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
+++ b/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
@@ -345,7 +345,6 @@ class CollectionTester {
     }
 
     Set<String> keys = match != null ? match : expectedMap.keySet();
-    Set<String> visited = new HashSet<>();
 
     Iterator<Map.Entry<String, Object>> iter = ordered ? v.entrySet().iterator() : null;
 


[solr] 05/09: SOLR-16427: Evaluate and fix errorprone rules - EscapedEntity / UnescapedEntity

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 daa4bdc5ffb09074a8b4fbbede3c5c11e28bf756
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Mon Oct 24 15:17:34 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - EscapedEntity / UnescapedEntity
---
 gradle/validation/error-prone.gradle               |  2 --
 .../cloud/ZkDistributedCollectionLockFactory.java  | 26 +++++++++++-----------
 .../cloud/ZkDistributedConfigSetLockFactory.java   | 12 +++++-----
 .../java/org/apache/solr/handler/GraphHandler.java | 11 ++++-----
 .../org/apache/solr/handler/StreamHandler.java     |  3 +--
 .../src/java/org/apache/solr/util/hll/HLLUtil.java | 10 ++++-----
 .../apache/solr/util/hll/SerializationUtil.java    |  4 ++--
 .../client/solrj/beans/DocumentObjectBinder.java   |  6 ++---
 8 files changed, 34 insertions(+), 40 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index 276bb435449..fa61cabb918 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -84,7 +84,6 @@ allprojects { prj ->
             '-Xep:DoubleCheckedLocking:OFF',
             '-Xep:EmptyCatch:OFF',
             '-Xep:EqualsUnsafeCast:OFF',
-            '-Xep:EscapedEntity:OFF',
             '-Xep:Finally:OFF',
             '-Xep:FutureReturnValueIgnored:OFF',
             '-Xep:IdentityBinaryExpression:OFF',
@@ -121,7 +120,6 @@ allprojects { prj ->
             '-Xep:ThreadPriorityCheck:OFF',
             '-Xep:TypeParameterShadowing:OFF',
             '-Xep:TypeParameterUnusedInFormals:OFF',
-            '-Xep:UnescapedEntity:OFF',
             '-Xep:UnicodeEscape:OFF',
             '-Xep:UnnecessaryParentheses:OFF',
             '-Xep:UnusedMethod:OFF',
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java
index 56f8c61c188..9d787289c87 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java
@@ -63,19 +63,19 @@ public class ZkDistributedCollectionLockFactory extends ZkDistributedLockFactory
    *
    * <p>The tree of lock directories for a given collection {@code collName} is as follows:
    *
-   * <pre>
-   *   rootPath/
-   *      collName/
-   *         Locks   <-- EPHEMERAL collection level locks go here
-   *         _ShardName1/
-   *            Locks   <-- EPHEMERAL shard level locks go here
-   *            _replicaNameS1R1   <-- EPHEMERAL replica level locks go here
-   *            _replicaNameS1R2   <-- EPHEMERAL replica level locks go here
-   *         _ShardName2/
-   *            Locks   <-- EPHEMERAL shard level locks go here
-   *            _replicaNameS2R1   <-- EPHEMERAL replica level locks go here
-   *            _replicaNameS2R2   <-- EPHEMERAL replica level locks go here
-   * </pre>
+   * <pre>{@code
+   * rootPath/
+   *    collName/
+   *       Locks   <-- EPHEMERAL collection level locks go here
+   *       _ShardName1/
+   *          Locks   <-- EPHEMERAL shard level locks go here
+   *          _replicaNameS1R1   <-- EPHEMERAL replica level locks go here
+   *          _replicaNameS1R2   <-- EPHEMERAL replica level locks go here
+   *       _ShardName2/
+   *          Locks   <-- EPHEMERAL shard level locks go here
+   *          _replicaNameS2R1   <-- EPHEMERAL replica level locks go here
+   *          _replicaNameS2R2   <-- EPHEMERAL replica level locks go here
+   * }</pre>
    *
    * This method will create the path where the {@code EPHEMERAL} lock nodes should go. That path
    * is:
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java
index 4ea61f63f77..488c69932a0 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java
@@ -50,12 +50,12 @@ public class ZkDistributedConfigSetLockFactory extends ZkDistributedLockFactory
    * <p>The tree of lock directories is very flat, given there's no real structure to what's being
    * locked in a config set:
    *
-   * <pre>
-   *   rootPath/
-   *      configSet1/ <-- EPHEMERAL config set locks go here
-   *      configSet2/ <-- EPHEMERAL config set locks go here
-   *      etc...
-   * </pre>
+   * <pre>{@code
+   * rootPath/
+   *    configSet1/ <-- EPHEMERAL config set locks go here
+   *    configSet2/ <-- EPHEMERAL config set locks go here
+   *    etc...
+   * }</pre>
    *
    * This method will create the path where the {@code EPHEMERAL} lock nodes should go.
    *
diff --git a/solr/core/src/java/org/apache/solr/handler/GraphHandler.java b/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
index dafa0863de6..b5a8dfc7a05 100644
--- a/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
@@ -60,14 +60,11 @@ import org.slf4j.LoggerFactory;
  * org.apache.solr.client.solrj.io.stream.expr.DefaultStreamFactory}.
  *
  * <p>To add additional functions, just define them as plugins in solrconfig.xml via {@code
- * &lt;expressible name="count" class="org.apache.solr.client.solrj.io.stream.RecordCountStream"
- * /&gt; }
+ * <expressible name="count" class="org.apache.solr.client.solrj.io.stream.RecordCountStream" />}
  *
- * <p>The @deprecated configuration method as of Solr 8.5 is {@code &lt;lst
- * name="streamFunctions"&gt; &lt;str
- * name="group"&gt;org.apache.solr.client.solrj.io.stream.ReducerStream&lt;/str&gt; &lt;str
- * name="count"&gt;org.apache.solr.client.solrj.io.stream.RecordCountStream&lt;/str&gt; &lt;/lst&gt;
- * }
+ * <p>The @deprecated configuration method as of Solr 8.5 is {@code <lst name="streamFunctions"><str
+ * name="group">org.apache.solr.client.solrj.io.stream.ReducerStream</str><str
+ * name="count">org.apache.solr.client.solrj.io.stream.RecordCountStream</str></lst> }
  *
  * @since 6.1.0
  */
diff --git a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
index 984ca83411a..c0e279c5a29 100644
--- a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
@@ -76,8 +76,7 @@ import org.slf4j.LoggerFactory;
  * org.apache.solr.handler.SolrDefaultStreamFactory}.
  *
  * <p>To add additional functions, just define them as plugins in solrconfig.xml via {@code
- * &lt;expressible name="count" class="org.apache.solr.client.solrj.io.stream.RecordCountStream"
- * /&gt; }
+ * <expressible name="count" class="org.apache.solr.client.solrj.io.stream.RecordCountStream" />}
  *
  * @since 5.1.0
  */
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 9a5eb5082d4..3d955f2edc6 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
@@ -22,11 +22,11 @@ final class HLLUtil {
    * Precomputed <code>pwMaxMask</code> values indexed by <code>registerSizeInBits</code>.
    * Calculated with this formula:
    *
-   * <pre>
-   *     int maxRegisterValue = (1 << registerSizeInBits) - 1;
-   *     // Mask with all bits set except for (maxRegisterValue - 1) least significant bits (see #addRaw())
-   *     return ~((1L << (maxRegisterValue - 1)) - 1);
-   * </pre>
+   * <pre>{@code
+   * int maxRegisterValue = (1 << registerSizeInBits) - 1;
+   * // Mask with all bits set except for (maxRegisterValue - 1) least significant bits (see #addRaw())
+   * return ~((1L << (maxRegisterValue - 1)) - 1);
+   * }</pre>
    *
    * @see #pwMaxMask(int)
    */
diff --git a/solr/core/src/java/org/apache/solr/util/hll/SerializationUtil.java b/solr/core/src/java/org/apache/solr/util/hll/SerializationUtil.java
index f15962d50ae..7548c680d34 100644
--- a/solr/core/src/java/org/apache/solr/util/hll/SerializationUtil.java
+++ b/solr/core/src/java/org/apache/solr/util/hll/SerializationUtil.java
@@ -137,8 +137,8 @@ class SerializationUtil {
    *     <ul>
    *       <li>If 'explicit-disabled' is chosen, this value should be <code>0</code>.
    *       <li>If 'auto' is chosen, this value should be <code>63</code>.
-   *       <li>If a cutoff of 2<sup>n</sup> is desired, for <code>0 <= n < 31</code>, this value
-   *           should be <code>n + 1</code>.
+   *       <li>If a cutoff of 2<sup>n</sup> is desired, for {@code 0 <= n < 31}, this value should
+   *           be {@code n + 1}.
    *     </ul>
    *
    * @param sparseEnabled whether {@link HLLType#SPARSE} should be used in the promotion hierarchy
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java b/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java
index 8f6a2058e6a..d0f65eeb354 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/beans/DocumentObjectBinder.java
@@ -353,9 +353,9 @@ public class DocumentObjectBinder {
 
     /**
      * Called by the {@link #inject} method to read the value(s) for a field This method supports
-     * reading of all "matching" fieldName's in the <code>SolrDocument</code> Returns <code>
-     * SolrDocument.getFieldValue</code> for regular fields, and <code>Map<String, List<Object>>
-     * </code> for a dynamic field. The key is all matching fieldName's.
+     * reading of all "matching" fieldName's in the {@link SolrDocument} Returns {@link
+     * SolrDocument#getFieldValue} for regular fields, and {@code Map<String, List<Object>>} for a
+     * dynamic field. The key is all matching fieldName's.
      */
     private Object getFieldValue(SolrDocument solrDocument) {
       if (child != null) {


[solr] 01/09: SOLR-16427: Evaluate and fix errorprone rules - MissingOverride

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 5465b01341b1d5c3761c3dec820428127137c625
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Fri Oct 21 16:21:36 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - MissingOverride
---
 gradle/validation/error-prone.gradle               |  1 -
 .../solr/bench/SplittableRandomGenerator.java      |  2 +
 .../org/apache/solr/bench/generators/Tracker.java  |  1 +
 .../quicktheories/impl/BenchmarkRandomSource.java  |  1 +
 .../src/java/org/apache/solr/api/AnnotatedApi.java |  2 +
 solr/core/src/java/org/apache/solr/api/ApiBag.java |  1 +
 .../src/java/org/apache/solr/api/V2HttpCall.java   |  1 +
 .../org/apache/solr/cloud/ElectionContext.java     |  1 +
 .../apache/solr/cloud/ExclusiveSliceProperty.java  |  1 +
 .../src/java/org/apache/solr/cloud/Overseer.java   |  1 +
 .../apache/solr/cloud/OverseerTaskProcessor.java   |  2 +
 .../solr/cloud/RefreshCollectionMessage.java       |  1 +
 .../org/apache/solr/cloud/ZkCollectionTerms.java   |  1 +
 .../org/apache/solr/cloud/ZkConfigSetService.java  |  1 +
 .../java/org/apache/solr/cloud/ZkController.java   |  2 +
 .../cloud/ZkDistributedCollectionLockFactory.java  |  1 +
 .../cloud/ZkDistributedConfigSetLockFactory.java   |  1 +
 .../java/org/apache/solr/cloud/ZkShardTerms.java   |  1 +
 .../solr/cloud/api/collections/CollApiCmds.java    |  7 +++
 .../collections/OcmhCollectionCommandContext.java  |  1 +
 .../cluster/placement/impl/NodeMetricImpl.java     |  1 +
 .../impl/PlacementPluginAssignStrategy.java        |  1 +
 .../impl/SimpleClusterAbstractionsImpl.java        |  7 +++
 .../src/java/org/apache/solr/core/CoreSorter.java  |  1 +
 .../solr/core/EphemeralDirectoryFactory.java       |  2 +
 .../solr/core/FileSystemConfigSetService.java      |  1 +
 .../src/java/org/apache/solr/core/PluginBag.java   |  2 +
 .../src/java/org/apache/solr/core/PluginInfo.java  |  1 +
 .../org/apache/solr/core/SolrDeletionPolicy.java   |  2 +
 .../org/apache/solr/core/SolrResourceLoader.java   |  2 +
 .../apache/solr/core/StandardDirectoryFactory.java |  2 +
 .../org/apache/solr/handler/AnalyzeEvaluator.java  |  1 +
 .../java/org/apache/solr/handler/GraphHandler.java | 15 ++++++
 .../solr/handler/HaversineMetersEvaluator.java     |  1 +
 .../java/org/apache/solr/handler/IndexFetcher.java |  8 +++
 .../apache/solr/handler/ReplicationHandler.java    |  4 ++
 .../java/org/apache/solr/handler/RestoreCore.java  |  6 +++
 .../org/apache/solr/handler/StreamHandler.java     | 27 ++++++++++
 .../solr/handler/admin/ConfigSetsHandler.java      |  1 +
 .../solr/handler/admin/IndexSizeEstimator.java     |  8 +++
 .../solr/handler/admin/SecurityConfHandler.java    |  1 +
 .../solr/handler/admin/ZookeeperInfoHandler.java   |  1 +
 .../solr/handler/component/ExpandComponent.java    |  2 +
 .../solr/handler/component/FacetComponent.java     |  2 +
 .../solr/handler/component/HttpShardHandler.java   |  2 +
 .../handler/component/IterativeMergeStrategy.java  |  6 +++
 .../handler/component/MoreLikeThisComponent.java   |  1 +
 .../component/PhrasesIdentificationComponent.java  |  1 +
 .../apache/solr/handler/component/PivotFacet.java  |  1 +
 .../solr/handler/component/PivotFacetField.java    |  1 +
 .../component/PivotFacetFieldValueCollection.java  |  3 ++
 .../solr/handler/component/PivotFacetValue.java    |  1 +
 .../handler/component/RealTimeGetComponent.java    |  6 +++
 .../apache/solr/handler/component/StatsField.java  |  3 ++
 .../solr/handler/component/StatsValuesFactory.java |  2 +
 .../handler/designer/DefaultSchemaSuggester.java   |  1 +
 .../solr/handler/export/BoolFieldWriter.java       |  1 +
 .../solr/handler/export/DateFieldWriter.java       |  1 +
 .../org/apache/solr/handler/export/DoubleComp.java |  4 ++
 .../solr/handler/export/DoubleFieldWriter.java     |  1 +
 .../apache/solr/handler/export/DoubleValue.java    |  9 ++++
 .../apache/solr/handler/export/ExportWriter.java   |  3 ++
 .../org/apache/solr/handler/export/FloatComp.java  |  4 ++
 .../solr/handler/export/FloatFieldWriter.java      |  1 +
 .../org/apache/solr/handler/export/FloatValue.java |  9 ++++
 .../org/apache/solr/handler/export/IntComp.java    |  4 ++
 .../apache/solr/handler/export/IntFieldWriter.java |  1 +
 .../org/apache/solr/handler/export/IntValue.java   |  9 ++++
 .../org/apache/solr/handler/export/LongComp.java   |  4 ++
 .../solr/handler/export/LongFieldWriter.java       |  1 +
 .../org/apache/solr/handler/export/LongValue.java  |  9 ++++
 .../solr/handler/export/MultiFieldWriter.java      |  1 +
 .../solr/handler/export/SingleValueSortDoc.java    |  1 +
 .../org/apache/solr/handler/export/SortDoc.java    |  1 +
 .../solr/handler/export/StringFieldWriter.java     |  1 +
 .../apache/solr/handler/export/StringValue.java    | 10 ++++
 .../jersey/container/ContainerRequestUtils.java    |  4 ++
 .../java/org/apache/solr/logging/MDCSnapshot.java  |  1 +
 .../apache/solr/logging/log4j2/Log4j2Watcher.java  |  1 +
 .../java/org/apache/solr/metrics/MetricsMap.java   |  1 +
 .../apache/solr/metrics/SolrMetricReporter.java    |  1 +
 .../metrics/reporters/ReporterClientCache.java     |  1 +
 .../solr/metrics/reporters/SolrJmxReporter.java    |  1 +
 .../metrics/reporters/jmx/JmxMetricsReporter.java  |  1 +
 .../java/org/apache/solr/parser/QueryParser.java   |  2 +
 .../apache/solr/request/LocalSolrQueryRequest.java |  1 +
 .../org/apache/solr/request/SolrQueryRequest.java  |  1 +
 .../apache/solr/request/SolrQueryRequestBase.java  |  1 +
 .../org/apache/solr/response/DocsStreamer.java     |  2 +
 .../solr/response/GraphMLResponseWriter.java       |  2 +
 .../apache/solr/response/TextResponseWriter.java   |  7 +++
 .../solr/response/transform/DocTransformer.java    |  3 ++
 .../schema/analysis/ManagedStopFilterFactory.java  |  1 +
 .../analysis/ManagedSynonymFilterFactory.java      |  2 +
 .../analysis/ManagedSynonymGraphFilterFactory.java |  2 +
 .../org/apache/solr/schema/CurrencyFieldType.java  |  1 +
 .../org/apache/solr/schema/DenseVectorField.java   |  1 +
 .../java/org/apache/solr/schema/IndexSchema.java   |  9 ++++
 .../org/apache/solr/schema/ManagedIndexSchema.java |  1 +
 .../java/org/apache/solr/schema/SchemaField.java   |  2 +
 .../org/apache/solr/schema/SortableTextField.java  |  1 +
 .../apache/solr/schema/ZkIndexSchemaReader.java    |  3 ++
 .../apache/solr/search/AbstractReRankQuery.java    |  4 ++
 .../org/apache/solr/search/AnalyticsQuery.java     |  5 ++
 .../src/java/org/apache/solr/search/BitDocSet.java |  1 +
 .../solr/search/CollapsingQParserPlugin.java       | 46 +++++++++++++++++
 .../solr/search/ComplexPhraseQParserPlugin.java    |  2 +
 .../src/java/org/apache/solr/search/DocSet.java    |  1 +
 .../apache/solr/search/ExportQParserPlugin.java    | 11 ++++
 .../solr/search/GraphTermsQParserPlugin.java       |  7 +++
 .../org/apache/solr/search/HashQParserPlugin.java  |  2 +
 .../java/org/apache/solr/search/PointMerger.java   |  4 ++
 .../org/apache/solr/search/ReRankCollector.java    |  3 ++
 .../apache/solr/search/ReRankQParserPlugin.java    |  5 ++
 .../java/org/apache/solr/search/ReRankWeight.java  |  1 +
 .../src/java/org/apache/solr/search/SolrCache.java |  1 +
 .../org/apache/solr/search/TermsQParserPlugin.java |  5 ++
 .../TextLogisticRegressionQParserPlugin.java       |  5 ++
 .../org/apache/solr/search/TopLevelJoinQuery.java  |  5 ++
 .../org/apache/solr/search/XmlQParserPlugin.java   |  2 +
 .../solr/search/facet/FacetFieldProcessor.java     |  5 ++
 .../org/apache/solr/search/facet/FacetHeatmap.java |  1 +
 .../org/apache/solr/search/facet/FacetParser.java  |  1 +
 .../apache/solr/search/facet/FacetRangeParser.java |  1 +
 .../org/apache/solr/search/facet/FacetRequest.java |  3 ++
 .../apache/solr/search/facet/PercentileAgg.java    |  1 +
 .../apache/solr/search/facet/RelatednessAgg.java   |  3 ++
 .../java/org/apache/solr/search/facet/SlotAcc.java |  2 +
 .../java/org/apache/solr/search/facet/SumAgg.java  |  1 +
 .../search/function/CollapseScoreFunction.java     |  8 +++
 .../solr/search/function/ConcatStringFunction.java |  1 +
 .../solr/search/join/GraphEdgeCollector.java       |  1 +
 .../join/MultiValueTermOrdinalCollector.java       |  1 +
 .../apache/solr/search/mlt/CloudMLTQParser.java    |  1 +
 .../apache/solr/search/mlt/SimpleMLTQParser.java   |  1 +
 .../apache/solr/search/stats/CollectionStats.java  |  1 +
 .../solr/search/stats/ExactSharedStatsCache.java   |  4 ++
 .../apache/solr/search/stats/ExactStatsCache.java  |  1 +
 .../org/apache/solr/search/stats/StatsCache.java   |  1 +
 .../org/apache/solr/search/stats/TermStats.java    |  1 +
 .../security/Sha256AuthenticationProvider.java     |  1 +
 .../solr/servlet/ServletInputStreamWrapper.java    | 16 ++++++
 .../solr/servlet/ServletOutputStreamWrapper.java   | 25 ++++++++++
 .../org/apache/solr/uninverting/FieldCache.java    |  1 +
 .../apache/solr/uninverting/FieldCacheImpl.java    |  5 ++
 .../apache/solr/update/DefaultSolrCoreState.java   |  1 +
 .../org/apache/solr/update/SolrCmdDistributor.java |  5 ++
 .../apache/solr/update/StreamingSolrClients.java   |  1 +
 .../org/apache/solr/update/TimedVersionBucket.java |  3 ++
 .../org/apache/solr/update/TransactionLog.java     |  4 ++
 .../org/apache/solr/update/UpdateShardHandler.java |  1 +
 ...llValuesOrNoneFieldMutatingUpdateProcessor.java |  1 +
 .../processor/DistributedUpdateProcessor.java      |  2 +
 .../processor/DistributedZkUpdateProcessor.java    |  1 +
 .../DocExpirationUpdateProcessorFactory.java       |  4 ++
 .../processor/NestedUpdateProcessorFactory.java    |  1 +
 .../processor/UUIDUpdateProcessorFactory.java      |  2 +
 .../src/java/org/apache/solr/util/PackageTool.java |  1 +
 .../core/src/java/org/apache/solr/util/RTimer.java |  2 +
 .../src/java/org/apache/solr/util/SolrCLI.java     | 58 ++++++++++++++++++++++
 .../providers/EnvSSLCredentialProvider.java        |  2 +
 .../providers/SysPropSSLCredentialProvider.java    |  1 +
 .../test/org/apache/solr/cloud/AddReplicaTest.java |  1 +
 ...aosMonkeyNothingIsSafeWithPullReplicasTest.java |  3 ++
 .../ChaosMonkeySafeLeaderWithPullReplicasTest.java |  2 +
 .../solr/cloud/ChaosMonkeyShardSplitTest.java      |  1 +
 .../apache/solr/cloud/DistributedQueueTest.java    |  1 +
 .../solr/cloud/DistributedVersionInfoTest.java     |  4 ++
 .../org/apache/solr/cloud/HttpPartitionTest.java   |  1 +
 .../cloud/LeaderFailoverAfterPartitionTest.java    |  1 +
 .../cloud/LeaderFailureAfterFreshStartTest.java    |  1 +
 .../apache/solr/cloud/LeaderTragicEventTest.java   |  2 +
 .../solr/cloud/LeaderVoteWaitTimeoutTest.java      |  1 +
 .../org/apache/solr/cloud/MoveReplicaTest.java     |  2 +
 .../OverseerCollectionConfigSetProcessorTest.java  |  9 ++++
 .../test/org/apache/solr/cloud/OverseerTest.java   |  3 ++
 .../apache/solr/cloud/PeerSyncReplicationTest.java |  2 +
 .../solr/cloud/TestCloudSearcherWarming.java       |  1 +
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   |  2 +
 .../solr/cloud/TestConfigSetsAPIExclusivity.java   |  1 +
 .../solr/cloud/TestDistribDocBasedVersion.java     |  1 +
 .../apache/solr/cloud/TestRandomFlRTGCloud.java    | 32 ++++++++++++
 .../solr/cloud/TestSizeLimitedDistributedMap.java  |  3 +-
 .../solr/cloud/TestSkipOverseerOperations.java     |  1 +
 .../cloud/TestStressCloudBlindAtomicUpdates.java   |  1 +
 .../org/apache/solr/cloud/TestStressLiveNodes.java |  1 +
 .../cloud/TestTolerantUpdateProcessorCloud.java    |  1 +
 .../cloud/TestWaitForStateWithJettyShutdowns.java  |  1 +
 .../solr/cloud/TriLevelCompositeIdRoutingTest.java |  2 +
 .../org/apache/solr/cloud/ZkSolrClientTest.java    |  2 +
 .../CollectionsAPIAsyncDistributedZkTest.java      |  1 +
 .../solr/cloud/api/collections/ShardSplitTest.java |  1 +
 .../TestRequestStatusCollectionAPI.java            |  1 +
 .../solr/cloud/overseer/ZkStateReaderTest.java     |  2 +
 .../solr/cluster/events/AllEventsListener.java     |  1 +
 .../cluster/events/ClusterEventProducerTest.java   |  1 +
 .../impl/CollectionsRepairEventListenerTest.java   |  1 +
 .../placement/ClusterAbstractionsForTest.java      |  6 +++
 .../solr/core/BlobRepositoryMockingTest.java       |  1 +
 .../solr/core/CachingDirectoryFactoryTest.java     |  1 +
 .../org/apache/solr/core/TestCoreContainer.java    |  1 +
 .../src/test/org/apache/solr/core/TestNRTOpen.java |  1 +
 .../solr/handler/RequestHandlerMetricsTest.java    |  1 +
 .../handler/TestHealthCheckHandlerLegacyMode.java  |  1 +
 .../solr/handler/TestReplicationHandler.java       |  1 +
 .../solr/handler/TestReplicationHandlerBackup.java |  1 +
 .../TestReplicationHandlerDiskOverFlow.java        |  1 +
 .../org/apache/solr/handler/TestRestoreCore.java   |  1 +
 .../solr/handler/TestStressIncrementalBackup.java  |  1 +
 .../solr/handler/TestStressThreadBackup.java       |  2 +
 .../solr/handler/admin/CoreAdminOperationTest.java |  2 +
 .../admin/SecurityConfHandlerLocalForTesting.java  |  2 +
 .../admin/api/AddReplicaPropertyAPITest.java       |  1 +
 .../component/DistributedFacetPivotSmallTest.java  |  1 +
 .../component/DistributedTermsComponentTest.java   |  1 +
 .../solr/handler/component/StatsComponentTest.java |  4 ++
 .../tagger/EmbeddedSolrNoSerializeTest.java        |  1 +
 .../org/apache/solr/legacy/TestLegacyTerms.java    |  9 ++++
 .../reporters/SolrGraphiteReporterTest.java        |  1 +
 .../solr/parser/SolrQueryParserBaseTest.java       |  3 ++
 .../solr/response/TestGraphMLResponseWriter.java   |  7 +++
 .../org/apache/solr/schema/DocValuesMultiTest.java |  1 +
 .../test/org/apache/solr/schema/DocValuesTest.java |  1 +
 .../IntPointPrefixActsAsRangeQueryFieldType.java   |  1 +
 .../solr/schema/TestBulkSchemaConcurrent.java      |  1 +
 .../apache/solr/schema/TestCloudSchemaless.java    |  1 +
 .../org/apache/solr/schema/TestPointFields.java    |  1 +
 .../TrieIntPrefixActsAsRangeQueryFieldType.java    |  1 +
 .../solr/search/AnalyticsTestQParserPlugin.java    | 11 ++++
 .../search/ApacheLuceneSolrNearQueryBuilder.java   |  2 +
 .../solr/search/ChooseOneWordQueryBuilder.java     |  2 +
 .../apache/solr/search/GoodbyeQueryBuilder.java    |  1 +
 .../org/apache/solr/search/HandyQueryBuilder.java  |  2 +
 .../org/apache/solr/search/HelloQueryBuilder.java  |  1 +
 .../org/apache/solr/search/MergeStrategyTest.java  |  9 ++++
 .../apache/solr/search/RankQueryTestPlugin.java    | 30 +++++++++++
 .../apache/solr/search/SolrIndexSearcherTest.java  |  3 ++
 .../org/apache/solr/search/TestIndexSearcher.java  |  2 +
 .../solr/search/stats/TestBaseStatsCache.java      |  1 +
 .../solr/search/stats/TestDefaultStatsCache.java   |  1 +
 .../solr/security/AuditLoggerPluginTest.java       |  1 +
 .../apache/solr/security/CertAuthPluginTest.java   |  1 +
 .../solr/security/TestAuthorizationFramework.java  |  1 +
 .../apache/solr/update/MaxSizeAutoCommitTest.java  |  1 +
 .../apache/solr/update/MockingHttp2SolrClient.java |  1 +
 .../apache/solr/update/SolrIndexConfigTest.java    |  1 +
 .../solr/update/TestInPlaceUpdatesStandalone.java  |  2 +
 .../update/processor/AtomicUpdateJavabinTest.java  |  1 +
 .../update/processor/RegexBoostProcessorTest.java  |  1 +
 .../test/org/apache/solr/util/AuthToolTest.java    |  2 +
 .../test/org/apache/solr/util/TestRTimerTree.java  |  2 +
 .../apache/solr/util/TestSolrCLIRunExample.java    |  2 +
 .../org/apache/solr/util/TestSystemIdResolver.java |  1 +
 .../util/configuration/SSLConfigurationsTest.java  |  1 +
 .../facet/compare/ExpressionComparator.java        |  1 +
 .../facet/compare/FacetResultsComparator.java      |  1 +
 .../function/mapping/DateParseFunction.java        |  1 +
 .../analytics/function/mapping/LambdaFunction.java |  7 +++
 .../org/apache/solr/handler/AnalyticsHandler.java  |  1 +
 ...uestContinuesRecorderAuthenticationHandler.java |  5 ++
 .../hadoop/HadoopSSLCredentialProvider.java        |  1 +
 .../client/solrj/impl/Krb5HttpClientUtils.java     |  1 +
 .../util/configuration/SSLConfigurationsTest.java  |  1 +
 .../org/apache/solr/hdfs/HdfsDirectoryFactory.java |  2 +
 .../backup/repository/HdfsBackupRepository.java    |  1 +
 .../solr/hdfs/snapshots/SolrSnapshotsTool.java     |  1 +
 .../solr/hdfs/store/blockcache/BlockDirectory.java |  1 +
 .../solr/hdfs/update/HdfsTransactionLog.java       |  7 +++
 .../org/apache/solr/hdfs/update/HdfsUpdateLog.java |  1 +
 .../org/apache/hadoop/fs/RawLocalFileSystem.java   |  1 +
 .../hdfs/cloud/HdfsChaosMonkeySafeLeaderTest.java  |  1 +
 .../solr/hdfs/cloud/HdfsNameNodeFailoverTest.java  |  1 +
 .../solr/hdfs/cloud/HdfsRecoverLeaseTest.java      |  2 +
 .../cloud/HdfsWriteToMultipleCollectionsTest.java  |  1 +
 .../SharedFileSystemAutoReplicaFailoverTest.java   |  1 +
 .../org/apache/solr/hdfs/cloud/StressHdfsTest.java |  1 +
 .../collections/TestHdfsCloudBackupRestore.java    |  1 +
 .../apache/solr/hdfs/store/HdfsDirectoryTest.java  |  2 +
 .../hdfs/store/blockcache/BlockDirectoryTest.java  |  2 +
 .../apache/solr/hdfs/update/TestHdfsUpdateLog.java |  2 +
 .../solr/security/jwt/JWTAuthPluginTest.java       |  1 +
 .../solr/security/jwt/JWTIssuerConfigTest.java     |  2 +
 .../jwt/JWTVerificationkeyResolverTest.java        |  1 +
 .../processor/SolrInputDocumentReaderTest.java     |  1 +
 .../algorithms/TeamDraftInterleaving.java          |  1 +
 .../apache/solr/ltr/model/NeuralNetworkModel.java  |  3 ++
 .../apache/solr/ltr/model/TestAdapterModel.java    |  1 +
 .../org/apache/solr/handler/sql/LimitStream.java   |  6 +++
 .../org/apache/solr/handler/sql/SQLHandler.java    |  3 ++
 .../org/apache/solr/handler/sql/SolrAggregate.java |  1 +
 .../apache/solr/handler/sql/SolrEnumerator.java    |  4 ++
 .../org/apache/solr/handler/sql/SolrFilter.java    |  2 +
 .../org/apache/solr/handler/sql/SolrProject.java   |  1 +
 .../org/apache/solr/handler/sql/SolrRules.java     |  2 +
 .../java/org/apache/solr/handler/sql/SolrSort.java |  1 +
 .../org/apache/solr/handler/sql/SolrTable.java     |  6 +++
 .../org/apache/solr/handler/sql/SolrTableScan.java |  1 +
 .../handler/sql/SolrToEnumerableConverter.java     |  1 +
 .../org/apache/solr/common/cloud/SolrZkClient.java |  1 +
 .../apache/solr/common/cloud/ZkStateReader.java    |  4 ++
 .../apache/solr/client/solrj/RoutedAliasTypes.java |  1 +
 .../org/apache/solr/client/solrj/SolrQuery.java    |  3 ++
 .../solr/client/solrj/cloud/SocketProxy.java       |  3 ++
 .../client/solrj/impl/CloudHttp2SolrClient.java    |  1 +
 .../client/solrj/impl/CloudLegacySolrClient.java   |  4 ++
 .../solr/client/solrj/impl/Http2SolrClient.java    |  1 +
 .../client/solrj/impl/Krb5HttpClientBuilder.java   |  4 ++
 .../solrj/impl/SolrPortAwareCookieSpecFactory.java |  1 +
 .../apache/solr/client/solrj/io/ModelCache.java    |  1 +
 .../org/apache/solr/client/solrj/io/Tuple.java     |  1 +
 .../solr/client/solrj/io/comp/ComparatorOrder.java |  1 +
 .../solr/client/solrj/io/comp/FieldComparator.java |  2 +
 .../apache/solr/client/solrj/io/comp/HashKey.java  |  3 ++
 .../solrj/io/comp/MultipleFieldComparator.java     |  1 +
 .../solrj/io/comp/SingleValueComparator.java       |  2 +
 .../solr/client/solrj/io/eq/FieldEqualitor.java    |  2 +
 .../client/solrj/io/eq/MultipleFieldEqualitor.java |  1 +
 .../solr/client/solrj/io/eval/AndEvaluator.java    |  1 +
 .../solrj/io/eval/CosineDistanceEvaluator.java     |  1 +
 .../solr/client/solrj/io/eval/DbscanEvaluator.java |  1 +
 .../client/solrj/io/eval/EqualToEvaluator.java     |  1 +
 .../client/solrj/io/eval/ExclusiveOrEvaluator.java |  1 +
 .../solrj/io/eval/GreaterThanEqualToEvaluator.java |  1 +
 .../client/solrj/io/eval/GreaterThanEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/IsNullEvaluator.java |  2 +
 .../solr/client/solrj/io/eval/KmeansEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/KnnEvaluator.java    |  1 +
 .../solrj/io/eval/LessThanEqualToEvaluator.java    |  1 +
 .../client/solrj/io/eval/LessThanEvaluator.java    |  1 +
 .../solr/client/solrj/io/eval/ManyValueWorker.java |  1 +
 .../client/solrj/io/eval/MatchesEvaluator.java     |  2 +
 .../apache/solr/client/solrj/io/eval/Matrix.java   |  6 +++
 .../solr/client/solrj/io/eval/MemsetEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/NotEvaluator.java    |  3 ++
 .../client/solrj/io/eval/NotNullEvaluator.java     |  2 +
 .../solr/client/solrj/io/eval/OneValueWorker.java  |  1 +
 .../solr/client/solrj/io/eval/OrEvaluator.java     |  1 +
 .../client/solrj/io/eval/PairSortEvaluator.java    |  1 +
 .../solrj/io/eval/RecursiveBooleanEvaluator.java   |  8 +++
 .../client/solrj/io/eval/RecursiveEvaluator.java   |  2 +
 .../solrj/io/eval/RecursiveNumericEvaluator.java   |  1 +
 .../io/eval/RecursiveNumericListEvaluator.java     |  1 +
 .../solrj/io/eval/RecursiveTemporalEvaluator.java  |  2 +
 .../solrj/io/eval/ScalarDivideEvaluator.java       |  1 +
 .../solrj/io/eval/ScalarMultiplyEvaluator.java     |  1 +
 .../solrj/io/eval/ScalarSubtractEvaluator.java     |  1 +
 .../solr/client/solrj/io/eval/SourceEvaluator.java |  2 +
 .../client/solrj/io/eval/TopFeaturesEvaluator.java |  1 +
 .../solr/client/solrj/io/eval/TwoValueWorker.java  |  1 +
 .../client/solrj/io/graph/GatherNodesStream.java   | 14 ++++++
 .../client/solrj/io/graph/ShortestPathStream.java  |  7 +++
 .../client/solrj/io/ops/DistinctOperation.java     |  3 ++
 .../solr/client/solrj/io/ops/GroupOperation.java   |  4 ++
 .../solr/client/solrj/io/sql/DriverImpl.java       |  7 +++
 .../solr/client/solrj/io/stream/BiJoinStream.java  |  1 +
 .../client/solrj/io/stream/CalculatorStream.java   |  7 +++
 .../solrj/io/stream/CartesianProductStream.java    |  7 +++
 .../solr/client/solrj/io/stream/CellStream.java    |  7 +++
 .../client/solrj/io/stream/CloudSolrStream.java    |  9 ++++
 .../client/solrj/io/stream/ComplementStream.java   |  7 +++
 .../solr/client/solrj/io/stream/CsvStream.java     |  7 +++
 .../solr/client/solrj/io/stream/DaemonStream.java  |  9 ++++
 .../client/solrj/io/stream/DeepRandomStream.java   |  8 +++
 .../solr/client/solrj/io/stream/DrillStream.java   |  4 ++
 .../solr/client/solrj/io/stream/EchoStream.java    |  7 +++
 .../solr/client/solrj/io/stream/EvalStream.java    |  7 +++
 .../client/solrj/io/stream/ExceptionStream.java    |  6 +++
 .../client/solrj/io/stream/ExecutorStream.java     |  8 +++
 .../solr/client/solrj/io/stream/Facet2DStream.java |  6 +++
 .../solr/client/solrj/io/stream/FacetStream.java   |  6 +++
 .../solrj/io/stream/FeaturesSelectionStream.java   |  7 +++
 .../solr/client/solrj/io/stream/FetchStream.java   |  7 +++
 .../solr/client/solrj/io/stream/GetStream.java     |  7 +++
 .../client/solrj/io/stream/HashJoinStream.java     |  6 +++
 .../client/solrj/io/stream/HashRollupStream.java   |  6 +++
 .../solr/client/solrj/io/stream/HavingStream.java  |  7 +++
 .../client/solrj/io/stream/InnerJoinStream.java    |  1 +
 .../client/solrj/io/stream/IntersectStream.java    |  7 +++
 .../solr/client/solrj/io/stream/JDBCStream.java    |  4 ++
 .../client/solrj/io/stream/JSONTupleStream.java    |  1 +
 .../solr/client/solrj/io/stream/JoinStream.java    |  5 ++
 .../solr/client/solrj/io/stream/KnnStream.java     |  6 +++
 .../solrj/io/stream/LeftOuterJoinStream.java       |  1 +
 .../solr/client/solrj/io/stream/LetStream.java     |  7 +++
 .../solr/client/solrj/io/stream/ListStream.java    |  7 +++
 .../solr/client/solrj/io/stream/MergeStream.java   |  7 +++
 .../solr/client/solrj/io/stream/ModelStream.java   |  6 +++
 .../solr/client/solrj/io/stream/NoOpStream.java    |  7 +++
 .../solr/client/solrj/io/stream/NullStream.java    |  7 +++
 .../solrj/io/stream/OuterHashJoinStream.java       |  1 +
 .../client/solrj/io/stream/ParallelListStream.java |  8 +++
 .../client/solrj/io/stream/ParallelStream.java     |  4 ++
 .../solr/client/solrj/io/stream/PlotStream.java    |  7 +++
 .../client/solrj/io/stream/PriorityStream.java     |  7 +++
 .../client/solrj/io/stream/PushBackStream.java     |  9 ++++
 .../client/solrj/io/stream/RandomFacadeStream.java |  6 +++
 .../solr/client/solrj/io/stream/RandomStream.java  |  6 +++
 .../solr/client/solrj/io/stream/RankStream.java    |  8 +++
 .../solr/client/solrj/io/stream/ReducerStream.java |  7 +++
 .../solr/client/solrj/io/stream/RollupStream.java  |  6 +++
 .../client/solrj/io/stream/ScoreNodesStream.java   |  7 +++
 .../client/solrj/io/stream/SearchFacadeStream.java |  6 +++
 .../solr/client/solrj/io/stream/SearchStream.java  |  6 +++
 .../solr/client/solrj/io/stream/SelectStream.java  |  7 +++
 .../solr/client/solrj/io/stream/ShuffleStream.java |  1 +
 .../solrj/io/stream/SignificantTermsStream.java    |  8 +++
 .../solr/client/solrj/io/stream/SolrStream.java    |  6 +++
 .../solr/client/solrj/io/stream/SortStream.java    | 10 ++++
 .../solr/client/solrj/io/stream/SqlStream.java     |  6 +++
 .../solr/client/solrj/io/stream/StatsStream.java   |  6 +++
 .../client/solrj/io/stream/TextLogitStream.java    |  7 +++
 .../client/solrj/io/stream/TimeSeriesStream.java   |  6 +++
 .../solr/client/solrj/io/stream/TopicStream.java   |  6 +++
 .../solr/client/solrj/io/stream/TsvStream.java     |  1 +
 .../solr/client/solrj/io/stream/TupStream.java     |  7 +++
 .../solr/client/solrj/io/stream/TupleStream.java   |  3 ++
 .../solr/client/solrj/io/stream/UniqueStream.java  |  7 +++
 .../solr/client/solrj/io/stream/ZplotStream.java   |  7 +++
 .../solrj/io/stream/expr/StreamExplanation.java    |  1 +
 .../client/solrj/io/stream/expr/StreamFactory.java |  1 +
 .../client/solrj/io/stream/metrics/Bucket.java     |  1 +
 .../io/stream/metrics/CountDistinctMetric.java     |  4 ++
 .../solrj/io/stream/metrics/CountMetric.java       |  4 ++
 .../client/solrj/io/stream/metrics/MaxMetric.java  |  4 ++
 .../client/solrj/io/stream/metrics/MeanMetric.java |  4 ++
 .../client/solrj/io/stream/metrics/MinMetric.java  |  4 ++
 .../solrj/io/stream/metrics/PercentileMetric.java  |  4 ++
 .../client/solrj/io/stream/metrics/StdMetric.java  |  4 ++
 .../client/solrj/io/stream/metrics/SumMetric.java  |  4 ++
 .../solrj/io/stream/metrics/WeightedSumMetric.java |  4 ++
 .../solrj/request/CollectionAdminRequest.java      |  4 ++
 .../client/solrj/request/CoreAdminRequest.java     |  3 ++
 .../solrj/request/json/DirectJsonQueryRequest.java |  1 +
 .../solrj/request/json/JsonQueryRequest.java       |  1 +
 .../client/solrj/request/json/RangeFacetMap.java   |  1 +
 .../client/solrj/request/json/TermsFacetMap.java   |  1 +
 .../client/solrj/response/SolrResponseBase.java    |  1 +
 .../solrj/routing/NoOpReplicaListTransformer.java  |  1 +
 .../routing/ShufflingReplicaListTransformer.java   |  1 +
 .../java/org/apache/solr/common/SolrDocument.java  |  1 +
 .../org/apache/solr/common/SolrInputDocument.java  |  5 ++
 .../apache/solr/common/ToleratedUpdateError.java   |  3 ++
 .../org/apache/solr/common/cloud/DocRouter.java    |  1 +
 .../java/org/apache/solr/common/cloud/Replica.java |  1 +
 .../org/apache/solr/common/luke/FieldFlag.java     |  1 +
 .../org/apache/solr/common/util/JavaBinCodec.java  |  1 +
 .../apache/solr/common/util/JsonTextWriter.java    | 15 ++++++
 .../org/apache/solr/common/util/NamedList.java     |  3 ++
 .../apache/solr/common/util/SolrJSONWriter.java    |  2 +
 .../org/apache/solr/common/util/TimeSource.java    |  1 +
 .../apache/solr/client/solrj/SolrExampleTests.java |  1 +
 .../impl/ConcurrentUpdateHttp2SolrClientTest.java  |  1 +
 .../solrj/impl/ConcurrentUpdateSolrClientTest.java |  1 +
 .../client/solrj/io/stream/RecordCountStream.java  |  5 ++
 .../solrj/routing/ReplicaListTransformerTest.java  |  1 +
 .../solr/common/TestToleratedUpdateError.java      |  2 +
 .../cloud/AbstractBasicDistributedZkTestBase.java  |  3 ++
 .../AbstractChaosMonkeyNothingIsSafeTestBase.java  |  2 +
 .../AbstractChaosMonkeySafeLeaderTestBase.java     |  2 +
 .../solr/cloud/AbstractFullDistribZkTestBase.java  |  1 +
 .../AbstractRestartWhileUpdatingTestBase.java      |  3 ++
 .../cloud/AbstractUnloadDistributedZkTestBase.java |  1 +
 .../cloud/FullThrottleStoppableIndexingThread.java |  1 +
 .../java/org/apache/solr/util/ErrorLogMuter.java   | 16 ++++++
 .../src/java/org/apache/solr/util/LogListener.java | 15 ++++++
 .../org/apache/solr/util/MockCoreContainer.java    |  1 +
 .../java/org/apache/solr/util/SSLTestConfig.java   | 10 ++++
 .../src/java/org/apache/solr/util/TestHarness.java |  2 +
 468 files changed, 1554 insertions(+), 2 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index dcf170a2b6b..8b23dacac45 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -100,7 +100,6 @@ allprojects { prj ->
             '-Xep:InvalidBlockTag:OFF', // this is needed for tags like lucene.internal
             '-Xep:JavaUtilDate:OFF',
             '-Xep:LogicalAssignment:OFF',
-            '-Xep:MissingOverride:OFF',
             '-Xep:MissingSummary:OFF',
             '-Xep:MixedMutabilityReturnType:OFF',
             '-Xep:ModifiedButNotUsed:OFF',
diff --git a/solr/benchmark/src/java/org/apache/solr/bench/SplittableRandomGenerator.java b/solr/benchmark/src/java/org/apache/solr/bench/SplittableRandomGenerator.java
index 6e60f6a9789..bf2e2ac1ab5 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/SplittableRandomGenerator.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/SplittableRandomGenerator.java
@@ -48,10 +48,12 @@ public class SplittableRandomGenerator implements RandomGenerator {
     this.random = new SplittableRandom(seed);
   }
 
+  @Override
   public void setSeed(int seed) {
     setSeed((long) seed);
   }
 
+  @Override
   public void setSeed(int[] seed) {
     setSeed(RandomGeneratorFactory.convertToLong(seed));
   }
diff --git a/solr/benchmark/src/java/org/apache/solr/bench/generators/Tracker.java b/solr/benchmark/src/java/org/apache/solr/bench/generators/Tracker.java
index e28a73a0785..457d411a1a1 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/generators/Tracker.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/generators/Tracker.java
@@ -163,6 +163,7 @@ public class Tracker {
     return Collections.unmodifiableList(values);
   }
 
+  @Override
   public String toString() {
     return String.format(
         Locale.ENGLISH, "%s (%s, %s%%): %s", name, count, percentage, Tracker.display(values));
diff --git a/solr/benchmark/src/java/org/quicktheories/impl/BenchmarkRandomSource.java b/solr/benchmark/src/java/org/quicktheories/impl/BenchmarkRandomSource.java
index 8eefcdc839c..86deb3880d2 100644
--- a/solr/benchmark/src/java/org/quicktheories/impl/BenchmarkRandomSource.java
+++ b/solr/benchmark/src/java/org/quicktheories/impl/BenchmarkRandomSource.java
@@ -49,6 +49,7 @@ public class BenchmarkRandomSource
     this.distribution = distribution;
   }
 
+  @Override
   public BenchmarkRandomSource withDistribution(Distribution distribution) {
     if (this.distribution == distribution) {
       return this;
diff --git a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
index 468e5cbec95..12337c0e4c7 100644
--- a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
+++ b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
@@ -337,6 +337,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider, Closeab
       }
     }
 
+    @Override
     public int hashCode() {
       return new HashCodeBuilder()
           .append(command)
@@ -348,6 +349,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider, Closeab
           .toHashCode();
     }
 
+    @Override
     public boolean equals(Object rhs) {
       if (null == rhs) return false;
       if (this == rhs) return true;
diff --git a/solr/core/src/java/org/apache/solr/api/ApiBag.java b/solr/core/src/java/org/apache/solr/api/ApiBag.java
index 7b55610c6c3..e8039401c90 100644
--- a/solr/core/src/java/org/apache/solr/api/ApiBag.java
+++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java
@@ -264,6 +264,7 @@ public class ApiBag {
       this.isCoreSpecific = isCoreSpecific;
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void call(SolrQueryRequest req, SolrQueryResponse rsp) {
 
diff --git a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
index 4e3511a9d30..41d3c11417e 100644
--- a/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
+++ b/solr/core/src/java/org/apache/solr/api/V2HttpCall.java
@@ -93,6 +93,7 @@ public class V2HttpCall extends HttpSolrCall {
     super(solrDispatchFilter, cc, request, response, retry);
   }
 
+  @Override
   @SuppressForbidden(
       reason =
           "Set the thread contextClassLoader for all 3rd party dependencies that we cannot control")
diff --git a/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java b/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
index dd89d4ca2ac..42fe526b2a8 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
@@ -49,6 +49,7 @@ public abstract class ElectionContext implements Closeable {
     this.zkClient = zkClient;
   }
 
+  @Override
   public void close() {}
 
   public void cancelElection() throws InterruptedException, KeeperException {
diff --git a/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java b/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java
index e4335f1678e..82639a13958 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java
@@ -402,6 +402,7 @@ class ExclusiveSliceProperty {
       this.replica = replica;
     }
 
+    @Override
     public String toString() {
       StringBuilder sb = new StringBuilder(System.lineSeparator()).append(System.lineSeparator());
       sb.append("    :")
diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
index 53b9f9cbfde..6736affd526 100644
--- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
@@ -929,6 +929,7 @@ public class Overseer implements SolrCloseable {
     return updaterThread;
   }
 
+  @Override
   public synchronized void close() {
     if (this.id != null) {
       log.info("Overseer (id={}) closing", id);
diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
index 28f77f2190e..ae5386b7e51 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
@@ -418,6 +418,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
     }
   }
 
+  @Override
   public void close() {
     isClosed = true;
     overseerTaskProcessorMetricsContext.unregister();
@@ -548,6 +549,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
       response = null;
     }
 
+    @Override
     public void run() {
       String statsName = messageHandler.getTimerName(operation);
       final Timer.Context timerContext = stats.time(statsName);
diff --git a/solr/core/src/java/org/apache/solr/cloud/RefreshCollectionMessage.java b/solr/core/src/java/org/apache/solr/cloud/RefreshCollectionMessage.java
index 63628ab0f2c..fee0d32bf50 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RefreshCollectionMessage.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RefreshCollectionMessage.java
@@ -33,6 +33,7 @@ public class RefreshCollectionMessage implements Overseer.Message {
     this.collection = collection;
   }
 
+  @Override
   public ClusterState run(ClusterState clusterState, Overseer overseer, ZkStateWriter zkStateWriter)
       throws Exception {
     Stat stat =
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkCollectionTerms.java b/solr/core/src/java/org/apache/solr/cloud/ZkCollectionTerms.java
index 23f69eeda39..56726c6f506 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkCollectionTerms.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkCollectionTerms.java
@@ -58,6 +58,7 @@ class ZkCollectionTerms implements AutoCloseable {
     }
   }
 
+  @Override
   public void close() {
     synchronized (terms) {
       terms.values().forEach(ZkShardTerms::close);
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java b/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java
index f6e4625da45..44ea1a8b78a 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkConfigSetService.java
@@ -174,6 +174,7 @@ public class ZkConfigSetService extends ConfigSetService {
     }
   }
 
+  @Override
   public void copyConfig(String fromConfig, String toConfig) throws IOException {
     String fromConfigPath = CONFIGS_ZKNODE + "/" + fromConfig;
     String toConfigPath = CONFIGS_ZKNODE + "/" + toConfig;
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index 66d1380c0f9..47ac97e1f8b 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -275,6 +275,7 @@ public class ZkController implements Closeable {
       this.afterExpiration = afterExpiration;
     }
 
+    @Override
     public Object call() throws Exception {
       if (log.isInfoEnabled()) {
         log.info("Registering core {} afterExpiration? {}", descriptor.getName(), afterExpiration);
@@ -737,6 +738,7 @@ public class ZkController implements Closeable {
   }
 
   /** Closes the underlying ZooKeeper client. */
+  @Override
   public void close() {
     if (!this.isClosed) preClose();
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java
index 0066d95e885..56f8c61c188 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedCollectionLockFactory.java
@@ -38,6 +38,7 @@ public class ZkDistributedCollectionLockFactory extends ZkDistributedLockFactory
     super(zkClient, rootPath);
   }
 
+  @Override
   public DistributedLock createLock(
       boolean isWriteLock,
       CollectionParams.LockLevel level,
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java
index dd5220821ec..4ea61f63f77 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkDistributedConfigSetLockFactory.java
@@ -35,6 +35,7 @@ public class ZkDistributedConfigSetLockFactory extends ZkDistributedLockFactory
     super(zkClient, rootPath);
   }
 
+  @Override
   public DistributedLock createLock(boolean isWriteLock, String configSetName) {
     Preconditions.checkArgument(configSetName != null, "configSetName can't be null");
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
index 972e0111474..796e7961a93 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
@@ -155,6 +155,7 @@ public class ZkShardTerms implements AutoCloseable {
     return terms.get().getTerm(coreNodeName) != null;
   }
 
+  @Override
   public void close() {
     // no watcher will be registered
     isClosed.set(true);
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java
index 4b75947c227..8989b29907e 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollApiCmds.java
@@ -185,6 +185,7 @@ public class CollApiCmds {
   }
 
   public static class MockOperationCmd implements CollectionApiCommand {
+    @Override
     @SuppressForbidden(reason = "Needs currentTimeMillis for mock requests")
     public void call(ClusterState state, ZkNodeProps message, NamedList<Object> results)
         throws InterruptedException {
@@ -207,6 +208,7 @@ public class CollApiCmds {
       this.ccc = ccc;
     }
 
+    @Override
     public void call(ClusterState clusterState, ZkNodeProps message, NamedList<Object> results) {
       ModifiableSolrParams params = new ModifiableSolrParams();
       params.set(CoreAdminParams.ACTION, CoreAdminParams.CoreAdminAction.RELOAD.toString());
@@ -231,6 +233,7 @@ public class CollApiCmds {
       this.ccc = ccc;
     }
 
+    @Override
     public void call(ClusterState clusterState, ZkNodeProps message, NamedList<Object> results)
         throws Exception {
       CollectionHandlingUtils.checkRequired(
@@ -275,6 +278,7 @@ public class CollApiCmds {
       this.ccc = ccc;
     }
 
+    @Override
     public void call(ClusterState clusterState, ZkNodeProps message, NamedList<Object> results)
         throws Exception {
       CollectionHandlingUtils.checkRequired(
@@ -308,6 +312,7 @@ public class CollApiCmds {
       this.ccc = ccc;
     }
 
+    @Override
     public void call(ClusterState clusterState, ZkNodeProps message, NamedList<Object> results)
         throws Exception {
       CollectionHandlingUtils.checkRequired(
@@ -336,6 +341,7 @@ public class CollApiCmds {
       this.ccc = ccc;
     }
 
+    @Override
     public void call(ClusterState clusterState, ZkNodeProps message, NamedList<Object> results)
         throws Exception {
       if (StringUtils.isBlank(message.getStr(COLLECTION_PROP))
@@ -371,6 +377,7 @@ public class CollApiCmds {
       this.ccc = ccc;
     }
 
+    @Override
     public void call(ClusterState clusterState, ZkNodeProps message, NamedList<Object> results)
         throws Exception {
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OcmhCollectionCommandContext.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OcmhCollectionCommandContext.java
index 7677da01b40..7fdcff7f52b 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OcmhCollectionCommandContext.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OcmhCollectionCommandContext.java
@@ -72,6 +72,7 @@ public class OcmhCollectionCommandContext implements CollectionCommandContext {
     ocmh.overseer.offerStateUpdate(data);
   }
 
+  @Override
   public void offerStateUpdate(MapWriter mw) throws KeeperException, InterruptedException {
     ocmh.overseer.offerStateUpdate(mw);
   }
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
index 2c5a114f37c..9da286faeae 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/NodeMetricImpl.java
@@ -75,6 +75,7 @@ public class NodeMetricImpl<T> extends MetricImpl<T> implements NodeMetric<T> {
     this.registry = Registry.UNSPECIFIED;
   }
 
+  @Override
   public Registry getRegistry() {
     return registry;
   }
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
index 4c2bec84ba5..d7d94644461 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/PlacementPluginAssignStrategy.java
@@ -45,6 +45,7 @@ public class PlacementPluginAssignStrategy implements Assign.AssignStrategy {
     this.plugin = plugin;
   }
 
+  @Override
   public List<ReplicaPosition> assign(
       SolrCloudManager solrCloudManager, List<Assign.AssignRequest> assignRequests)
       throws Assign.AssignmentException, IOException, InterruptedException {
diff --git a/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java b/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
index 9eec9b5f775..bfd6ff77f7f 100644
--- a/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
+++ b/solr/core/src/java/org/apache/solr/cluster/placement/impl/SimpleClusterAbstractionsImpl.java
@@ -81,6 +81,7 @@ class SimpleClusterAbstractionsImpl {
       return liveNodes;
     }
 
+    @Override
     public Set<Node> getLiveDataNodes() {
       return liveNodesWithData;
     }
@@ -132,6 +133,7 @@ class SimpleClusterAbstractionsImpl {
      * comparing node names given that new instances of {@link Node} are created with names equal to
      * existing instances (See {@link ReplicaImpl} constructor).
      */
+    @Override
     public boolean equals(Object obj) {
       if (obj == null) {
         return false;
@@ -146,6 +148,7 @@ class SimpleClusterAbstractionsImpl {
       return Objects.equals(this.nodeName, other.nodeName);
     }
 
+    @Override
     public int hashCode() {
       return Objects.hashCode(nodeName);
     }
@@ -300,6 +303,7 @@ class SimpleClusterAbstractionsImpl {
       return shardState;
     }
 
+    @Override
     public boolean equals(Object obj) {
       if (obj == null) {
         return false;
@@ -318,6 +322,7 @@ class SimpleClusterAbstractionsImpl {
           && Objects.equals(this.leader, other.leader);
     }
 
+    @Override
     public int hashCode() {
       return Objects.hash(shardName, collection, shardState);
     }
@@ -461,6 +466,7 @@ class SimpleClusterAbstractionsImpl {
       }
     }
 
+    @Override
     public boolean equals(Object obj) {
       if (obj == null) {
         return false;
@@ -480,6 +486,7 @@ class SimpleClusterAbstractionsImpl {
           && Objects.equals(this.node, other.node);
     }
 
+    @Override
     public int hashCode() {
       return Objects.hash(replicaName, coreName, shard, replicaType, replicaState, node);
     }
diff --git a/solr/core/src/java/org/apache/solr/core/CoreSorter.java b/solr/core/src/java/org/apache/solr/core/CoreSorter.java
index b0e5f00a70f..1eb59422b53 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreSorter.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreSorter.java
@@ -120,6 +120,7 @@ public final class CoreSorter implements Comparator<CoreDescriptor> {
     return this;
   }
 
+  @Override
   public int compare(CoreDescriptor cd1, CoreDescriptor cd2) {
     String s1 = getShardName(cd1.getCloudDescriptor());
     String s2 = getShardName(cd2.getCloudDescriptor());
diff --git a/solr/core/src/java/org/apache/solr/core/EphemeralDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/EphemeralDirectoryFactory.java
index f5455a3c0f6..f937e3cae8f 100644
--- a/solr/core/src/java/org/apache/solr/core/EphemeralDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/EphemeralDirectoryFactory.java
@@ -45,6 +45,7 @@ public abstract class EphemeralDirectoryFactory extends CachingDirectoryFactory
     }
   }
 
+  @Override
   public boolean isPersistent() {
     return false;
   }
@@ -64,6 +65,7 @@ public abstract class EphemeralDirectoryFactory extends CachingDirectoryFactory
     // ram dir does not persist its dir anywhere
   }
 
+  @Override
   public void cleanupOldIndexDirectories(
       final String dataDirPath, final String currentIndexDirPath, boolean reload) {
     // currently a no-op
diff --git a/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java b/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java
index 2d97f182c0e..d8ee6325779 100644
--- a/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/core/FileSystemConfigSetService.java
@@ -75,6 +75,7 @@ public class FileSystemConfigSetService extends ConfigSetService {
     throw new UnsupportedOperationException();
   }
 
+  @Override
   public void copyConfig(String fromConfig, String toConfig) throws IOException {
     throw new UnsupportedOperationException();
   }
diff --git a/solr/core/src/java/org/apache/solr/core/PluginBag.java b/solr/core/src/java/org/apache/solr/core/PluginBag.java
index bdf8bfeb307..5ecf681ad62 100644
--- a/solr/core/src/java/org/apache/solr/core/PluginBag.java
+++ b/solr/core/src/java/org/apache/solr/core/PluginBag.java
@@ -398,6 +398,7 @@ public class PluginBag<T> implements AutoCloseable {
       return Optional.ofNullable(inst);
     }
 
+    @Override
     public T get() {
       return inst;
     }
@@ -435,6 +436,7 @@ public class PluginBag<T> implements AutoCloseable {
       return pluginInfo;
     }
 
+    @Override
     public String toString() {
       return String.valueOf(inst);
     }
diff --git a/solr/core/src/java/org/apache/solr/core/PluginInfo.java b/solr/core/src/java/org/apache/solr/core/PluginInfo.java
index aa81eb94e94..0331b084045 100644
--- a/solr/core/src/java/org/apache/solr/core/PluginInfo.java
+++ b/solr/core/src/java/org/apache/solr/core/PluginInfo.java
@@ -223,6 +223,7 @@ public class PluginInfo implements MapSerializable {
     return l.isEmpty() ? null : l.get(0);
   }
 
+  @Override
   @SuppressWarnings({"unchecked", "rawtypes"})
   public Map<String, Object> toMap(Map<String, Object> map) {
     map.putAll(attributes);
diff --git a/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java b/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java
index 5b62075b44b..50b46211aac 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrDeletionPolicy.java
@@ -98,6 +98,7 @@ public class SolrDeletionPolicy extends IndexDeletionPolicy implements NamedList
       this.commits = commits;
     }
 
+    @Override
     public final String toString() {
       StringBuilder sb = new StringBuilder();
       sb.append("num=").append(commits.size());
@@ -128,6 +129,7 @@ public class SolrDeletionPolicy extends IndexDeletionPolicy implements NamedList
       super(commits);
     }
 
+    @Override
     protected void appendDetails(StringBuilder sb, IndexCommit c) {
       super.appendDetails(sb, c);
       try {
diff --git a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
index 7746713494b..59641b6b912 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
@@ -600,6 +600,7 @@ public class SolrResourceLoader
   private static final Class<?>[] NO_CLASSES = new Class<?>[0];
   private static final Object[] NO_OBJECTS = new Object[0];
 
+  @Override
   public <T> T newInstance(String cname, Class<T> expectedType, String... subpackages) {
     return newInstance(cname, expectedType, subpackages, NO_CLASSES, NO_OBJECTS);
   }
@@ -711,6 +712,7 @@ public class SolrResourceLoader
   }
 
   /** Tell all {@link SolrCoreAware} instances about the SolrCore */
+  @Override
   public void inform(SolrCore core) {
     if (getSchemaLoader() != null) core.getPackageListeners().addListener(schemaLoader);
 
diff --git a/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
index 75983dd4bb4..2e53828ca78 100644
--- a/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
@@ -81,6 +81,7 @@ public class StandardDirectoryFactory extends CachingDirectoryFactory {
     return super.normalize(new File(path).getCanonicalPath());
   }
 
+  @Override
   public boolean isPersistent() {
     return true;
   }
@@ -127,6 +128,7 @@ public class StandardDirectoryFactory extends CachingDirectoryFactory {
   }
 
   // perform an atomic rename if possible
+  @Override
   public void renameWithOverwrite(Directory dir, String fileName, String toName)
       throws IOException {
     Directory baseDir = getBaseDir(dir);
diff --git a/solr/core/src/java/org/apache/solr/handler/AnalyzeEvaluator.java b/solr/core/src/java/org/apache/solr/handler/AnalyzeEvaluator.java
index d90aef5c9f6..efd8471ce3d 100644
--- a/solr/core/src/java/org/apache/solr/handler/AnalyzeEvaluator.java
+++ b/solr/core/src/java/org/apache/solr/handler/AnalyzeEvaluator.java
@@ -52,6 +52,7 @@ public class AnalyzeEvaluator extends SourceEvaluator {
     init(_fieldName, _analyzerField);
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamContext = context;
     Object solrCoreObj = context.get("solr-core");
diff --git a/solr/core/src/java/org/apache/solr/handler/GraphHandler.java b/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
index 88304e7210a..dafa0863de6 100644
--- a/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
@@ -84,6 +84,7 @@ public class GraphHandler extends RequestHandlerBase
     return PermissionNameProvider.Name.READ_PERM;
   }
 
+  @Override
   public void inform(SolrCore core) {
     String defaultCollection;
     String defaultZkhost;
@@ -130,6 +131,7 @@ public class GraphHandler extends RequestHandlerBase
     }
   }
 
+  @Override
   @SuppressWarnings({"unchecked"})
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     SolrParams params = req.getParams();
@@ -160,6 +162,7 @@ public class GraphHandler extends RequestHandlerBase
     requestContext.put("traversal", traversal);
   }
 
+  @Override
   public String getDescription() {
     return "GraphHandler";
   }
@@ -175,20 +178,25 @@ public class GraphHandler extends RequestHandlerBase
       this.e = e;
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return null;
     }
 
+    @Override
     public void close() {}
 
+    @Override
     public void open() {}
 
     public Exception getException() {
       return this.e;
     }
 
+    @Override
     public void setStreamContext(StreamContext context) {}
 
+    @Override
     public List<TupleStream> children() {
       return null;
     }
@@ -198,6 +206,7 @@ public class GraphHandler extends RequestHandlerBase
       return null;
     }
 
+    @Override
     public Tuple read() {
       return Tuple.EXCEPTION(e.getMessage(), true);
     }
@@ -219,23 +228,28 @@ public class GraphHandler extends RequestHandlerBase
       this.tupleStream = tupleStream;
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return this.tupleStream.getStreamSort();
     }
 
+    @Override
     public void close() throws IOException {
       this.tupleStream.close();
     }
 
+    @Override
     public void open() throws IOException {
       this.begin = System.nanoTime();
       this.tupleStream.open();
     }
 
+    @Override
     public void setStreamContext(StreamContext context) {
       this.tupleStream.setStreamContext(context);
     }
 
+    @Override
     public List<TupleStream> children() {
       return this.tupleStream.children();
     }
@@ -245,6 +259,7 @@ public class GraphHandler extends RequestHandlerBase
       return null;
     }
 
+    @Override
     public Tuple read() throws IOException {
       Tuple tuple = this.tupleStream.read();
       if (tuple.EOF) {
diff --git a/solr/core/src/java/org/apache/solr/handler/HaversineMetersEvaluator.java b/solr/core/src/java/org/apache/solr/handler/HaversineMetersEvaluator.java
index 851f93fa882..5cf87a9d115 100644
--- a/solr/core/src/java/org/apache/solr/handler/HaversineMetersEvaluator.java
+++ b/solr/core/src/java/org/apache/solr/handler/HaversineMetersEvaluator.java
@@ -49,6 +49,7 @@ public class HaversineMetersEvaluator extends RecursiveEvaluator {
 
     public HaversineDistance() {}
 
+    @Override
     public double compute(double[] a, double[] b) throws DimensionMismatchException {
       return SloppyMath.haversinMeters(a[0], a[1], b[0], b[1]);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
index d0ab8c1da91..7cbd0519c34 100644
--- a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
+++ b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
@@ -2020,18 +2020,22 @@ public class IndexFetcher {
       outStream = copy2Dir.createOutput(this.saveAs, DirectoryFactory.IOCONTEXT_NO_CACHE);
     }
 
+    @Override
     public void sync() throws IOException {
       copy2Dir.sync(Collections.singleton(saveAs));
     }
 
+    @Override
     public void write(byte[] buf, int packetSize) throws IOException {
       outStream.writeBytes(buf, 0, packetSize);
     }
 
+    @Override
     public void close() throws Exception {
       outStream.close();
     }
 
+    @Override
     public void delete() throws Exception {
       copy2Dir.deleteFile(saveAs);
     }
@@ -2075,19 +2079,23 @@ public class IndexFetcher {
       this.fileChannel = this.fileOutputStream.getChannel();
     }
 
+    @Override
     public void sync() throws IOException {
       FileUtils.sync(file);
     }
 
+    @Override
     public void write(byte[] buf, int packetSize) throws IOException {
       fileChannel.write(ByteBuffer.wrap(buf, 0, packetSize));
     }
 
+    @Override
     public void close() throws Exception {
       // close the FileOutputStream (which also closes the Channel)
       fileOutputStream.close();
     }
 
+    @Override
     public void delete() throws Exception {
       Files.delete(file.toPath());
     }
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 bd99c649c3d..fa24e94968b 100644
--- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
@@ -183,6 +183,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
       return new CommitVersionInfo(generation, version);
     }
 
+    @Override
     public String toString() {
       return "generation=" + generation + ",version=" + version;
     }
@@ -1681,6 +1682,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
       }
     }
 
+    @Override
     public void write(OutputStream out) throws IOException {
       createOutputStream(out);
 
@@ -1807,6 +1809,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
       super(solrParams);
     }
 
+    @Override
     protected Path initFile() {
       // if it is a tlog file read from tlog directory
       return Path.of(core.getUpdateHandler().getUpdateLog().getLogDir(), tlogFileName);
@@ -1819,6 +1822,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
       super(solrParams);
     }
 
+    @Override
     protected Path initFile() {
       // if it is a conf file read from config directory
       return core.getResourceLoader().getConfigPath().resolve(cfileName);
diff --git a/solr/core/src/java/org/apache/solr/handler/RestoreCore.java b/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
index ce97be14786..9bbfa4b9049 100644
--- a/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
+++ b/solr/core/src/java/org/apache/solr/handler/RestoreCore.java
@@ -227,22 +227,27 @@ public class RestoreCore implements Callable<Boolean> {
       this.repository = repository;
     }
 
+    @Override
     public String[] listAllFiles() throws IOException {
       return repository.listAll(backupPath);
     }
 
+    @Override
     public IndexInput openInput(String filename) throws IOException {
       return repository.openInput(backupPath, filename, IOContext.READONCE);
     }
 
+    @Override
     public void repoCopy(String filename, Directory dest) throws IOException {
       repository.copyFileTo(backupPath, filename, dest);
     }
 
+    @Override
     public void localCopy(Directory src, String filename, Directory dest) throws IOException {
       dest.copyFrom(src, filename, filename, IOContext.READONCE);
     }
 
+    @Override
     public Checksum checksum(String filename) throws IOException {
       try (IndexInput indexInput = repository.openInput(backupPath, filename, IOContext.READONCE)) {
         try {
@@ -298,6 +303,7 @@ public class RestoreCore implements Callable<Boolean> {
       dest.copyFrom(src, filename, filename, IOContext.READONCE);
     }
 
+    @Override
     public Checksum checksum(String filename) {
       Optional<ShardBackupMetadata.BackedFile> backedFile = shardBackupMetadata.getFile(filename);
       return backedFile.map(bf -> bf.fileChecksum).orElse(null);
diff --git a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
index ef957f9e42f..984ca83411a 100644
--- a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
@@ -97,6 +97,7 @@ public class StreamHandler extends RequestHandlerBase
     return PermissionNameProvider.Name.READ_PERM;
   }
 
+  @Override
   @SuppressWarnings("unchecked")
   public void inform(SolrCore core) {
     String defaultCollection;
@@ -168,6 +169,7 @@ public class StreamHandler extends RequestHandlerBase
     }
   }
 
+  @Override
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     SolrParams params = req.getParams();
     params = adjustParams(params);
@@ -331,6 +333,7 @@ public class StreamHandler extends RequestHandlerBase
     return adjustedParams;
   }
 
+  @Override
   public String getDescription() {
     return "StreamHandler";
   }
@@ -346,16 +349,21 @@ public class StreamHandler extends RequestHandlerBase
       this.e = e;
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return null;
     }
 
+    @Override
     public void close() {}
 
+    @Override
     public void open() {}
 
+    @Override
     public void setStreamContext(StreamContext context) {}
 
+    @Override
     public List<TupleStream> children() {
       return null;
     }
@@ -370,6 +378,7 @@ public class StreamHandler extends RequestHandlerBase
           .withExpression("--non-expressible--");
     }
 
+    @Override
     public Tuple read() {
       String msg = e.getMessage();
 
@@ -389,16 +398,21 @@ public class StreamHandler extends RequestHandlerBase
       this.it = col.iterator();
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return null;
     }
 
+    @Override
     public void close() {}
 
+    @Override
     public void open() {}
 
+    @Override
     public void setStreamContext(StreamContext context) {}
 
+    @Override
     public List<TupleStream> children() {
       return null;
     }
@@ -413,6 +427,7 @@ public class StreamHandler extends RequestHandlerBase
           .withExpression("--non-expressible--");
     }
 
+    @Override
     public Tuple read() {
       if (it.hasNext()) {
         return it.next().getInfo();
@@ -430,16 +445,21 @@ public class StreamHandler extends RequestHandlerBase
       this.message = message;
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return null;
     }
 
+    @Override
     public void close() {}
 
+    @Override
     public void open() {}
 
+    @Override
     public void setStreamContext(StreamContext context) {}
 
+    @Override
     public List<TupleStream> children() {
       return null;
     }
@@ -454,6 +474,7 @@ public class StreamHandler extends RequestHandlerBase
           .withExpression("--non-expressible--");
     }
 
+    @Override
     public Tuple read() {
       if (sendEOF) {
         return Tuple.EOF();
@@ -473,23 +494,28 @@ public class StreamHandler extends RequestHandlerBase
       this.tupleStream = tupleStream;
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return this.tupleStream.getStreamSort();
     }
 
+    @Override
     public void close() throws IOException {
       this.tupleStream.close();
     }
 
+    @Override
     public void open() throws IOException {
       this.begin = System.nanoTime();
       this.tupleStream.open();
     }
 
+    @Override
     public void setStreamContext(StreamContext context) {
       this.tupleStream.setStreamContext(context);
     }
 
+    @Override
     public List<TupleStream> children() {
       return this.tupleStream.children();
     }
@@ -504,6 +530,7 @@ public class StreamHandler extends RequestHandlerBase
           .withExpression("--non-expressible--");
     }
 
+    @Override
     public Tuple read() throws IOException {
       Tuple tuple = this.tupleStream.read();
       if (tuple.EOF) {
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java
index 60ac03f9797..52f0cfd7ef9 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java
@@ -200,6 +200,7 @@ public class ConfigSetsHandler extends RequestHandlerBase implements PermissionN
     return Category.ADMIN;
   }
 
+  @Override
   public Boolean registerV2() {
     return true;
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java b/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
index 4ab96fbfd85..2296d7ed193 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
@@ -628,6 +628,7 @@ public class IndexSizeEstimator {
       this.size = size;
     }
 
+    @Override
     public String toString() {
       return "size=" + size + ", value=" + value;
     }
@@ -663,6 +664,7 @@ public class IndexSizeEstimator {
       return a.size < b.size;
     }
 
+    @Override
     public String toString() {
       StringBuilder sb = new StringBuilder();
       Iterator<Item> it = iterator();
@@ -709,6 +711,7 @@ public class IndexSizeEstimator {
      *
      * @param value newly allocated byte array with the binary contents.
      */
+    @Override
     public void binaryField(FieldInfo fieldInfo, byte[] value) throws IOException {
       // trim the value if needed
       int len = value != null ? value.length : 0;
@@ -722,6 +725,7 @@ public class IndexSizeEstimator {
     }
 
     /** Process a string field. */
+    @Override
     public void stringField(FieldInfo fieldInfo, String value) throws IOException {
       // trim the value if needed
       int len = value != null ? UnicodeUtil.calcUTF16toUTF8Length(value, 0, value.length()) : 0;
@@ -732,21 +736,25 @@ public class IndexSizeEstimator {
     }
 
     /** Process a int numeric field. */
+    @Override
     public void intField(FieldInfo fieldInfo, int value) throws IOException {
       countItem(fieldInfo.name, String.valueOf(value), 4);
     }
 
     /** Process a long numeric field. */
+    @Override
     public void longField(FieldInfo fieldInfo, long value) throws IOException {
       countItem(fieldInfo.name, String.valueOf(value), 8);
     }
 
     /** Process a float numeric field. */
+    @Override
     public void floatField(FieldInfo fieldInfo, float value) throws IOException {
       countItem(fieldInfo.name, String.valueOf(value), 4);
     }
 
     /** Process a double numeric field. */
+    @Override
     public void doubleField(FieldInfo fieldInfo, double value) throws IOException {
       countItem(fieldInfo.name, String.valueOf(value), 8);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java
index eda280a98c8..e38af3e2377 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandler.java
@@ -267,6 +267,7 @@ public abstract class SecurityConfHandler extends RequestHandlerBase
       return setData(Utils.fromJSON(securityJsonInputStream));
     }
 
+    @Override
     public String toString() {
       return "SecurityConfig: version=" + version + ", data=" + Utils.toJSONString(data);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperInfoHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperInfoHandler.java
index b2ecf0b5696..7389fcd22c9 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperInfoHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/ZookeeperInfoHandler.java
@@ -248,6 +248,7 @@ public final class ZookeeperInfoHandler extends RequestHandlerBase {
           + (filter != null ? filter : "");
     }
 
+    @Override
     public String toString() {
       return getPagingHeader();
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java b/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
index de5dcb7b9f8..17372d154aa 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/ExpandComponent.java
@@ -557,6 +557,7 @@ public class ExpandComponent extends SearchComponent implements PluginInfoInitia
       }
     }
 
+    @Override
     public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
       final int docBase = context.docBase;
 
@@ -656,6 +657,7 @@ public class ExpandComponent extends SearchComponent implements PluginInfoInitia
       this.collapsedSet = collapsedSet;
     }
 
+    @Override
     public LeafCollector getLeafCollector(LeafReaderContext context) throws IOException {
       final int docBase = context.docBase;
 
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 77c0d426c32..2db476e2e6c 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
@@ -524,6 +524,7 @@ public class FacetComponent extends SearchComponent {
     rb.addRequest(this, shardsRefineRequestPivot);
   }
 
+  @Override
   public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq) {
 
     if (!rb.doFacets) return;
@@ -1451,6 +1452,7 @@ public class FacetComponent extends SearchComponent {
       counted = new FixedBitSet[rb.shards.length];
     }
 
+    @Override
     protected void fillParams(ResponseBuilder rb, SolrParams params, String field) {
       super.fillParams(rb, params, field);
       this.overrequestRatio =
diff --git a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
index 1cd131560a2..5c32d29e85a 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
@@ -190,6 +190,7 @@ public class HttpShardHandler extends ShardHandler {
                 responses.add(srsp);
               }
 
+              @Override
               public void onFailure(Throwable throwable) {
                 ssr.elapsedTime =
                     TimeUnit.MILLISECONDS.convert(
@@ -408,6 +409,7 @@ public class HttpShardHandler extends ShardHandler {
     return false;
   }
 
+  @Override
   public ShardHandlerFactory getShardHandlerFactory() {
     return httpShardHandlerFactory;
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/IterativeMergeStrategy.java b/solr/core/src/java/org/apache/solr/handler/component/IterativeMergeStrategy.java
index 5729128729a..bbd4ec9f42c 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/IterativeMergeStrategy.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/IterativeMergeStrategy.java
@@ -47,6 +47,7 @@ public abstract class IterativeMergeStrategy implements MergeStrategy {
 
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
+  @Override
   public void merge(ResponseBuilder rb, ShardRequest sreq) {
     rb._responseDocs = new SolrDocumentList(); // Null pointers will occur otherwise.
     rb.onePassDistributedQuery = true; // Turn off the second pass distributed.
@@ -64,18 +65,22 @@ public abstract class IterativeMergeStrategy implements MergeStrategy {
     }
   }
 
+  @Override
   public boolean mergesIds() {
     return true;
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
 
+  @Override
   public boolean handlesMergeFields() {
     return false;
   }
 
+  @Override
   public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher) {}
 
   public class CallBack implements Callable<CallBack> {
@@ -103,6 +108,7 @@ public abstract class IterativeMergeStrategy implements MergeStrategy {
       return this.originalShardResponse;
     }
 
+    @Override
     public CallBack call() throws Exception {
       this.response = req.process(solrClient);
       return this;
diff --git a/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java b/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java
index 608ca319470..0f220e0d99a 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/MoreLikeThisComponent.java
@@ -273,6 +273,7 @@ public class MoreLikeThisComponent extends SearchComponent {
     // hmm...we are ordering by scores that are not really comparable...
     Comparator<SolrDocument> c =
         new Comparator<SolrDocument>() {
+          @Override
           public int compare(SolrDocument o1, SolrDocument o2) {
             Float f1 = getFloat(o1);
             Float f2 = getFloat(o2);
diff --git a/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java
index 8f3cdb81f6b..5d8cf03849a 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/PhrasesIdentificationComponent.java
@@ -859,6 +859,7 @@ public class PhrasesIdentificationComponent extends SearchComponent {
     private final Map<String, Long> phrase_df = new TreeMap<>();
     private final Map<String, Double> fieldScores = new TreeMap<>();
 
+    @Override
     public String toString() {
       return "'"
           + subSequence
diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java
index d781fb04969..270c839eb5a 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacet.java
@@ -156,6 +156,7 @@ public class PivotFacet extends FacetBase {
     }
   }
 
+  @Override
   public String toString() {
     return "[" + facetStr + "] | " + this.getKey();
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetField.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetField.java
index abf944fc197..d62ea39649a 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetField.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetField.java
@@ -392,6 +392,7 @@ public class PivotFacetField {
     }
   }
 
+  @Override
   public String toString() {
     return String.format(Locale.ROOT, "P:%s F:%s V:%s", parentValue, field, valueCollection);
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java
index bc2495d78c8..f39c70ae0b5 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetFieldValueCollection.java
@@ -314,6 +314,7 @@ public class PivotFacetFieldValueCollection implements Iterable<PivotFacetValue>
 
   /** Sorts {@link PivotFacetValue} instances by their count */
   public static class PivotFacetCountComparator implements Comparator<PivotFacetValue> {
+    @Override
     public int compare(PivotFacetValue left, PivotFacetValue right) {
       int countCmp = right.getCount() - left.getCount();
       return (0 != countCmp) ? countCmp : compareWithNullLast(left.getValue(), right.getValue());
@@ -322,6 +323,7 @@ public class PivotFacetFieldValueCollection implements Iterable<PivotFacetValue>
 
   /** Sorts {@link PivotFacetValue} instances by their value */
   public static class PivotFacetValueComparator implements Comparator<PivotFacetValue> {
+    @Override
     public int compare(PivotFacetValue left, PivotFacetValue right) {
       return compareWithNullLast(left.getValue(), right.getValue());
     }
@@ -345,6 +347,7 @@ public class PivotFacetFieldValueCollection implements Iterable<PivotFacetValue>
     return o1.compareTo(o2);
   }
 
+  @Override
   public String toString() {
     return String.format(Locale.ROOT, "Values:%s | Missing:%s ", explicitValues, missingValue);
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetValue.java b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetValue.java
index 9f48df8c058..134364be3ce 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/PivotFacetValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/PivotFacetValue.java
@@ -264,6 +264,7 @@ public class PivotFacetValue {
     }
   }
 
+  @Override
   public String toString() {
     return String.format(
         Locale.ROOT,
diff --git a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
index 5da64036fd6..7b93db06a22 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
@@ -1481,14 +1481,17 @@ public class RealTimeGetComponent extends SearchComponent {
     /**
      * @returns null
      */
+    @Override
     public DocList getDocList() {
       return null;
     }
 
+    @Override
     public ReturnFields getReturnFields() {
       return this.returnFields;
     }
 
+    @Override
     public SolrIndexSearcher getSearcher() {
       return this.searcher;
     }
@@ -1496,10 +1499,12 @@ public class RealTimeGetComponent extends SearchComponent {
     /**
      * @returns null
      */
+    @Override
     public Query getQuery() {
       return null;
     }
 
+    @Override
     public SolrQueryRequest getRequest() {
       return this.req;
     }
@@ -1507,6 +1512,7 @@ public class RealTimeGetComponent extends SearchComponent {
     /**
      * @returns null
      */
+    @Override
     public Iterator<SolrDocument> getProcessedDocuments() {
       return null;
     }
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 c58124edaa3..78b506870a1 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
@@ -87,6 +87,7 @@ public class StatsField {
     countDistinct(false, distinctValues),
     percentiles(true) {
       /** special for percentiles * */
+      @Override
       boolean parseParams(StatsField sf) {
         String percentileParas = sf.localParams.get(this.name());
         if (percentileParas != null) {
@@ -118,6 +119,7 @@ public class StatsField {
     },
     cardinality(true) {
       /** special for percentiles * */
+      @Override
       boolean parseParams(StatsField sf) {
         try {
           sf.hllOpts = HllOptions.parseHllOptions(sf.localParams, sf.schemaField);
@@ -551,6 +553,7 @@ public class StatsField {
     return tagList;
   }
 
+  @Override
   public String toString() {
     return "StatsField<" + originalParam + ">";
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/component/StatsValuesFactory.java b/solr/core/src/java/org/apache/solr/handler/component/StatsValuesFactory.java
index 9dd3d16c00c..cdea5a4ae2f 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/StatsValuesFactory.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/StatsValuesFactory.java
@@ -363,6 +363,7 @@ public class StatsValuesFactory {
       return res;
     }
 
+    @Override
     public void setNextReader(LeafReaderContext ctx) throws IOException {
       if (valueSource == null) {
         // first time we've collected local values, get the right ValueSource
@@ -617,6 +618,7 @@ public class StatsValuesFactory {
       }
     }
 
+    @Override
     protected void updateMinMax(EnumFieldValue min, EnumFieldValue max) {
       if (computeMin) { // nested if to encourage JIT to optimize aware final var?
         if (null != min) {
diff --git a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSchemaSuggester.java b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSchemaSuggester.java
index d6deeb5f901..82cf8273440 100644
--- a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSchemaSuggester.java
+++ b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSchemaSuggester.java
@@ -385,6 +385,7 @@ public class DefaultSchemaSuggester implements SchemaSuggester {
     return true;
   }
 
+  @Override
   public boolean isMultiValued(String name, List<SolrInputDocument> docs) {
     Map<String, List<Object>> transposed = transposeDocs(docs);
     List<Object> sampleValues = transposed.get(name);
diff --git a/solr/core/src/java/org/apache/solr/handler/export/BoolFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/BoolFieldWriter.java
index 353bcb88e3a..fbeccdc4c0d 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/BoolFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/BoolFieldWriter.java
@@ -27,6 +27,7 @@ class BoolFieldWriter extends StringFieldWriter {
     super(field, fieldType);
   }
 
+  @Override
   protected void writeBytes(MapWriter.EntryWriter ew, BytesRef ref, FieldType fieldType)
       throws IOException {
     fieldType.indexedToReadable(ref, cref);
diff --git a/solr/core/src/java/org/apache/solr/handler/export/DateFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/DateFieldWriter.java
index c84916ee549..c86f0eacac1 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/DateFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/DateFieldWriter.java
@@ -33,6 +33,7 @@ class DateFieldWriter extends FieldWriter {
     this.field = field;
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter ew, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/DoubleComp.java b/solr/core/src/java/org/apache/solr/handler/export/DoubleComp.java
index 02187763909..5803b7fc009 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/DoubleComp.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/DoubleComp.java
@@ -23,20 +23,24 @@ interface DoubleComp {
   double resetValue();
 
   static class DoubleAsc implements DoubleComp {
+    @Override
     public double resetValue() {
       return Double.MAX_VALUE;
     }
 
+    @Override
     public int compare(double a, double b) {
       return Double.compare(b, a);
     }
   }
 
   static class DoubleDesc implements DoubleComp {
+    @Override
     public double resetValue() {
       return -Double.MAX_VALUE;
     }
 
+    @Override
     public int compare(double a, double b) {
       return Double.compare(a, b);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/export/DoubleFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/DoubleFieldWriter.java
index 9d9e5989132..50cbdddb385 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/DoubleFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/DoubleFieldWriter.java
@@ -32,6 +32,7 @@ class DoubleFieldWriter extends FieldWriter {
     this.field = field;
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter ew, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/DoubleValue.java b/solr/core/src/java/org/apache/solr/handler/export/DoubleValue.java
index b537f1849e8..4d9ab03e7c8 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/DoubleValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/DoubleValue.java
@@ -40,25 +40,30 @@ class DoubleValue implements SortValue {
     this.present = false;
   }
 
+  @Override
   public Object getCurrentValue() {
     assert present == true;
     return currentValue;
   }
 
+  @Override
   public String getField() {
     return field;
   }
 
+  @Override
   public DoubleValue copy() {
     return new DoubleValue(field, comp);
   }
 
+  @Override
   public void setNextReader(LeafReaderContext context) throws IOException {
     this.reader = context.reader();
     this.vals = DocValues.getNumeric(this.reader, this.field);
     lastDocID = 0;
   }
 
+  @Override
   public void setCurrentValue(int docId) throws IOException {
     if (docId < lastDocID) {
       throw new AssertionError(
@@ -78,6 +83,7 @@ class DoubleValue implements SortValue {
     }
   }
 
+  @Override
   public void toGlobalValue(SortValue previousValue) {}
 
   @Override
@@ -85,17 +91,20 @@ class DoubleValue implements SortValue {
     return present;
   }
 
+  @Override
   public void setCurrentValue(SortValue sv) {
     DoubleValue dv = (DoubleValue) sv;
     this.currentValue = dv.currentValue;
     this.present = dv.present;
   }
 
+  @Override
   public void reset() {
     this.currentValue = comp.resetValue();
     this.present = false;
   }
 
+  @Override
   public int compareTo(SortValue o) {
     DoubleValue dv = (DoubleValue) o;
     return comp.compare(currentValue, dv.currentValue);
diff --git a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
index 61a76674516..cc1599562a3 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
@@ -179,6 +179,7 @@ public class ExportWriter implements SolrCore.RawWriter, Closeable {
     }
   }
 
+  @Override
   public void write(OutputStream os) throws IOException {
     try {
       _write(os);
@@ -831,10 +832,12 @@ public class ExportWriter implements SolrCore.RawWriter, Closeable {
   }
 
   public static class IgnoreException extends IOException {
+    @Override
     public void printStackTrace(PrintWriter pw) {
       pw.print("Early Client Disconnect");
     }
 
+    @Override
     public String getMessage() {
       return "Early Client Disconnect";
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/export/FloatComp.java b/solr/core/src/java/org/apache/solr/handler/export/FloatComp.java
index 1ce6e57f028..3d2f838866c 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/FloatComp.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/FloatComp.java
@@ -23,20 +23,24 @@ interface FloatComp {
   float resetValue();
 
   static class FloatAsc implements FloatComp {
+    @Override
     public float resetValue() {
       return Float.MAX_VALUE;
     }
 
+    @Override
     public int compare(float a, float b) {
       return Float.compare(b, a);
     }
   }
 
   static class FloatDesc implements FloatComp {
+    @Override
     public float resetValue() {
       return -Float.MAX_VALUE;
     }
 
+    @Override
     public int compare(float a, float b) {
       return Float.compare(a, b);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/export/FloatFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/FloatFieldWriter.java
index 06bd27cd112..48bd9d632ed 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/FloatFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/FloatFieldWriter.java
@@ -32,6 +32,7 @@ class FloatFieldWriter extends FieldWriter {
     this.field = field;
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter ew, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/FloatValue.java b/solr/core/src/java/org/apache/solr/handler/export/FloatValue.java
index 727334026bb..95d02c0ace4 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/FloatValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/FloatValue.java
@@ -38,26 +38,32 @@ class FloatValue implements SortValue {
     this.present = false;
   }
 
+  @Override
   public Object getCurrentValue() {
     assert present == true;
     return currentValue;
   }
 
+  @Override
   public void toGlobalValue(SortValue previousValue) {}
 
+  @Override
   public String getField() {
     return field;
   }
 
+  @Override
   public FloatValue copy() {
     return new FloatValue(field, comp);
   }
 
+  @Override
   public void setNextReader(LeafReaderContext context) throws IOException {
     this.vals = DocValues.getNumeric(context.reader(), field);
     lastDocID = 0;
   }
 
+  @Override
   public void setCurrentValue(int docId) throws IOException {
     if (docId < lastDocID) {
       throw new AssertionError(
@@ -82,17 +88,20 @@ class FloatValue implements SortValue {
     return present;
   }
 
+  @Override
   public void setCurrentValue(SortValue sv) {
     FloatValue fv = (FloatValue) sv;
     this.currentValue = fv.currentValue;
     this.present = fv.present;
   }
 
+  @Override
   public void reset() {
     this.currentValue = comp.resetValue();
     this.present = false;
   }
 
+  @Override
   public int compareTo(SortValue o) {
     FloatValue fv = (FloatValue) o;
     return comp.compare(currentValue, fv.currentValue);
diff --git a/solr/core/src/java/org/apache/solr/handler/export/IntComp.java b/solr/core/src/java/org/apache/solr/handler/export/IntComp.java
index 8ca0c236b3e..bb04ae1e159 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/IntComp.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/IntComp.java
@@ -24,10 +24,12 @@ public interface IntComp {
 
   static class IntAsc implements IntComp {
 
+    @Override
     public int resetValue() {
       return Integer.MAX_VALUE;
     }
 
+    @Override
     public int compare(int a, int b) {
       return Integer.compare(b, a);
     }
@@ -35,10 +37,12 @@ public interface IntComp {
 
   static class IntDesc implements IntComp {
 
+    @Override
     public int resetValue() {
       return Integer.MIN_VALUE;
     }
 
+    @Override
     public int compare(int a, int b) {
       return Integer.compare(a, b);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/export/IntFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/IntFieldWriter.java
index ce0659d5a1e..1ecef85f21b 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/IntFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/IntFieldWriter.java
@@ -32,6 +32,7 @@ class IntFieldWriter extends FieldWriter {
     this.field = field;
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter ew, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/IntValue.java b/solr/core/src/java/org/apache/solr/handler/export/IntValue.java
index b8a98d2b1d3..b732c40b53b 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/IntValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/IntValue.java
@@ -31,15 +31,18 @@ public class IntValue implements SortValue {
   private int lastDocID;
   protected boolean present;
 
+  @Override
   public Object getCurrentValue() {
     assert present == true;
     return currentValue;
   }
 
+  @Override
   public String getField() {
     return field;
   }
 
+  @Override
   public IntValue copy() {
     return new IntValue(field, comp);
   }
@@ -51,11 +54,13 @@ public class IntValue implements SortValue {
     this.present = false;
   }
 
+  @Override
   public void setNextReader(LeafReaderContext context) throws IOException {
     this.vals = DocValues.getNumeric(context.reader(), field);
     lastDocID = 0;
   }
 
+  @Override
   public void setCurrentValue(int docId) throws IOException {
     if (docId < lastDocID) {
       throw new AssertionError(
@@ -75,6 +80,7 @@ public class IntValue implements SortValue {
     }
   }
 
+  @Override
   public void toGlobalValue(SortValue previousValue) {}
 
   @Override
@@ -82,17 +88,20 @@ public class IntValue implements SortValue {
     return this.present;
   }
 
+  @Override
   public int compareTo(SortValue o) {
     IntValue iv = (IntValue) o;
     return comp.compare(currentValue, iv.currentValue);
   }
 
+  @Override
   public void setCurrentValue(SortValue sv) {
     IntValue iv = (IntValue) sv;
     this.currentValue = iv.currentValue;
     this.present = iv.present;
   }
 
+  @Override
   public void reset() {
     currentValue = comp.resetValue();
     this.present = false;
diff --git a/solr/core/src/java/org/apache/solr/handler/export/LongComp.java b/solr/core/src/java/org/apache/solr/handler/export/LongComp.java
index 0637f7202f8..9388a21183e 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/LongComp.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/LongComp.java
@@ -24,10 +24,12 @@ interface LongComp {
 
   static class LongAsc implements LongComp {
 
+    @Override
     public long resetValue() {
       return Long.MAX_VALUE;
     }
 
+    @Override
     public int compare(long a, long b) {
       return Long.compare(b, a);
     }
@@ -35,10 +37,12 @@ interface LongComp {
 
   static class LongDesc implements LongComp {
 
+    @Override
     public long resetValue() {
       return Long.MIN_VALUE;
     }
 
+    @Override
     public int compare(long a, long b) {
       return Long.compare(a, b);
     }
diff --git a/solr/core/src/java/org/apache/solr/handler/export/LongFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/LongFieldWriter.java
index 889abf969ff..9c18a72bd6d 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/LongFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/LongFieldWriter.java
@@ -33,6 +33,7 @@ class LongFieldWriter extends FieldWriter {
     this.field = field;
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter ew, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/LongValue.java b/solr/core/src/java/org/apache/solr/handler/export/LongValue.java
index cd21257d15c..81ace242e27 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/LongValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/LongValue.java
@@ -38,26 +38,32 @@ public class LongValue implements SortValue {
     this.present = false;
   }
 
+  @Override
   public Object getCurrentValue() {
     assert present == true;
     return currentValue;
   }
 
+  @Override
   public String getField() {
     return field;
   }
 
+  @Override
   public LongValue copy() {
     return new LongValue(field, comp);
   }
 
+  @Override
   public void toGlobalValue(SortValue previousValue) {}
 
+  @Override
   public void setNextReader(LeafReaderContext context) throws IOException {
     this.vals = DocValues.getNumeric(context.reader(), field);
     lastDocID = 0;
   }
 
+  @Override
   public void setCurrentValue(int docId) throws IOException {
     if (docId < lastDocID) {
       throw new AssertionError(
@@ -82,17 +88,20 @@ public class LongValue implements SortValue {
     return present;
   }
 
+  @Override
   public void setCurrentValue(SortValue sv) {
     LongValue lv = (LongValue) sv;
     this.currentValue = lv.currentValue;
     this.present = lv.present;
   }
 
+  @Override
   public int compareTo(SortValue o) {
     LongValue l = (LongValue) o;
     return comp.compare(currentValue, l.currentValue);
   }
 
+  @Override
   public void reset() {
     this.currentValue = comp.resetValue();
     this.present = false;
diff --git a/solr/core/src/java/org/apache/solr/handler/export/MultiFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/MultiFieldWriter.java
index 863451eb217..86dd8ba82e3 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/MultiFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/MultiFieldWriter.java
@@ -56,6 +56,7 @@ class MultiFieldWriter extends FieldWriter {
     }
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter out, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/SingleValueSortDoc.java b/solr/core/src/java/org/apache/solr/handler/export/SingleValueSortDoc.java
index a8381c1a015..5e82e1d3939 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/SingleValueSortDoc.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/SingleValueSortDoc.java
@@ -101,6 +101,7 @@ class SingleValueSortDoc extends SortDoc {
     }
   }
 
+  @Override
   public String toString() {
     return ord + ":" + docBase + ":" + docId + ":val=" + value1.toString();
   }
diff --git a/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java b/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java
index 67d88bdf250..4f0febc19d3 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/SortDoc.java
@@ -135,6 +135,7 @@ class SortDoc implements Comparable<SortDoc> {
     return (sd.docId + sd.docBase) - (docId + docBase);
   }
 
+  @Override
   public String toString() {
     StringBuilder builder = new StringBuilder();
     builder.append(ord).append(':').append(docBase).append(':').append(docId).append("; ");
diff --git a/solr/core/src/java/org/apache/solr/handler/export/StringFieldWriter.java b/solr/core/src/java/org/apache/solr/handler/export/StringFieldWriter.java
index 366b500795b..7e15704f32d 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/StringFieldWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/StringFieldWriter.java
@@ -55,6 +55,7 @@ class StringFieldWriter extends FieldWriter {
     this.fieldType = fieldType;
   }
 
+  @Override
   public boolean write(
       SortDoc sortDoc, LeafReaderContext readerContext, MapWriter.EntryWriter ew, int fieldIndex)
       throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/StringValue.java b/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
index 00f0b399c52..53a427ee621 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/StringValue.java
@@ -68,11 +68,13 @@ class StringValue implements SortValue {
     this.lastString = lastString;
   }
 
+  @Override
   public StringValue copy() {
     StringValue copy = new StringValue(globalDocValues, field, comp);
     return copy;
   }
 
+  @Override
   public void setCurrentValue(int docId) throws IOException {
     // System.out.println(docId +":"+lastDocID);
     /*
@@ -101,6 +103,7 @@ class StringValue implements SortValue {
     return present;
   }
 
+  @Override
   public void setCurrentValue(SortValue sv) {
     StringValue v = (StringValue) sv;
     this.currentOrd = v.currentOrd;
@@ -110,6 +113,7 @@ class StringValue implements SortValue {
     this.toGlobal = v.toGlobal;
   }
 
+  @Override
   public Object getCurrentValue() throws IOException {
     assert present == true;
     if (currentOrd != lastOrd) {
@@ -120,6 +124,7 @@ class StringValue implements SortValue {
     return lastBytes;
   }
 
+  @Override
   public void toGlobalValue(SortValue previousValue) {
     lastOrd = currentOrd;
     StringValue sv = (StringValue) previousValue;
@@ -136,10 +141,12 @@ class StringValue implements SortValue {
     }
   }
 
+  @Override
   public String getField() {
     return field;
   }
 
+  @Override
   public void setNextReader(LeafReaderContext context) throws IOException {
     leafOrd = context.ord;
     if (ordinalMap != null) {
@@ -149,17 +156,20 @@ class StringValue implements SortValue {
     lastDocID = 0;
   }
 
+  @Override
   public void reset() {
     this.currentOrd = comp.resetValue();
     this.present = false;
     lastDocID = 0;
   }
 
+  @Override
   public int compareTo(SortValue o) {
     StringValue sv = (StringValue) o;
     return comp.compare(currentOrd, sv.currentOrd);
   }
 
+  @Override
   public String toString() {
     return Integer.toString(this.currentOrd);
   }
diff --git a/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java b/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java
index 0d944f2cc0f..7f43820316d 100644
--- a/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java
+++ b/solr/core/src/java/org/apache/solr/jersey/container/ContainerRequestUtils.java
@@ -44,18 +44,22 @@ public class ContainerRequestUtils {
   // all requests.
   public static final SecurityContext DEFAULT_SECURITY_CONTEXT =
       new SecurityContext() {
+        @Override
         public boolean isUserInRole(String role) {
           return false;
         }
 
+        @Override
         public boolean isSecure() {
           return false;
         }
 
+        @Override
         public Principal getUserPrincipal() {
           return null;
         }
 
+        @Override
         public String getAuthenticationScheme() {
           return null;
         }
diff --git a/solr/core/src/java/org/apache/solr/logging/MDCSnapshot.java b/solr/core/src/java/org/apache/solr/logging/MDCSnapshot.java
index 83b55d8bb04..c3e3e9bbc63 100644
--- a/solr/core/src/java/org/apache/solr/logging/MDCSnapshot.java
+++ b/solr/core/src/java/org/apache/solr/logging/MDCSnapshot.java
@@ -47,6 +47,7 @@ public final class MDCSnapshot implements Closeable {
     this.snapshot = MDC.getCopyOfContextMap();
   }
 
+  @Override
   public void close() {
     MDC.clear();
     if (snapshot != null && !snapshot.isEmpty()) { // common case optimization
diff --git a/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java b/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
index ee340b73ed7..2cc3247a41c 100644
--- a/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
+++ b/solr/core/src/java/org/apache/solr/logging/log4j2/Log4j2Watcher.java
@@ -60,6 +60,7 @@ public class Log4j2Watcher extends LogWatcher<LogEvent> {
       this.threshold = threshold;
     }
 
+    @Override
     public void append(LogEvent logEvent) {
       watcher.add(logEvent, logEvent.getTimeMillis());
     }
diff --git a/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java b/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java
index fd62c6f3c49..816b8c3a3f9 100644
--- a/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java
+++ b/solr/core/src/java/org/apache/solr/metrics/MetricsMap.java
@@ -103,6 +103,7 @@ public class MetricsMap implements Gauge<Map<String, Object>>, MapWriter, Dynami
     return map;
   }
 
+  @Override
   public String toString() {
     return getValue().toString();
   }
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java b/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
index 206c8fe75bb..61a1a0881fb 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrMetricReporter.java
@@ -50,6 +50,7 @@ public abstract class SolrMetricReporter implements Closeable, PluginInfoInitial
    *
    * @param pluginInfo the plugin's configuration
    */
+  @Override
   @SuppressWarnings("unchecked")
   public void init(PluginInfo pluginInfo) {
     if (pluginInfo != null) {
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/ReporterClientCache.java b/solr/core/src/java/org/apache/solr/metrics/reporters/ReporterClientCache.java
index 756f5859b59..b6465d11022 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/ReporterClientCache.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/ReporterClientCache.java
@@ -69,6 +69,7 @@ public class ReporterClientCache<T> implements Closeable {
   }
 
   /** Empty this cache, and close all clients that are {@link Closeable}. */
+  @Override
   public void close() {
     for (T client : cache.values()) {
       if (client instanceof Closeable) {
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
index 0e23d66bb6b..6790a577457 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/SolrJmxReporter.java
@@ -66,6 +66,7 @@ public class SolrJmxReporter extends FilteringSolrMetricReporter {
     setDomain(registryName);
   }
 
+  @Override
   protected synchronized void doInit() {
     if (serviceUrl != null && agentId != null) {
       mBeanServer = JmxUtil.findFirstMBeanServer();
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java
index 999fdaf3750..772a56094e0 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java
@@ -322,6 +322,7 @@ public class JmxMetricsReporter implements Reporter, Closeable {
       return metric.getSnapshot().getValues();
     }
 
+    @Override
     public long getSnapshotSize() {
       return metric.getSnapshot().size();
     }
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 f1fb211c94d..7b4f90c79f5 100644
--- a/solr/core/src/java/org/apache/solr/parser/QueryParser.java
+++ b/solr/core/src/java/org/apache/solr/parser/QueryParser.java
@@ -137,6 +137,7 @@ 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);
@@ -773,6 +774,7 @@ if (splitOnWhitespace == false) {
   }
 
   /** Reinitialise. */
+  @Override
   public void ReInit(CharStream stream) {
      token_source.ReInit(stream);
      token = new Token();
diff --git a/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java b/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
index 2ed6d572807..3bf8aa80dd1 100644
--- a/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
+++ b/solr/core/src/java/org/apache/solr/request/LocalSolrQueryRequest.java
@@ -93,6 +93,7 @@ public class LocalSolrQueryRequest extends SolrQueryRequestBase {
       this.user = user;
     }
 
+    @Override
     public String getName() {
       return user;
     }
diff --git a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
index 134c3421d8a..613ae31d438 100644
--- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
+++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
@@ -67,6 +67,7 @@ public interface SolrQueryRequest extends AutoCloseable {
    * This method should be called when all uses of this request are finished, so that resources can
    * be freed.
    */
+  @Override
   void close();
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java b/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java
index 03fc55900ab..f1034b00bec 100644
--- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java
+++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequestBase.java
@@ -227,6 +227,7 @@ public abstract class SolrQueryRequestBase implements SolrQueryRequest, Closeabl
 
   List<CommandOperation> parsedCommands;
 
+  @Override
   public List<CommandOperation> getCommands(boolean validateInput) {
     if (parsedCommands == null) {
       Iterable<ContentStream> contentStreams = getContentStreams();
diff --git a/solr/core/src/java/org/apache/solr/response/DocsStreamer.java b/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
index 985c6fc1b76..2f1e003628c 100644
--- a/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
+++ b/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
@@ -82,10 +82,12 @@ public class DocsStreamer implements Iterator<SolrDocument> {
     return idx;
   }
 
+  @Override
   public boolean hasNext() {
     return docIterator.hasNext();
   }
 
+  @Override
   public SolrDocument next() {
     int id = docIterator.nextDoc();
     idx++;
diff --git a/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java b/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java
index 2d1e3f2d092..84da639bd6d 100644
--- a/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/GraphMLResponseWriter.java
@@ -30,10 +30,12 @@ import org.apache.solr.request.SolrQueryRequest;
 
 public class GraphMLResponseWriter implements QueryResponseWriter {
 
+  @Override
   public String getContentType(SolrQueryRequest req, SolrQueryResponse res) {
     return "application/xml";
   }
 
+  @Override
   public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse res) throws IOException {
 
     Exception e1 = res.getException();
diff --git a/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java
index 7099e7e87ae..830cadb505a 100644
--- a/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java
@@ -116,6 +116,7 @@ public abstract class TextResponseWriter implements TextWriter {
   }
 
   /** done with this ResponseWriter... make sure any buffers are flushed to writer */
+  @Override
   public void close() throws IOException {
     if (writer != null) writer.flushBuffer();
   }
@@ -126,6 +127,7 @@ public abstract class TextResponseWriter implements TextWriter {
   }
 
   /** returns the Writer that the response is being written to */
+  @Override
   public Writer getWriter() {
     return writer;
   }
@@ -138,23 +140,28 @@ public abstract class TextResponseWriter implements TextWriter {
     this.level = level;
   }
 
+  @Override
   public int level() {
     return level;
   }
 
+  @Override
   public int incLevel() {
     return ++level;
   }
 
+  @Override
   public int decLevel() {
     return --level;
   }
 
+  @Override
   public TextResponseWriter setIndent(boolean doIndent) {
     this.doIndent = doIndent;
     return this;
   }
 
+  @Override
   public final void writeVal(String name, Object val, boolean raw) throws IOException {
 
     // if there get to be enough types, perhaps hashing on the type
diff --git a/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java b/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java
index 32bccc65016..36ce27f5765 100644
--- a/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java
+++ b/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java
@@ -149,14 +149,17 @@ public abstract class DocTransformer {
       this.field = field;
     }
 
+    @Override
     public String getName() {
       return "noop";
     }
 
+    @Override
     public String[] getExtraRequestFields() {
       return this.field == null ? null : new String[] {field};
     }
 
+    @Override
     public void transform(SolrDocument doc, int docid) {
       // No-Op
     }
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java
index f92b0dfab2f..0691ef9c6de 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedStopFilterFactory.java
@@ -58,6 +58,7 @@ public class ManagedStopFilterFactory extends BaseManagedTokenFilterFactory {
   }
 
   /** Returns the implementation class for managing stop words. */
+  @Override
   protected Class<? extends ManagedResource> getManagedResourceImplClass() {
     return ManagedWordSetResource.class;
   }
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
index e8c0075c95a..a2bce21a4b0 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymFilterFactory.java
@@ -94,6 +94,7 @@ public class ManagedSynonymFilterFactory extends BaseManagedTokenFilterFactory {
       return synMappings;
     }
 
+    @Override
     public String toString() {
       return mappings.toString();
     }
@@ -401,6 +402,7 @@ public class ManagedSynonymFilterFactory extends BaseManagedTokenFilterFactory {
     return "/schema/analysis/synonyms/" + handle;
   }
 
+  @Override
   protected Class<? extends ManagedResource> getManagedResourceImplClass() {
     return SynonymManager.class;
   }
diff --git a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
index 2cc40d2f184..7517242f05e 100644
--- a/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
+++ b/solr/core/src/java/org/apache/solr/rest/schema/analysis/ManagedSynonymGraphFilterFactory.java
@@ -90,6 +90,7 @@ public class ManagedSynonymGraphFilterFactory extends BaseManagedTokenFilterFact
       return synMappings;
     }
 
+    @Override
     public String toString() {
       return mappings.toString();
     }
@@ -397,6 +398,7 @@ public class ManagedSynonymGraphFilterFactory extends BaseManagedTokenFilterFact
     return "/schema/analysis/synonyms/" + handle;
   }
 
+  @Override
   protected Class<? extends ManagedResource> getManagedResourceImplClass() {
     return SynonymManager.class;
   }
diff --git a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
index 0dd9296768e..9b48ad63e57 100644
--- a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
+++ b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java
@@ -307,6 +307,7 @@ public class CurrencyFieldType extends FieldType implements SchemaAware, Resourc
    * @see Currency#getDefaultFractionDigits
    * @see #getConvertedValueSource
    */
+  @Override
   public RawCurrencyValueSource getValueSource(SchemaField field, QParser parser) {
     getAmountField(field).checkFieldCacheSource();
     getCurrencyField(field).checkFieldCacheSource();
diff --git a/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java b/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
index 33ad1b62302..6a9e77c9c9b 100644
--- a/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
+++ b/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
@@ -162,6 +162,7 @@ public class DenseVectorField extends FloatPointField {
     }
   }
 
+  @Override
   public List<IndexableField> createFields(SchemaField field, Object value) {
     ArrayList<IndexableField> fields = new ArrayList<>();
     float[] parsedVector;
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 e6ac7900155..34e0944c547 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -1148,14 +1148,17 @@ public class IndexSchema {
           super(regex, regex.substring(0, regex.length() - 1));
         }
 
+        @Override
         boolean matches(String name) {
           return name.startsWith(fixedStr);
         }
 
+        @Override
         String remainder(String name) {
           return name.substring(fixedStr.length());
         }
 
+        @Override
         String subst(String replacement) {
           return fixedStr + replacement;
         }
@@ -1166,14 +1169,17 @@ public class IndexSchema {
           super(regex, regex.substring(1));
         }
 
+        @Override
         boolean matches(String name) {
           return name.endsWith(fixedStr);
         }
 
+        @Override
         String remainder(String name) {
           return name.substring(0, name.length() - fixedStr.length());
         }
 
+        @Override
         String subst(String replacement) {
           return replacement + fixedStr;
         }
@@ -1184,14 +1190,17 @@ public class IndexSchema {
           super(regex, regex);
         }
 
+        @Override
         boolean matches(String name) {
           return regex.equals(name);
         }
 
+        @Override
         String remainder(String name) {
           return "";
         }
 
+        @Override
         String subst(String replacement) {
           return fixedStr;
         }
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 215f05c7ccb..72e0c783e2d 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@ -1043,6 +1043,7 @@ public final class ManagedIndexSchema extends IndexSchema {
     }
   }
 
+  @Override
   public ManagedIndexSchema addFieldTypes(List<FieldType> fieldTypeList, boolean persist) {
     if (!isMutable) {
       String msg = "This ManagedIndexSchema is not mutable.";
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaField.java b/solr/core/src/java/org/apache/solr/schema/SchemaField.java
index 64c02917064..e40e1a98e06 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaField.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaField.java
@@ -102,6 +102,7 @@ public final class SchemaField extends FieldProperties implements IndexableField
     return (properties & INDEXED) != 0;
   }
 
+  @Override
   public boolean stored() {
     return (properties & STORED) != 0;
   }
@@ -126,6 +127,7 @@ public final class SchemaField extends FieldProperties implements IndexableField
     return (properties & STORE_TERMPAYLOADS) != 0;
   }
 
+  @Override
   public boolean omitNorms() {
     return (properties & OMIT_NORMS) != 0;
   }
diff --git a/solr/core/src/java/org/apache/solr/schema/SortableTextField.java b/solr/core/src/java/org/apache/solr/schema/SortableTextField.java
index a124872030d..f5b3a8c970a 100644
--- a/solr/core/src/java/org/apache/solr/schema/SortableTextField.java
+++ b/solr/core/src/java/org/apache/solr/schema/SortableTextField.java
@@ -65,6 +65,7 @@ public class SortableTextField extends TextField {
 
   private int maxCharsForDocValues = DEFAULT_MAX_CHARS_FOR_DOC_VALUES;
 
+  @Override
   protected void init(IndexSchema schema, Map<String, String> args) {
     {
       final String maxS = args.remove("maxCharsForDocValues");
diff --git a/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java b/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
index 87249cdaf13..d37e812a891 100644
--- a/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
+++ b/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
@@ -223,10 +223,12 @@ public class ZkIndexSchemaReader implements OnReconnect {
     return uniqueCoreId;
   }
 
+  @Override
   public String toString() {
     return "ZkIndexSchemaReader: " + managedSchemaPath + ", uniqueCoreId: " + uniqueCoreId;
   }
 
+  @Override
   public int hashCode() {
     return managedSchemaPath.hashCode() + uniqueCoreId.hashCode();
   }
@@ -234,6 +236,7 @@ public class ZkIndexSchemaReader implements OnReconnect {
   // We need the uniqueCoreId which is core name + start time nanos to be the tie breaker
   // as there can be multiple ZkIndexSchemaReader instances active for the same core after
   // a reload (one is initializing and the other is being shutdown)
+  @Override
   public boolean equals(Object other) {
     if (other == null) return false;
     if (other == this) return true;
diff --git a/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java b/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java
index 51ee5eb6a1c..f37e2372e4a 100644
--- a/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/AbstractReRankQuery.java
@@ -45,6 +45,7 @@ public abstract class AbstractReRankQuery extends RankQuery {
     this.reRankQueryRescorer = reRankQueryRescorer;
   }
 
+  @Override
   public RankQuery wrap(Query _mainQuery) {
     if (_mainQuery != null) {
       this.mainQuery = _mainQuery;
@@ -52,10 +53,12 @@ public abstract class AbstractReRankQuery extends RankQuery {
     return this;
   }
 
+  @Override
   public MergeStrategy getMergeStrategy() {
     return null;
   }
 
+  @Override
   @SuppressWarnings({"unchecked"})
   public TopDocsCollector<ScoreDoc> getTopDocsCollector(
       int len, QueryCommand cmd, IndexSearcher searcher) throws IOException {
@@ -71,6 +74,7 @@ public abstract class AbstractReRankQuery extends RankQuery {
         reRankDocs, len, reRankQueryRescorer, cmd, searcher, boostedPriority);
   }
 
+  @Override
   public Query rewrite(IndexReader reader) throws IOException {
     Query q = mainQuery.rewrite(reader);
     if (q != mainQuery) {
diff --git a/solr/core/src/java/org/apache/solr/search/AnalyticsQuery.java b/solr/core/src/java/org/apache/solr/search/AnalyticsQuery.java
index 6868229233c..c0779b4923d 100644
--- a/solr/core/src/java/org/apache/solr/search/AnalyticsQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/AnalyticsQuery.java
@@ -28,18 +28,22 @@ import org.apache.solr.request.SolrRequestInfo;
  */
 public abstract class AnalyticsQuery extends ExtendedQueryBase implements PostFilter {
 
+  @Override
   public boolean getCache() {
     return false;
   }
 
+  @Override
   public int getCost() {
     return Math.max(super.getCost(), 100);
   }
 
+  @Override
   public boolean equals(Object o) {
     return this == o;
   }
 
+  @Override
   public int hashCode() {
     return System.identityHashCode(this);
   }
@@ -58,6 +62,7 @@ public abstract class AnalyticsQuery extends ExtendedQueryBase implements PostFi
     rb.addMergeStrategy(mergeStrategy);
   }
 
+  @Override
   public DelegatingCollector getFilterCollector(IndexSearcher searcher) {
     SolrRequestInfo info = SolrRequestInfo.getRequestInfo();
     ResponseBuilder rb = null;
diff --git a/solr/core/src/java/org/apache/solr/search/BitDocSet.java b/solr/core/src/java/org/apache/solr/search/BitDocSet.java
index 2eebe19bf2e..0e5cdbbb5f2 100644
--- a/solr/core/src/java/org/apache/solr/search/BitDocSet.java
+++ b/solr/core/src/java/org/apache/solr/search/BitDocSet.java
@@ -308,6 +308,7 @@ public class BitDocSet extends DocSet {
     };
   }
 
+  @Override
   public DocSetQuery makeQuery() {
     return new DocSetQuery(this);
   }
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 8de0a4bbe53..68f7e1cdd76 100644
--- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
@@ -195,6 +195,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
     static NullPolicy DEFAULT_POLICY = IGNORE;
   }
 
+  @Override
   public QParser createParser(
       String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest request) {
     return new CollapsingQParser(qstr, localParams, params, request);
@@ -207,6 +208,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       super(qstr, localParams, params, request);
     }
 
+    @Override
     public Query parse() throws SyntaxError {
       try {
         return new CollapsingPostFilter(localParams, params, req);
@@ -303,14 +305,17 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return this.collapseField;
     }
 
+    @Override
     public void setCache(boolean cache) {}
 
+    @Override
     public boolean getCache() {
       return false;
     }
 
     // Only a subset of fields in hashCode/equals?
 
+    @Override
     public int hashCode() {
       int hashCode = classHash();
       hashCode = 31 * hashCode + collapseField.hashCode();
@@ -319,6 +324,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return hashCode;
     }
 
+    @Override
     public boolean equals(Object other) {
       return sameClassAs(other) && equalsTo(getClass().cast(other));
     }
@@ -334,10 +340,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       visitor.visitLeaf(this);
     }
 
+    @Override
     public int getCost() {
       return Math.max(super.getCost(), 100);
     }
 
+    @Override
     public String toString(String s) {
       return "CollapsingPostFilter(field="
           + this.collapseField
@@ -435,6 +443,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       this.nullPolicy = NullPolicy.fromString(localParams.get("nullPolicy"));
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public DelegatingCollector getFilterCollector(IndexSearcher indexSearcher) {
       try {
@@ -534,10 +543,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       this.fieldInfos = infos;
     }
 
+    @Override
     public FieldInfos getFieldInfos() {
       return fieldInfos;
     }
 
+    @Override
     public SortedDocValues getSortedDocValues(String field) {
       return null;
     }
@@ -563,10 +574,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
     public float score;
     public int docId;
 
+    @Override
     public float score() {
       return score;
     }
 
+    @Override
     public int docID() {
       return docId;
     }
@@ -1136,10 +1149,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return needsScores ? ScoreMode.COMPLETE : super.scoreMode();
     }
 
+    @Override
     public void setScorer(Scorable scorer) throws IOException {
       this.collapseStrategy.setScorer(scorer);
     }
 
+    @Override
     public void doSetNextReader(LeafReaderContext context) throws IOException {
       this.contexts[context.ord] = context;
       this.docBase = context.docBase;
@@ -1152,6 +1167,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void collect(int contextDoc) throws IOException {
       int globalDoc = contextDoc + this.docBase;
       int ord = -1;
@@ -1178,6 +1194,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       collapseStrategy.collapse(ord, contextDoc, globalDoc);
     }
 
+    @Override
     public void finish() throws IOException {
       if (contexts.length == 0) {
         return;
@@ -1393,6 +1410,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       this.collapseStrategy.setScorer(scorer);
     }
 
+    @Override
     public void doSetNextReader(LeafReaderContext context) throws IOException {
       this.contexts[context.ord] = context;
       this.docBase = context.docBase;
@@ -1400,6 +1418,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       this.collapseValues = DocValues.getNumeric(context.reader(), this.collapseField);
     }
 
+    @Override
     public void collect(int contextDoc) throws IOException {
       final int globalDoc = contextDoc + this.docBase;
       if (collapseValues.advanceExact(contextDoc)) {
@@ -1422,6 +1441,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void finish() throws IOException {
       if (contexts.length == 0) {
         return;
@@ -2373,10 +2393,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void setNextReader(LeafReaderContext context) throws IOException {
       this.minMaxValues = DocValues.getNumeric(context.reader(), this.field);
     }
 
+    @Override
     public void collapse(int ord, int contextDoc, int globalDoc) throws IOException {
 
       int currentVal;
@@ -2448,10 +2470,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void setNextReader(LeafReaderContext context) throws IOException {
       this.minMaxValues = DocValues.getNumeric(context.reader(), this.field);
     }
 
+    @Override
     public void collapse(int ord, int contextDoc, int globalDoc) throws IOException {
 
       int currentMinMax;
@@ -2525,10 +2549,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void setNextReader(LeafReaderContext context) throws IOException {
       this.minMaxVals = DocValues.getNumeric(context.reader(), this.field);
     }
 
+    @Override
     public void collapse(int ord, int contextDoc, int globalDoc) throws IOException {
 
       long currentVal;
@@ -2609,10 +2635,12 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       collapseScore.setupIfNeeded(groupHeadSelector, rcontext);
     }
 
+    @Override
     public void setNextReader(LeafReaderContext context) throws IOException {
       functionValues = this.valueSource.getValues(rcontext, context);
     }
 
+    @Override
     public void collapse(int ord, int contextDoc, int globalDoc) throws IOException {
 
       float score = 0;
@@ -2910,6 +2938,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void setNextReader(LeafReaderContext context) throws IOException {
       this.minMaxVals = DocValues.getNumeric(context.reader(), this.field);
     }
@@ -2921,6 +2950,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return 0;
     }
 
+    @Override
     public void collapse(int collapseKey, int contextDoc, int globalDoc) throws IOException {
       final int currentVal = advanceAndGetCurrentVal(contextDoc);
 
@@ -2945,6 +2975,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void collapseNullGroup(int contextDoc, int globalDoc) throws IOException {
       assert NullPolicy.IGNORE.getCode() != this.nullPolicy;
 
@@ -3001,6 +3032,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void setNextReader(LeafReaderContext context) throws IOException {
       this.minMaxVals = DocValues.getNumeric(context.reader(), this.field);
     }
@@ -3012,6 +3044,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return Float.intBitsToFloat(0);
     }
 
+    @Override
     public void collapse(int collapseKey, int contextDoc, int globalDoc) throws IOException {
       final float currentVal = advanceAndGetCurrentVal(contextDoc);
 
@@ -3036,6 +3069,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void collapseNullGroup(int contextDoc, int globalDoc) throws IOException {
       assert NullPolicy.IGNORE.getCode() != this.nullPolicy;
       final float currentVal = advanceAndGetCurrentVal(contextDoc);
@@ -3107,6 +3141,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       collapseScore.setupIfNeeded(groupHeadSelector, rcontext);
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void setNextReader(LeafReaderContext context) throws IOException {
       functionValues = this.valueSource.getValues(rcontext, context);
@@ -3120,6 +3155,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return 0F;
     }
 
+    @Override
     public void collapse(int collapseKey, int contextDoc, int globalDoc) throws IOException {
 
       float score = computeScoreIfNeeded4Collapse();
@@ -3152,6 +3188,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void collapseNullGroup(int contextDoc, int globalDoc) throws IOException {
       assert NullPolicy.IGNORE.getCode() != this.nullPolicy;
 
@@ -3232,6 +3269,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       return needsScores4Collapsing ? scorer.score() : 0F;
     }
 
+    @Override
     public void collapse(int collapseKey, int contextDoc, int globalDoc) throws IOException {
       float score = computeScoreIfNeeded4Collapse();
 
@@ -3263,6 +3301,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public void collapseNullGroup(int contextDoc, int globalDoc) throws IOException {
       assert NullPolicy.IGNORE.getCode() != this.nullPolicy;
 
@@ -3409,6 +3448,7 @@ public class CollapsingQParserPlugin extends QParserPlugin {
       // Add the (collected) boosted docs to the collapsedSet
       boostedDocs.forEach(
           new IntProcedure() {
+            @Override
             public void apply(int globalDoc) {
               collapsedSet.set(globalDoc);
             }
@@ -3693,36 +3733,42 @@ public class CollapsingQParserPlugin extends QParserPlugin {
   }
 
   private static class MaxIntComp implements IntCompare {
+    @Override
     public boolean test(int i1, int i2) {
       return i1 > i2;
     }
   }
 
   private static class MinIntComp implements IntCompare {
+    @Override
     public boolean test(int i1, int i2) {
       return i1 < i2;
     }
   }
 
   private static class MaxFloatComp implements FloatCompare {
+    @Override
     public boolean test(float i1, float i2) {
       return i1 > i2;
     }
   }
 
   private static class MinFloatComp implements FloatCompare {
+    @Override
     public boolean test(float i1, float i2) {
       return i1 < i2;
     }
   }
 
   private static class MaxLongComp implements LongCompare {
+    @Override
     public boolean test(long i1, long i2) {
       return i1 > i2;
     }
   }
 
   private static class MinLongComp implements LongCompare {
+    @Override
     public boolean test(long i1, long i2) {
       return i1 < i2;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/ComplexPhraseQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ComplexPhraseQParserPlugin.java
index 0b4fe7ba651..9d8210a8c2e 100644
--- a/solr/core/src/java/org/apache/solr/search/ComplexPhraseQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ComplexPhraseQParserPlugin.java
@@ -122,6 +122,7 @@ public class ComplexPhraseQParserPlugin extends QParserPlugin {
 
       lparser =
           new ComplexPhraseQueryParser(defaultField, getReq().getSchema().getQueryAnalyzer()) {
+            @Override
             protected Query newWildcardQuery(org.apache.lucene.index.Term t) {
               try {
                 org.apache.lucene.search.Query wildcardQuery =
@@ -142,6 +143,7 @@ public class ComplexPhraseQParserPlugin extends QParserPlugin {
               return query;
             }
 
+            @Override
             protected Query newRangeQuery(
                 String field,
                 String part1,
diff --git a/solr/core/src/java/org/apache/solr/search/DocSet.java b/solr/core/src/java/org/apache/solr/search/DocSet.java
index 2b5eedd2d00..132b8d5b3a4 100644
--- a/solr/core/src/java/org/apache/solr/search/DocSet.java
+++ b/solr/core/src/java/org/apache/solr/search/DocSet.java
@@ -129,6 +129,7 @@ public abstract class DocSet implements Accountable, Cloneable /* extends Collec
    */
   public abstract void addAllTo(FixedBitSet target);
 
+  @Override
   public abstract DocSet clone();
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
index 0ea8582b136..c55bdeba82f 100644
--- a/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ExportQParserPlugin.java
@@ -42,6 +42,7 @@ public class ExportQParserPlugin extends QParserPlugin {
 
   public static final String NAME = "xport";
 
+  @Override
   public QParser createParser(
       String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest request) {
     return new ExportQParser(qstr, localParams, params, request);
@@ -54,6 +55,7 @@ public class ExportQParserPlugin extends QParserPlugin {
       super(qstr, localParams, params, request);
     }
 
+    @Override
     public Query parse() throws SyntaxError {
       try {
         return new ExportQuery(localParams, params, req);
@@ -67,17 +69,20 @@ public class ExportQParserPlugin extends QParserPlugin {
     private Query mainQuery;
     private Object id;
 
+    @Override
     public RankQuery clone() {
       ExportQuery clone = new ExportQuery();
       clone.id = id;
       return clone;
     }
 
+    @Override
     public RankQuery wrap(Query mainQuery) {
       this.mainQuery = mainQuery;
       return this;
     }
 
+    @Override
     public MergeStrategy getMergeStrategy() {
       return null;
     }
@@ -88,6 +93,7 @@ public class ExportQParserPlugin extends QParserPlugin {
       return mainQuery.createWeight(searcher, scoreMode, boost);
     }
 
+    @Override
     public Query rewrite(IndexReader reader) throws IOException {
       Query q = mainQuery.rewrite(reader);
       if (q == mainQuery) {
@@ -97,6 +103,7 @@ public class ExportQParserPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     public TopDocsCollector<ScoreDoc> getTopDocsCollector(
         int len, QueryCommand cmd, IndexSearcher searcher) throws IOException {
       int leafCount = searcher.getTopReaderContext().leaves().size();
@@ -104,10 +111,12 @@ public class ExportQParserPlugin extends QParserPlugin {
       return new ExportCollector(sets);
     }
 
+    @Override
     public int hashCode() {
       return classHash() + 31 * id.hashCode() + 31 * Objects.hash(mainQuery);
     }
 
+    @Override
     public boolean equals(Object other) {
       return sameClassAs(other) && equalsTo(getClass().cast(other));
     }
@@ -116,6 +125,7 @@ public class ExportQParserPlugin extends QParserPlugin {
       return Objects.equals(id, other.id) && Objects.equals(mainQuery, other.mainQuery);
     }
 
+    @Override
     public String toString(String s) {
       return s;
     }
@@ -168,6 +178,7 @@ public class ExportQParserPlugin extends QParserPlugin {
       return docs;
     }
 
+    @Override
     public TopDocs topDocs(int start, int howMany) {
 
       assert (sets != null);
diff --git a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
index 7568eae3bcd..f9dd2619778 100644
--- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java
@@ -180,19 +180,23 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
       this.id = id;
     }
 
+    @Override
     public boolean getCache() {
       return false;
     }
 
+    @Override
     public void setCache(boolean cache) {
       // TODO support user choice
     }
 
+    @Override
     public int getCost() {
       // 0 is the default and keeping it avoids a needless wrapper for TwoPhaseIterator matchCost.
       return 0;
     }
 
+    @Override
     public void setCost(int cost) {}
 
     @Override
@@ -200,14 +204,17 @@ public class GraphTermsQParserPlugin extends QParserPlugin {
       return this;
     }
 
+    @Override
     public int hashCode() {
       return 31 * classHash() + id.hashCode();
     }
 
+    @Override
     public boolean equals(Object other) {
       return sameClassAs(other) && id == ((GraphTermsQuery) other).id;
     }
 
+    @Override
     public GraphTermsQuery clone() {
       GraphTermsQuery clone =
           new GraphTermsQuery(this.field, this.queryTerms, this.maxDocFreq, this.id);
diff --git a/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java
index aabbeae7670..1438edeabfd 100644
--- a/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/HashQParserPlugin.java
@@ -44,6 +44,7 @@ public class HashQParserPlugin extends QParserPlugin {
 
   public static final String NAME = "hash";
 
+  @Override
   public QParser createParser(
       String query, SolrParams localParams, SolrParams params, SolrQueryRequest request) {
     return new HashQParser(query, localParams, params, request);
@@ -56,6 +57,7 @@ public class HashQParserPlugin extends QParserPlugin {
       super(query, localParams, params, request);
     }
 
+    @Override
     public Query parse() {
       int workers = localParams.getInt("workers", 0);
       if (workers < 2) {
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 bade14462c6..253d466be8d 100644
--- a/solr/core/src/java/org/apache/solr/search/PointMerger.java
+++ b/solr/core/src/java/org/apache/solr/search/PointMerger.java
@@ -202,6 +202,7 @@ public class PointMerger {
       this.currentValue = this.mval = new MutableValueInt();
     }
 
+    @Override
     public int setNextValue() throws IOException {
       if (readPos >= pos) {
         if (last != Integer.MAX_VALUE) {
@@ -264,6 +265,7 @@ public class PointMerger {
       this.currentValue = this.mval = new MutableValueLong();
     }
 
+    @Override
     public int setNextValue() throws IOException {
       if (readPos >= pos) {
         if (last != Long.MAX_VALUE) {
@@ -326,6 +328,7 @@ public class PointMerger {
       this.currentValue = this.mval = new MutableValueFloat();
     }
 
+    @Override
     public int setNextValue() throws IOException {
       if (readPos >= pos) {
         if (last != Float.MAX_VALUE) {
@@ -388,6 +391,7 @@ public class PointMerger {
       this.currentValue = this.mval = new MutableValueDouble();
     }
 
+    @Override
     public int setNextValue() throws IOException {
       if (readPos >= pos) {
         if (last != Double.MAX_VALUE) {
diff --git a/solr/core/src/java/org/apache/solr/search/ReRankCollector.java b/solr/core/src/java/org/apache/solr/search/ReRankCollector.java
index c4bb7c18b86..47d4b5fda73 100644
--- a/solr/core/src/java/org/apache/solr/search/ReRankCollector.java
+++ b/solr/core/src/java/org/apache/solr/search/ReRankCollector.java
@@ -80,6 +80,7 @@ public class ReRankCollector extends TopDocsCollector<ScoreDoc> {
     this.reRankQueryRescorer = reRankQueryRescorer;
   }
 
+  @Override
   public int getTotalHits() {
     return mainCollector.getTotalHits();
   }
@@ -94,6 +95,7 @@ public class ReRankCollector extends TopDocsCollector<ScoreDoc> {
     return this.mainCollector.scoreMode();
   }
 
+  @Override
   public TopDocs topDocs(int start, int howMany) {
 
     try {
@@ -180,6 +182,7 @@ public class ReRankCollector extends TopDocsCollector<ScoreDoc> {
       }
     }
 
+    @Override
     public int compare(ScoreDoc doc1, ScoreDoc doc2) {
       float score1 = doc1.score;
       float score2 = doc2.score;
diff --git a/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
index 925ef93bc45..803694ea5a9 100644
--- a/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
@@ -44,6 +44,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
   public static final String RERANK_WEIGHT = "reRankWeight";
   public static final double RERANK_WEIGHT_DEFAULT = 2.0d;
 
+  @Override
   public QParser createParser(
       String query, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
     return new ReRankQParser(query, localParams, params, req);
@@ -56,6 +57,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
       super(query, localParams, params, req);
     }
 
+    @Override
     public Query parse() throws SyntaxError {
       String reRankQueryString = localParams.get(RERANK_QUERY);
       if (StringUtils.isBlank(reRankQueryString)) {
@@ -98,6 +100,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
     private final Query reRankQuery;
     private final double reRankWeight;
 
+    @Override
     public int hashCode() {
       return 31 * classHash()
           + mainQuery.hashCode()
@@ -106,6 +109,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
           + reRankDocs;
     }
 
+    @Override
     public boolean equals(Object other) {
       return sameClassAs(other) && equalsTo(getClass().cast(other));
     }
@@ -135,6 +139,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
       return sb.toString();
     }
 
+    @Override
     protected Query rewrite(Query rewrittenMainQuery) throws IOException {
       return new ReRankQuery(reRankQuery, reRankDocs, reRankWeight).wrap(rewrittenMainQuery);
     }
diff --git a/solr/core/src/java/org/apache/solr/search/ReRankWeight.java b/solr/core/src/java/org/apache/solr/search/ReRankWeight.java
index a1d5329de7d..1d74b6e8bd0 100644
--- a/solr/core/src/java/org/apache/solr/search/ReRankWeight.java
+++ b/solr/core/src/java/org/apache/solr/search/ReRankWeight.java
@@ -39,6 +39,7 @@ public class ReRankWeight extends FilterWeight {
     this.reRankQueryRescorer = reRankQueryRescorer;
   }
 
+  @Override
   public Explanation explain(LeafReaderContext context, int doc) throws IOException {
     final Explanation mainExplain = in.explain(context, doc);
     return reRankQueryRescorer.explain(searcher, mainExplain, context.docBase + doc);
diff --git a/solr/core/src/java/org/apache/solr/search/SolrCache.java b/solr/core/src/java/org/apache/solr/search/SolrCache.java
index 95b249fcd03..870d18ea2c9 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrCache.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrCache.java
@@ -143,6 +143,7 @@ public interface SolrCache<K, V> extends SolrInfoBean {
   // init and have the cache implementation save it.
 
   /** Frees any non-memory resources */
+  @Override
   default void close() throws IOException {
     SolrInfoBean.super.close();
   }
diff --git a/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
index 503c5fc21b0..296f67ce411 100644
--- a/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/TermsQParserPlugin.java
@@ -200,6 +200,7 @@ public class TermsQParserPlugin extends QParserPlugin {
       this.fieldName = field;
     }
 
+    @Override
     public Weight createWeight(IndexSearcher searcher, final ScoreMode scoreMode, float boost)
         throws IOException {
       if (!(searcher instanceof SolrIndexSearcher)) {
@@ -225,6 +226,7 @@ public class TermsQParserPlugin extends QParserPlugin {
       }
 
       return new ConstantScoreWeight(this, boost) {
+        @Override
         public Scorer scorer(LeafReaderContext context) throws IOException {
           if (!matchesAtLeastOneTerm) {
             return null;
@@ -241,6 +243,7 @@ public class TermsQParserPlugin extends QParserPlugin {
               this.score(),
               scoreMode,
               new TwoPhaseIterator(segmentDocValues) {
+                @Override
                 public boolean matches() throws IOException {
                   topLevelDocValues.advanceExact(docBase + approximation.docID());
                   for (long ord = topLevelDocValues.nextOrd();
@@ -254,12 +257,14 @@ public class TermsQParserPlugin extends QParserPlugin {
                   return false;
                 }
 
+                @Override
                 public float matchCost() {
                   return 10.0F;
                 }
               });
         }
 
+        @Override
         public boolean isCacheable(LeafReaderContext ctx) {
           return DocValues.isCacheable(ctx, new String[] {fieldName});
         }
diff --git a/solr/core/src/java/org/apache/solr/search/TextLogisticRegressionQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/TextLogisticRegressionQParserPlugin.java
index 737ebdd4c08..b72fade0065 100644
--- a/solr/core/src/java/org/apache/solr/search/TextLogisticRegressionQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/TextLogisticRegressionQParserPlugin.java
@@ -62,6 +62,7 @@ public class TextLogisticRegressionQParserPlugin extends QParserPlugin {
       super(qstr, localParams, params, req);
     }
 
+    @Override
     public Query parse() {
 
       String fs = params.get("feature");
@@ -108,6 +109,7 @@ public class TextLogisticRegressionQParserPlugin extends QParserPlugin {
       this.trainingParams = trainingParams;
     }
 
+    @Override
     public DelegatingCollector getAnalyticsCollector(
         ResponseBuilder rbsp, IndexSearcher indexSearcher) {
       return new TextLogisticRegressionCollector(rbsp, indexSearcher, trainingParams);
@@ -141,12 +143,14 @@ public class TextLogisticRegressionQParserPlugin extends QParserPlugin {
       docsSet = new SparseFixedBitSet(searcher.getIndexReader().numDocs());
     }
 
+    @Override
     public void doSetNextReader(LeafReaderContext context) throws IOException {
       super.doSetNextReader(context);
       leafReader = context.reader();
       leafOutcomeValue = leafReader.getNumericDocValues(trainingParams.outcome);
     }
 
+    @Override
     public void collect(int doc) throws IOException {
       int outcome;
       if (leafOutcomeValue.advanceExact(doc)) {
@@ -162,6 +166,7 @@ public class TextLogisticRegressionQParserPlugin extends QParserPlugin {
       docsSet.set(context.docBase + doc);
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void finish() throws IOException {
 
diff --git a/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java b/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
index 56c7a523a9c..ea7b55a2e75 100644
--- a/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
+++ b/solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
@@ -87,6 +87,7 @@ public class TopLevelJoinQuery extends JoinQuery {
 
       final boolean toMultivalued = toSearcher.getSchema().getFieldOrNull(toField).multiValued();
       return new ConstantScoreWeight(this, boost) {
+        @Override
         public Scorer scorer(LeafReaderContext context) throws IOException {
           if (toBitsetBounds.lower == BitsetBounds.NO_MATCHES) {
             return null;
@@ -106,6 +107,7 @@ public class TopLevelJoinQuery extends JoinQuery {
               this.score(),
               scoreMode,
               new TwoPhaseIterator(toApproximation) {
+                @Override
                 public boolean matches() throws IOException {
                   final boolean hasDoc =
                       topLevelToDocValues.advanceExact(docBase + approximation.docID());
@@ -121,12 +123,14 @@ public class TopLevelJoinQuery extends JoinQuery {
                   return false;
                 }
 
+                @Override
                 public float matchCost() {
                   return 10.0F;
                 }
               });
         }
 
+        @Override
         public boolean isCacheable(LeafReaderContext ctx) {
           return false;
         }
@@ -261,6 +265,7 @@ public class TopLevelJoinQuery extends JoinQuery {
       super(joinField, joinField, null, subQuery);
     }
 
+    @Override
     protected BitsetBounds convertFromOrdinalsIntoToField(
         LongBitSet fromOrdBitSet,
         SortedSetDocValues fromDocValues,
diff --git a/solr/core/src/java/org/apache/solr/search/XmlQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/XmlQParserPlugin.java
index 4de6953a7a3..285263405d6 100755
--- a/solr/core/src/java/org/apache/solr/search/XmlQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/XmlQParserPlugin.java
@@ -82,6 +82,7 @@ public class XmlQParserPlugin extends QParserPlugin {
       super(qstr, localParams, params, req);
     }
 
+    @Override
     public Query parse() throws SyntaxError {
       final String qstr = getString();
       if (qstr == null || qstr.isEmpty()) {
@@ -101,6 +102,7 @@ public class XmlQParserPlugin extends QParserPlugin {
     }
   }
 
+  @Override
   public QParser createParser(
       String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
     return new XmlQParser(qstr, localParams, params, req);
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 5bb55abe27d..f0f867fadfd 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
@@ -646,12 +646,14 @@ abstract class FacetFieldProcessor extends FacetProcessor<FacetField> {
         final Comparator<Slot> comparator =
             null != indexOrderAcc
                 ? (new Comparator<Slot>() {
+                  @Override
                   public int compare(Slot x, Slot y) {
                     final int cmp = resortMul * countAcc.compare(x.slot, y.slot);
                     return cmp != 0 ? cmp : indexOrderAcc.compare(x.slot, y.slot);
                   }
                 })
                 : (new Comparator<Slot>() {
+                  @Override
                   public int compare(Slot x, Slot y) {
                     final int cmp = resortMul * countAcc.compare(x.slot, y.slot);
                     return cmp != 0 ? cmp : Integer.compare(x.slot, y.slot);
@@ -665,6 +667,7 @@ abstract class FacetFieldProcessor extends FacetProcessor<FacetField> {
         Arrays.sort(
             slots,
             new Comparator<Slot>() {
+              @Override
               public int compare(Slot x, Slot y) {
                 return resortMul * indexOrderAcc.compare(x.slot, y.slot);
               }
@@ -714,12 +717,14 @@ abstract class FacetFieldProcessor extends FacetProcessor<FacetField> {
     final Comparator<Slot> comparator =
         null != indexOrderAcc
             ? (new Comparator<Slot>() {
+              @Override
               public int compare(Slot x, Slot y) {
                 final int cmp = resortMul * acc.compare(x.resortSlotNum, y.resortSlotNum);
                 return cmp != 0 ? cmp : indexOrderAcc.compare(x.slot, y.slot);
               }
             })
             : (new Comparator<Slot>() {
+              @Override
               public int compare(Slot x, Slot y) {
                 final int cmp = resortMul * acc.compare(x.resortSlotNum, y.resortSlotNum);
                 return cmp != 0 ? cmp : Integer.compare(x.slot, y.slot);
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetHeatmap.java b/solr/core/src/java/org/apache/solr/search/facet/FacetHeatmap.java
index d659562b862..4a13ddc51af 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetHeatmap.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetHeatmap.java
@@ -109,6 +109,7 @@ public class FacetHeatmap extends FacetRequest {
       super(parent, key);
     }
 
+    @Override
     public FacetHeatmap parse(Object argsObj) {
       assert facet == null;
 
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetParser.java b/solr/core/src/java/org/apache/solr/search/facet/FacetParser.java
index 3c7edfa826c..6ef55cb4be1 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetParser.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetParser.java
@@ -538,6 +538,7 @@ abstract class FacetParser<T extends FacetRequest> {
       facet = new FacetField();
     }
 
+    @Override
     public FacetField parse(Object arg) throws SyntaxError {
       parseCommonParams(arg);
       if (arg instanceof String) {
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetRangeParser.java b/solr/core/src/java/org/apache/solr/search/facet/FacetRangeParser.java
index a0d3675287c..8e8594e7843 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetRangeParser.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetRangeParser.java
@@ -28,6 +28,7 @@ class FacetRangeParser extends FacetParser<FacetRange> {
     facet = new FacetRange();
   }
 
+  @Override
   public FacetRange parse(Object arg) throws SyntaxError {
     parseCommonParams(arg);
 
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java b/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
index f53b2993396..2b56d8596cc 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetRequest.java
@@ -60,6 +60,7 @@ public abstract class FacetRequest {
       this.sortDirection = sortDirection;
     }
 
+    @Override
     public boolean equals(Object other) {
       if (other instanceof FacetSort) {
         final FacetSort that = (FacetSort) other;
@@ -69,10 +70,12 @@ public abstract class FacetRequest {
       return false;
     }
 
+    @Override
     public int hashCode() {
       return Objects.hash(sortVariable, sortDirection);
     }
 
+    @Override
     public String toString() {
       return sortVariable + " " + sortDirection;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java b/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java
index cf2b4433b71..1a63f9fa7bf 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java
@@ -145,6 +145,7 @@ public class PercentileAgg extends SimpleAggValueSource {
       digests = new AVLTreeDigest[numSlots];
     }
 
+    @Override
     public void collect(int doc, int slotNum, IntFunction<SlotContext> slotContext)
         throws IOException {
       if (!values.exists(doc)) return;
diff --git a/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java b/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java
index 2a87adcc8fe..edcc9ae6df7 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java
@@ -138,6 +138,7 @@ public class RelatednessAgg extends AggValueSource {
     throw new UnsupportedOperationException("NOT IMPLEMENTED " + name + " " + this);
   }
 
+  @Override
   public SlotAcc createSlotAcc(FacetContext fcontext, long numDocs, int numSlots)
       throws IOException {
     // TODO: Ideally this is where we should check fgQ/bgQ for 'null' and apply defaults...
@@ -259,6 +260,7 @@ public class RelatednessAgg extends AggValueSource {
       }
     }
 
+    @Override
     public int compare(int slotA, int slotB) {
       int r = Double.compare(getRelatedness(slotA), getRelatedness(slotB));
       if (0 == r) {
@@ -440,6 +442,7 @@ public class RelatednessAgg extends AggValueSource {
       return docs.size();
     }
 
+    @Override
     public int compare(int slotA, int slotB) {
       final BucketData a = slotvalues[slotA];
       final BucketData b = slotvalues[slotB];
diff --git a/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java b/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java
index 753eeb174ec..11d6489f573 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/SlotAcc.java
@@ -409,6 +409,7 @@ public abstract class SlotAcc implements Closeable {
       super(values, fcontext, numSlots);
     }
 
+    @Override
     public void collect(int doc, int slotNum, IntFunction<SlotContext> slotContext)
         throws IOException {
       // todo: worth trying to share this value across multiple stats that need it?
@@ -837,6 +838,7 @@ public abstract class SlotAcc implements Closeable {
 
     public abstract void incrementCount(int slot, long count);
 
+    @Override
     public abstract long getCount(int slot);
   }
 
diff --git a/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java b/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
index f7147152b20..f7fdc14ba0c 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
@@ -77,6 +77,7 @@ public class SumAgg extends SimpleAggValueSource {
       val += ((Number) facetResult).doubleValue();
     }
 
+    @Override
     protected double getDouble() {
       return val;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java b/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java
index fc36229cf24..a25043a2214 100644
--- a/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/CollapseScoreFunction.java
@@ -25,10 +25,12 @@ import org.apache.solr.search.CollapsingQParserPlugin.CollapseScore;
 
 public class CollapseScoreFunction extends ValueSource {
 
+  @Override
   public String description() {
     return "CollapseScoreFunction";
   }
 
+  @Override
   public boolean equals(Object o) {
     if (o instanceof CollapseScoreFunction) {
       return true;
@@ -37,10 +39,12 @@ public class CollapseScoreFunction extends ValueSource {
     }
   }
 
+  @Override
   public int hashCode() {
     return 1213241257;
   }
 
+  @Override
   public FunctionValues getValues(Map<Object, Object> context, LeafReaderContext readerContext)
       throws IOException {
     return new CollapseScoreFunctionValues(context);
@@ -55,18 +59,22 @@ public class CollapseScoreFunction extends ValueSource {
       assert null != this.cscore;
     }
 
+    @Override
     public int intVal(int doc) {
       return 0;
     }
 
+    @Override
     public String toString(int doc) {
       return Float.toString(cscore.score);
     }
 
+    @Override
     public float floatVal(int doc) {
       return cscore.score;
     }
 
+    @Override
     public double doubleVal(int doc) {
       return 0.0D;
     }
diff --git a/solr/core/src/java/org/apache/solr/search/function/ConcatStringFunction.java b/solr/core/src/java/org/apache/solr/search/function/ConcatStringFunction.java
index 78dd8449eed..08671c53b7a 100644
--- a/solr/core/src/java/org/apache/solr/search/function/ConcatStringFunction.java
+++ b/solr/core/src/java/org/apache/solr/search/function/ConcatStringFunction.java
@@ -31,6 +31,7 @@ public class ConcatStringFunction extends MultiStringFunction {
     super(sources);
   }
 
+  @Override
   protected String name() {
     return NAME;
   }
diff --git a/solr/core/src/java/org/apache/solr/search/join/GraphEdgeCollector.java b/solr/core/src/java/org/apache/solr/search/join/GraphEdgeCollector.java
index 9a5d8c73c60..e745a65e543 100644
--- a/solr/core/src/java/org/apache/solr/search/join/GraphEdgeCollector.java
+++ b/solr/core/src/java/org/apache/solr/search/join/GraphEdgeCollector.java
@@ -78,6 +78,7 @@ abstract class GraphEdgeCollector extends SimpleCollector implements Collector {
     return numHits;
   }
 
+  @Override
   public void collect(int segDoc) throws IOException {
     int doc = segDoc + base;
     if (skipSet != null && skipSet.exists(doc)) {
diff --git a/solr/core/src/java/org/apache/solr/search/join/MultiValueTermOrdinalCollector.java b/solr/core/src/java/org/apache/solr/search/join/MultiValueTermOrdinalCollector.java
index 26fd8cb0093..35caf7d8ed0 100644
--- a/solr/core/src/java/org/apache/solr/search/join/MultiValueTermOrdinalCollector.java
+++ b/solr/core/src/java/org/apache/solr/search/join/MultiValueTermOrdinalCollector.java
@@ -40,6 +40,7 @@ public class MultiValueTermOrdinalCollector extends SimpleCollector {
     this.topLevelDocValuesBitSet = topLevelDocValuesBitSet;
   }
 
+  @Override
   public ScoreMode scoreMode() {
     return ScoreMode.COMPLETE_NO_SCORES;
   }
diff --git a/solr/core/src/java/org/apache/solr/search/mlt/CloudMLTQParser.java b/solr/core/src/java/org/apache/solr/search/mlt/CloudMLTQParser.java
index e7dbb77766c..d1316564c7d 100644
--- a/solr/core/src/java/org/apache/solr/search/mlt/CloudMLTQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/mlt/CloudMLTQParser.java
@@ -59,6 +59,7 @@ public class CloudMLTQParser extends QParser {
     super(qstr, localParams, params, req);
   }
 
+  @Override
   public Query parse() {
     String id = localParams.get(QueryParsing.V);
     // Do a Real Time Get for the document
diff --git a/solr/core/src/java/org/apache/solr/search/mlt/SimpleMLTQParser.java b/solr/core/src/java/org/apache/solr/search/mlt/SimpleMLTQParser.java
index 0265831a0ef..c9aba360dce 100644
--- a/solr/core/src/java/org/apache/solr/search/mlt/SimpleMLTQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/mlt/SimpleMLTQParser.java
@@ -52,6 +52,7 @@ public class SimpleMLTQParser extends QParser {
     super(qstr, localParams, params, req);
   }
 
+  @Override
   public Query parse() {
 
     String defaultField = req.getSchema().getUniqueKeyField().getName();
diff --git a/solr/core/src/java/org/apache/solr/search/stats/CollectionStats.java b/solr/core/src/java/org/apache/solr/search/stats/CollectionStats.java
index bf1539500df..43e8a3548e6 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/CollectionStats.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/CollectionStats.java
@@ -61,6 +61,7 @@ public class CollectionStats {
     return new CollectionStatistics(field, maxDoc, docCount, sumTotalTermFreq, sumDocFreq);
   }
 
+  @Override
   public String toString() {
     return StatsUtil.colStatsToString(this);
   }
diff --git a/solr/core/src/java/org/apache/solr/search/stats/ExactSharedStatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/ExactSharedStatsCache.java
index e81b6d3a1d8..850246c8c56 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/ExactSharedStatsCache.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/ExactSharedStatsCache.java
@@ -82,19 +82,23 @@ public class ExactSharedStatsCache extends ExactStatsCache {
     }
   }
 
+  @Override
   protected Map<String, CollectionStats> getPerShardColStats(ResponseBuilder rb, String shard) {
     return perShardColStats.get(shard);
   }
 
+  @Override
   protected TermStats getPerShardTermStats(SolrQueryRequest req, String t, String shard) {
     Map<String, TermStats> cache = perShardTermStats.get(shard);
     return (cache != null) ? cache.get(t) : null; // Term doesn't exist in shard;
   }
 
+  @Override
   protected void addToGlobalColStats(SolrQueryRequest req, Entry<String, CollectionStats> e) {
     currentGlobalColStats.put(e.getKey(), e.getValue());
   }
 
+  @Override
   protected void addToGlobalTermStats(SolrQueryRequest req, Entry<String, TermStats> e) {
     currentGlobalTermStats.put(e.getKey(), e.getValue());
   }
diff --git a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
index 92924d06c69..0d3f746acb0 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java
@@ -383,6 +383,7 @@ public class ExactStatsCache extends StatsCache {
       this.colStatsCache = colStatsCache;
     }
 
+    @Override
     public TermStatistics termStatistics(
         SolrIndexSearcher localSearcher, Term term, int docFreq, long totalTermFreq)
         throws IOException {
diff --git a/solr/core/src/java/org/apache/solr/search/stats/StatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/StatsCache.java
index efd9f773d34..dc548c3e9d9 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/StatsCache.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/StatsCache.java
@@ -97,6 +97,7 @@ public abstract class StatsCache implements PluginInfoInitialized {
       consumer.accept("missingGlobalFieldStats", missingGlobalFieldStats.longValue());
     }
 
+    @Override
     public String toString() {
       Map<String, Object> map = new HashMap<>();
       getSnapshot(map::put);
diff --git a/solr/core/src/java/org/apache/solr/search/stats/TermStats.java b/solr/core/src/java/org/apache/solr/search/stats/TermStats.java
index 696862ca309..390d1b7e882 100644
--- a/solr/core/src/java/org/apache/solr/search/stats/TermStats.java
+++ b/solr/core/src/java/org/apache/solr/search/stats/TermStats.java
@@ -64,6 +64,7 @@ public class TermStats {
     return new TermStatistics(t.bytes(), docFreq, totalTermFreq);
   }
 
+  @Override
   public String toString() {
     return StatsUtil.termStatsToString(this, false);
   }
diff --git a/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java b/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
index d7c20b4c5b9..cc9ca3220b9 100644
--- a/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
+++ b/solr/core/src/java/org/apache/solr/security/Sha256AuthenticationProvider.java
@@ -93,6 +93,7 @@ public class Sha256AuthenticationProvider
     }
   }
 
+  @Override
   public boolean authenticate(String username, String password) {
     String cred = credentials.get(username);
     if (cred == null || cred.isEmpty()) return false;
diff --git a/solr/core/src/java/org/apache/solr/servlet/ServletInputStreamWrapper.java b/solr/core/src/java/org/apache/solr/servlet/ServletInputStreamWrapper.java
index b9ba801cb37..e1719a7404a 100644
--- a/solr/core/src/java/org/apache/solr/servlet/ServletInputStreamWrapper.java
+++ b/solr/core/src/java/org/apache/solr/servlet/ServletInputStreamWrapper.java
@@ -37,66 +37,82 @@ public class ServletInputStreamWrapper extends ServletInputStream {
     this.stream = stream;
   }
 
+  @Override
   public int hashCode() {
     return stream.hashCode();
   }
 
+  @Override
   public boolean equals(Object obj) {
     return stream.equals(obj);
   }
 
+  @Override
   public int available() throws IOException {
     return stream.available();
   }
 
+  @Override
   public void close() throws IOException {
     stream.close();
   }
 
+  @Override
   public boolean isFinished() {
     return stream.isFinished();
   }
 
+  @Override
   public boolean isReady() {
     return stream.isReady();
   }
 
+  @Override
   public int read() throws IOException {
     return stream.read();
   }
 
+  @Override
   public int read(byte[] b) throws IOException {
     return stream.read(b);
   }
 
+  @Override
   public int read(byte[] b, int off, int len) throws IOException {
     return stream.read(b, off, len);
   }
 
+  @Override
   public void mark(int readlimit) {
     stream.mark(readlimit);
   }
 
+  @Override
   public boolean markSupported() {
     return stream.markSupported();
   }
 
+  @Override
   public int readLine(byte[] b, int off, int len) throws IOException {
     return stream.readLine(b, off, len);
   }
 
+  @Override
   public void reset() throws IOException {
     stream.reset();
   }
 
+  @Override
   public void setReadListener(ReadListener arg0) {
     stream.setReadListener(arg0);
   }
 
+  @Override
   public long skip(long n) throws IOException {
     return stream.skip(n);
   }
 
+  @Override
   public String toString() {
     return stream.toString();
   }
diff --git a/solr/core/src/java/org/apache/solr/servlet/ServletOutputStreamWrapper.java b/solr/core/src/java/org/apache/solr/servlet/ServletOutputStreamWrapper.java
index 9a9da669c8d..b8794066f8c 100644
--- a/solr/core/src/java/org/apache/solr/servlet/ServletOutputStreamWrapper.java
+++ b/solr/core/src/java/org/apache/solr/servlet/ServletOutputStreamWrapper.java
@@ -37,102 +37,127 @@ public class ServletOutputStreamWrapper extends ServletOutputStream {
     this.stream = stream;
   }
 
+  @Override
   public int hashCode() {
     return stream.hashCode();
   }
 
+  @Override
   public boolean equals(Object obj) {
     return stream.equals(obj);
   }
 
+  @Override
   public void flush() throws IOException {
     stream.flush();
   }
 
+  @Override
   public void close() throws IOException {
     stream.close();
   }
 
+  @Override
   public boolean isReady() {
     return stream.isReady();
   }
 
+  @Override
   public void print(boolean arg0) throws IOException {
     stream.print(arg0);
   }
 
+  @Override
   public void print(char c) throws IOException {
     stream.print(c);
   }
 
+  @Override
   public void print(double d) throws IOException {
     stream.print(d);
   }
 
+  @Override
   public void print(float f) throws IOException {
     stream.print(f);
   }
 
+  @Override
   public void print(int i) throws IOException {
     stream.print(i);
   }
 
+  @Override
   public void print(long l) throws IOException {
     stream.print(l);
   }
 
+  @Override
   public void print(String arg0) throws IOException {
     stream.print(arg0);
   }
 
+  @Override
   public void println() throws IOException {
     stream.println();
   }
 
+  @Override
   public void println(boolean b) throws IOException {
     stream.println(b);
   }
 
+  @Override
   public void println(char c) throws IOException {
     stream.println(c);
   }
 
+  @Override
   public void println(double d) throws IOException {
     stream.println(d);
   }
 
+  @Override
   public void println(float f) throws IOException {
     stream.println(f);
   }
 
+  @Override
   public void println(int i) throws IOException {
     stream.println(i);
   }
 
+  @Override
   public void println(long l) throws IOException {
     stream.println(l);
   }
 
+  @Override
   public void println(String s) throws IOException {
     stream.println(s);
   }
 
+  @Override
   public void setWriteListener(WriteListener arg0) {
     stream.setWriteListener(arg0);
   }
 
+  @Override
   public void write(int b) throws IOException {
     stream.write(b);
   }
 
+  @Override
   public void write(byte[] b) throws IOException {
     stream.write(b);
   }
 
+  @Override
   public void write(byte[] b, int off, int len) throws IOException {
     stream.write(b, off, len);
   }
 
+  @Override
   public String toString() {
     return stream.toString();
   }
diff --git a/solr/core/src/java/org/apache/solr/uninverting/FieldCache.java b/solr/core/src/java/org/apache/solr/uninverting/FieldCache.java
index fc64f880012..ef573df1bae 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/FieldCache.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/FieldCache.java
@@ -81,6 +81,7 @@ public interface FieldCache {
    * <p>This abstraction can be cleaned up when Parser.termsEnum is removed.
    */
   public abstract class PointParser implements Parser {
+    @Override
     public final TermsEnum termsEnum(Terms terms) throws IOException {
       throw new UnsupportedOperationException("makes no sense for parsing points");
     }
diff --git a/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java b/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
index 91d549ef8a9..717b67e60e1 100644
--- a/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
+++ b/solr/core/src/java/org/apache/solr/uninverting/FieldCacheImpl.java
@@ -913,10 +913,12 @@ public class FieldCacheImpl implements FieldCache {
     }
   }
 
+  @Override
   public SortedDocValues getTermsIndex(LeafReader reader, String field) throws IOException {
     return getTermsIndex(reader, field, PackedInts.FAST);
   }
 
+  @Override
   public SortedDocValues getTermsIndex(
       LeafReader reader, String field, float acceptableOverheadRatio) throws IOException {
     SortedDocValues valuesIn = reader.getSortedDocValues(field);
@@ -1125,10 +1127,12 @@ public class FieldCacheImpl implements FieldCache {
 
   // TODO: this if DocTermsIndex was already created, we
   // should share it...
+  @Override
   public BinaryDocValues getTerms(LeafReader reader, String field) throws IOException {
     return getTerms(reader, field, PackedInts.FAST);
   }
 
+  @Override
   public BinaryDocValues getTerms(LeafReader reader, String field, float acceptableOverheadRatio)
       throws IOException {
     BinaryDocValues valuesIn = reader.getBinaryDocValues(field);
@@ -1253,6 +1257,7 @@ public class FieldCacheImpl implements FieldCache {
 
   // TODO: this if DocTermsIndex was already created, we
   // should share it...
+  @Override
   public SortedSetDocValues getDocTermOrds(LeafReader reader, String field, BytesRef prefix)
       throws IOException {
     // not a general purpose filtering mechanism...
diff --git a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
index 4a8efea33fd..19b8e480265 100644
--- a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
+++ b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
@@ -267,6 +267,7 @@ public final class DefaultSolrCoreState extends SolrCoreState
         core.getCodec());
   }
 
+  @Override
   public Sort getMergePolicySort() throws IOException {
     lock(iwLock.readLock());
     try {
diff --git a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
index 17cbda302e1..cb5690e06df 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
@@ -96,6 +96,7 @@ public class SolrCmdDistributor implements Closeable {
     }
   }
 
+  @Override
   public void close() {
     clients.shutdown();
   }
@@ -431,6 +432,7 @@ public class SolrCmdDistributor implements Closeable {
       return isRetry && retries < node.getMaxRetries();
     }
 
+    @Override
     public String toString() {
       StringBuilder sb = new StringBuilder();
       sb.append("SolrCmdDistributor$Req: cmd=").append(cmd.toString());
@@ -507,6 +509,7 @@ public class SolrCmdDistributor implements Closeable {
      */
     public Req req;
 
+    @Override
     public String toString() {
       StringBuilder sb = new StringBuilder();
       sb.append("SolrCmdDistributor$Error: statusCode=").append(statusCode);
@@ -557,10 +560,12 @@ public class SolrCmdDistributor implements Closeable {
       this.maxRetries = maxRetries;
     }
 
+    @Override
     public String getCollection() {
       return collection;
     }
 
+    @Override
     public String getShardId() {
       return shardId;
     }
diff --git a/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java b/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
index d19fda8c488..9d55511264a 100644
--- a/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
+++ b/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
@@ -159,6 +159,7 @@ class ErrorReportingConcurrentUpdateSolrClient extends ConcurrentUpdateHttp2Solr
       this.errors = errors;
     }
 
+    @Override
     public ErrorReportingConcurrentUpdateSolrClient build() {
       return new ErrorReportingConcurrentUpdateSolrClient(this);
     }
diff --git a/solr/core/src/java/org/apache/solr/update/TimedVersionBucket.java b/solr/core/src/java/org/apache/solr/update/TimedVersionBucket.java
index 2545ffbfd1c..abd530d85e6 100644
--- a/solr/core/src/java/org/apache/solr/update/TimedVersionBucket.java
+++ b/solr/core/src/java/org/apache/solr/update/TimedVersionBucket.java
@@ -51,14 +51,17 @@ public class TimedVersionBucket extends VersionBucket {
     }
   }
 
+  @Override
   public void unlock() {
     lock.unlock();
   }
 
+  @Override
   public void signalAll() {
     condition.signalAll();
   }
 
+  @Override
   public void awaitNanos(long nanosTimeout) {
     try {
       if (nanosTimeout > 0) {
diff --git a/solr/core/src/java/org/apache/solr/update/TransactionLog.java b/solr/core/src/java/org/apache/solr/update/TransactionLog.java
index 60fb32dc70e..55678912468 100644
--- a/solr/core/src/java/org/apache/solr/update/TransactionLog.java
+++ b/solr/core/src/java/org/apache/solr/update/TransactionLog.java
@@ -594,6 +594,7 @@ public class TransactionLog implements Closeable {
     }
   }
 
+  @Override
   public void close() {
     try {
       if (debug) {
@@ -859,6 +860,7 @@ public class TransactionLog implements Closeable {
      * @return The log record, or null if EOF
      * @throws IOException If there is a low-level I/O error.
      */
+    @Override
     public Object next() throws IOException {
       if (prevPos <= 0) return null;
 
@@ -899,10 +901,12 @@ public class TransactionLog implements Closeable {
     }
 
     /* returns the position in the log file of the last record returned by next() */
+    @Override
     public long position() {
       return prevPos + 4; // skip the length
     }
 
+    @Override
     public void close() {
       decref();
     }
diff --git a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
index f55a194df4e..38b17cc442f 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
@@ -284,6 +284,7 @@ public class UpdateShardHandler implements SolrInfoBean {
     return recoveryExecutor;
   }
 
+  @Override
   public void close() {
     try {
       // do not interrupt, do not interrupt
diff --git a/solr/core/src/java/org/apache/solr/update/processor/AllValuesOrNoneFieldMutatingUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/AllValuesOrNoneFieldMutatingUpdateProcessor.java
index 74956073eaa..fb4a9de1d8a 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/AllValuesOrNoneFieldMutatingUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/AllValuesOrNoneFieldMutatingUpdateProcessor.java
@@ -73,6 +73,7 @@ public abstract class AllValuesOrNoneFieldMutatingUpdateProcessor
    */
   protected abstract Object mutateValue(final Object srcVal);
 
+  @Override
   protected final SolrInputField mutate(final SolrInputField srcField) {
     Collection<Object> vals = srcField.getValues();
     if (vals == null || vals.isEmpty()) return srcField;
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
index d3ee6b0a999..1a796fd9bd6 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
@@ -1379,6 +1379,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
       this.achievedRf = Math.min(this.achievedRf, rf);
     }
 
+    @Override
     public String toString() {
       StringBuilder sb =
           new StringBuilder("RollupRequestReplicationTracker")
@@ -1424,6 +1425,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
       }
     }
 
+    @Override
     public String toString() {
       StringBuilder sb = new StringBuilder("LeaderRequestReplicationTracker");
       sb.append(", achievedRf=").append(getAchievedRf()).append(" for shard ").append(myShardId);
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
index b2777988c6d..fbe89388192 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
@@ -1245,6 +1245,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
   }
 
   // TODO: optionally fail if n replicas are not reached...
+  @Override
   protected void doDistribFinish() {
     clusterState = zkController.getClusterState();
 
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
index 6a8ca31f856..d7a2a70c666 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
@@ -241,6 +241,7 @@ public final class DocExpirationUpdateProcessorFactory extends UpdateRequestProc
             1,
             new SolrNamedThreadFactory("autoExpireDocs"),
             new RejectedExecutionHandler() {
+              @Override
               public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
                 log.warn("Skipping execution of '{}' using '{}'", r, e);
               }
@@ -248,6 +249,7 @@ public final class DocExpirationUpdateProcessorFactory extends UpdateRequestProc
 
     core.addCloseHook(
         new CloseHook() {
+          @Override
           public void postClose(SolrCore core) {
             // update handler is gone, terminate anything that's left.
 
@@ -257,6 +259,7 @@ public final class DocExpirationUpdateProcessorFactory extends UpdateRequestProc
             }
           }
 
+          @Override
           public void preClose(SolrCore core) {
             log.info("Triggering Graceful close of DocExpiration Executor");
             executor.shutdown();
@@ -358,6 +361,7 @@ public final class DocExpirationUpdateProcessorFactory extends UpdateRequestProc
       this.expireField = factory.expireField;
     }
 
+    @Override
     public void run() {
       // setup the request context early so the logging (including any from
       // shouldWeDoPeriodicDelete() ) includes the core context info
diff --git a/solr/core/src/java/org/apache/solr/update/processor/NestedUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/NestedUpdateProcessorFactory.java
index b81702320af..243890b80fb 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/NestedUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/NestedUpdateProcessorFactory.java
@@ -37,6 +37,7 @@ import org.apache.solr.update.AddUpdateCommand;
  */
 public class NestedUpdateProcessorFactory extends UpdateRequestProcessorFactory {
 
+  @Override
   public UpdateRequestProcessor getInstance(
       SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next) {
     boolean storeParent = shouldStoreDocParent(req.getSchema());
diff --git a/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
index dfd4f6803a3..16d7963ef1a 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java
@@ -61,6 +61,7 @@ public class UUIDUpdateProcessorFactory extends UpdateRequestProcessorFactory {
 
   protected String fieldName = null;
 
+  @Override
   public void init(NamedList<?> args) {
 
     Object obj = args.remove(FIELD_PARAM);
@@ -69,6 +70,7 @@ public class UUIDUpdateProcessorFactory extends UpdateRequestProcessorFactory {
     }
   }
 
+  @Override
   public UpdateRequestProcessor getInstance(
       SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next) {
     String fieldName = this.fieldName;
diff --git a/solr/core/src/java/org/apache/solr/util/PackageTool.java b/solr/core/src/java/org/apache/solr/util/PackageTool.java
index 1254e3e0db0..c045ffb5cd4 100644
--- a/solr/core/src/java/org/apache/solr/util/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/util/PackageTool.java
@@ -310,6 +310,7 @@ public class PackageTool extends SolrCLI.ToolBase {
     return new Pair<>(packageName, version);
   }
 
+  @Override
   public Option[] getOptions() {
     return new Option[] {
       Option.builder("solrUrl")
diff --git a/solr/core/src/java/org/apache/solr/util/RTimer.java b/solr/core/src/java/org/apache/solr/util/RTimer.java
index e08161b503d..e4a46bffb71 100644
--- a/solr/core/src/java/org/apache/solr/util/RTimer.java
+++ b/solr/core/src/java/org/apache/solr/util/RTimer.java
@@ -45,10 +45,12 @@ public class RTimer {
   private static class NanoTimeTimerImpl implements TimerImpl {
     private long start;
 
+    @Override
     public void start() {
       start = System.nanoTime();
     }
 
+    @Override
     public double elapsed() {
       return TimeUnit.MILLISECONDS.convert(System.nanoTime() - start, TimeUnit.NANOSECONDS);
     }
diff --git a/solr/core/src/java/org/apache/solr/util/SolrCLI.java b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
index c4a29717c66..c7ad6f92286 100755
--- a/solr/core/src/java/org/apache/solr/util/SolrCLI.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
@@ -161,6 +161,7 @@ public class SolrCLI implements CLIO {
       stdout.println(msg);
     }
 
+    @Override
     public int runTool(CommandLine cli) throws Exception {
       verbose = cli.hasOption(OPTION_VERBOSE.getOpt());
 
@@ -195,10 +196,12 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return cloudOptions;
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = cli.getOptionValue(OPTION_ZKHOST.getOpt(), ZK_HOST);
@@ -694,6 +697,7 @@ public class SolrCLI implements CLIO {
 
   @SuppressWarnings("unchecked")
   private static class SolrResponseHandler implements ResponseHandler<Map<String, Object>> {
+    @Override
     public Map<String, Object> handleResponse(HttpResponse response)
         throws ClientProtocolException, IOException {
       HttpEntity entity = response.getEntity();
@@ -879,10 +883,12 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "status";
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("solr")
@@ -900,6 +906,7 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       int maxWaitSecs = Integer.parseInt(cli.getOptionValue("maxWaitSecs", "0"));
       String solrUrl = cli.getOptionValue("solr", DEFAULT_SOLR_URL);
@@ -1031,10 +1038,12 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "api";
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("get")
@@ -1046,6 +1055,7 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       String getUrl = cli.getOptionValue("get");
       if (getUrl != null) {
@@ -1126,16 +1136,19 @@ public class SolrCLI implements CLIO {
       return map;
     }
 
+    @Override
     public String toString() {
       CharArr arr = new CharArr();
       new JSONWriter(arr, 2).write(asMap());
       return arr.toString();
     }
 
+    @Override
     public int hashCode() {
       return this.shard.hashCode() + (isLeader ? 1 : 0);
     }
 
+    @Override
     public boolean equals(Object obj) {
       if (this == obj) return true;
       if (obj == null) return false;
@@ -1144,6 +1157,7 @@ public class SolrCLI implements CLIO {
       return this.shard.equals(that.shard) && this.isLeader == that.isLeader;
     }
 
+    @Override
     public int compareTo(ReplicaHealth other) {
       if (this == other) return 0;
       if (other == null) return 1;
@@ -1208,6 +1222,7 @@ public class SolrCLI implements CLIO {
       return map;
     }
 
+    @Override
     public String toString() {
       CharArr arr = new CharArr();
       new JSONWriter(arr, 2).write(asMap());
@@ -1533,14 +1548,17 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "create_collection";
     }
 
+    @Override
     public Option[] getOptions() {
       return CREATE_COLLECTION_OPTIONS;
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -1692,10 +1710,12 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "create_core";
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         OPTION_SOLRURL,
@@ -1724,6 +1744,7 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       String solrUrl = cli.getOptionValue("solrUrl", DEFAULT_SOLR_URL);
       if (!solrUrl.endsWith("/")) solrUrl += "/";
@@ -1851,14 +1872,17 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "create";
     }
 
+    @Override
     public Option[] getOptions() {
       return CREATE_COLLECTION_OPTIONS;
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String solrUrl = cli.getOptionValue("solrUrl", DEFAULT_SOLR_URL);
@@ -1892,6 +1916,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("confname")
@@ -1917,10 +1942,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "upconfig";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -1968,6 +1995,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("confname")
@@ -1987,10 +2015,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "downconfig";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -2038,6 +2068,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("path")
@@ -2052,10 +2083,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "rm";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -2107,6 +2140,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("path")
@@ -2121,10 +2155,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "ls";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -2167,6 +2203,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("path")
@@ -2180,10 +2217,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "mkroot";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -2218,6 +2257,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("src")
@@ -2238,10 +2278,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "cp";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -2295,6 +2337,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("src")
@@ -2314,10 +2357,12 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public String getName() {
       return "mv";
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String zkHost = getZkHost(cli);
@@ -2367,10 +2412,12 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "delete";
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         OPTION_SOLRURL,
@@ -2397,6 +2444,7 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       raiseLogLevelUnlessVerbose(cli);
       String solrUrl = cli.getOptionValue("solrUrl", DEFAULT_SOLR_URL);
@@ -2568,6 +2616,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "config";
     }
@@ -2617,6 +2666,7 @@ public class SolrCLI implements CLIO {
       return joinOptions(configOptions, cloudOptions);
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       String solrUrl;
       try {
@@ -2699,10 +2749,12 @@ public class SolrCLI implements CLIO {
       this.userInput = userInput;
     }
 
+    @Override
     public String getName() {
       return "run_example";
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("noprompt")
@@ -2793,6 +2845,7 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     protected void runImpl(CommandLine cli) throws Exception {
       this.urlScheme = cli.getOptionValue("urlScheme", "http");
 
@@ -3677,10 +3730,12 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "assert";
     }
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("R")
@@ -3752,6 +3807,7 @@ public class SolrCLI implements CLIO {
       };
     }
 
+    @Override
     public int runTool(CommandLine cli) throws Exception {
       verbose = cli.hasOption(OPTION_VERBOSE.getOpt());
 
@@ -4013,6 +4069,7 @@ public class SolrCLI implements CLIO {
       super(stdout);
     }
 
+    @Override
     public String getName() {
       return "auth";
     }
@@ -4021,6 +4078,7 @@ public class SolrCLI implements CLIO {
         Arrays.asList(
             "SOLR_AUTHENTICATION_CLIENT_BUILDER", "SOLR_AUTH_TYPE", "SOLR_AUTHENTICATION_OPTS");
 
+    @Override
     public Option[] getOptions() {
       return new Option[] {
         Option.builder("type")
diff --git a/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java b/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java
index ccba6c61299..06bac86b932 100644
--- a/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java
+++ b/solr/core/src/java/org/apache/solr/util/configuration/providers/EnvSSLCredentialProvider.java
@@ -46,6 +46,7 @@ public class EnvSSLCredentialProvider extends AbstractSSLCredentialProvider {
     this.envVars = System.getenv();
   }
 
+  @Override
   protected EnumMap<CredentialType, String> getCredentialKeyMap() {
     return Maps.newEnumMap(
         ImmutableMap.of(
@@ -55,6 +56,7 @@ public class EnvSSLCredentialProvider extends AbstractSSLCredentialProvider {
             SSL_CLIENT_TRUST_STORE_PASSWORD, EnvVars.SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD));
   }
 
+  @Override
   protected String getCredential(String envKey) {
     if (envVars.containsKey(envKey)) {
       return envVars.get(envKey);
diff --git a/solr/core/src/java/org/apache/solr/util/configuration/providers/SysPropSSLCredentialProvider.java b/solr/core/src/java/org/apache/solr/util/configuration/providers/SysPropSSLCredentialProvider.java
index 4100d41cfdc..52831a32dd3 100644
--- a/solr/core/src/java/org/apache/solr/util/configuration/providers/SysPropSSLCredentialProvider.java
+++ b/solr/core/src/java/org/apache/solr/util/configuration/providers/SysPropSSLCredentialProvider.java
@@ -26,6 +26,7 @@ public class SysPropSSLCredentialProvider extends AbstractSSLCredentialProvider
     return DEFAULT_CREDENTIAL_KEY_MAP;
   }
 
+  @Override
   protected String getCredential(String syspropKey) {
     if (System.getProperty(syspropKey) != null) {
       return System.getProperty(syspropKey);
diff --git a/solr/core/src/test/org/apache/solr/cloud/AddReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/AddReplicaTest.java
index d6bd16bf06a..7702012713d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/AddReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/AddReplicaTest.java
@@ -42,6 +42,7 @@ public class AddReplicaTest extends SolrCloudTestCase {
         .configure();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeWithPullReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeWithPullReplicasTest.java
index 379345e5472..0ecb4aab598 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeWithPullReplicasTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeWithPullReplicasTest.java
@@ -55,6 +55,7 @@ public class ChaosMonkeyNothingIsSafeWithPullReplicasTest extends AbstractFullDi
   private final int numPullReplicas;
   private final int numRealtimeOrTlogReplicas;
 
+  @Override
   protected int getPullReplicaCount() {
     return numPullReplicas;
   }
@@ -87,10 +88,12 @@ public class ChaosMonkeyNothingIsSafeWithPullReplicasTest extends AbstractFullDi
 
   private final boolean runFullThrottle;
 
+  @Override
   public String[] getFieldNames() {
     return fieldNames;
   }
 
+  @Override
   public RandVal[] getRandValues() {
     return randVals;
   }
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 d98f200ac5f..5469fac6ab4 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeySafeLeaderWithPullReplicasTest.java
@@ -84,10 +84,12 @@ public class ChaosMonkeySafeLeaderWithPullReplicasTest extends AbstractFullDistr
   protected static final String[] fieldNames = new String[] {"f_i", "f_f", "f_d", "f_l", "f_dt"};
   protected static final RandVal[] randVals = new RandVal[] {rint, rfloat, rdouble, rlong, rdate};
 
+  @Override
   public String[] getFieldNames() {
     return fieldNames;
   }
 
+  @Override
   public RandVal[] getRandValues() {
     return randVals;
   }
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 65778b65ba2..d354b69defb 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
@@ -61,6 +61,7 @@ public class ChaosMonkeyShardSplitTest extends ShardSplitTest {
     System.clearProperty("solr.retries.to.followers");
   }
 
+  @Override
   @Test
   public void test() throws Exception {
     waitForThingsToLevelOut(15, TimeUnit.SECONDS);
diff --git a/solr/core/src/test/org/apache/solr/cloud/DistributedQueueTest.java b/solr/core/src/test/org/apache/solr/cloud/DistributedQueueTest.java
index 904e6da69e7..bf69aa31a4d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DistributedQueueTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DistributedQueueTest.java
@@ -317,6 +317,7 @@ public class DistributedQueueTest extends SolrTestCaseJ4 {
       this.waitBeforeOfferMs = waitBeforeOfferMs;
     }
 
+    @Override
     public void run() {
       try {
         Thread.sleep(waitBeforeOfferMs);
diff --git a/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java b/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java
index 41933370a4e..d2864f469ec 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DistributedVersionInfoTest.java
@@ -154,6 +154,7 @@ public class DistributedVersionInfoTest extends SolrCloudTestCase {
     final Random rand = new Random(5150);
     Thread docSenderThread =
         new Thread() {
+          @Override
           public void run() {
 
             // brief delay before sending docs
@@ -182,6 +183,7 @@ public class DistributedVersionInfoTest extends SolrCloudTestCase {
 
     Thread reloaderThread =
         new Thread() {
+          @Override
           public void run() {
             try {
               Thread.sleep(rand.nextInt(300) + 1);
@@ -204,6 +206,7 @@ public class DistributedVersionInfoTest extends SolrCloudTestCase {
 
     Thread deleteThread =
         new Thread() {
+          @Override
           public void run() {
 
             // brief delay before sending docs
@@ -232,6 +235,7 @@ public class DistributedVersionInfoTest extends SolrCloudTestCase {
 
     Thread committerThread =
         new Thread() {
+          @Override
           public void run() {
             try {
               Thread.sleep(rand.nextInt(200) + 1);
diff --git a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
index c97b89e5c64..1af5f6ca1be 100644
--- a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
@@ -610,6 +610,7 @@ public class HttpPartitionTest extends AbstractFullDistribZkTestBase {
     return solr.request(qr);
   }
 
+  @Override
   protected int getReplicaPort(Replica replica) {
     String replicaNode = replica.getNodeName();
     String tmp = replicaNode.substring(replicaNode.indexOf(':') + 1);
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
index 2c4972262e3..7701793129b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderFailoverAfterPartitionTest.java
@@ -46,6 +46,7 @@ public class LeaderFailoverAfterPartitionTest extends HttpPartitionTest {
     super();
   }
 
+  @Override
   @Test
   public void test() throws Exception {
     waitForThingsToLevelOut(30, TimeUnit.SECONDS);
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java
index 289950cf850..e1e75eabcc7 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java
@@ -76,6 +76,7 @@ public class LeaderFailureAfterFreshStartTest extends AbstractFullDistribZkTestB
     fixShardCount(3);
   }
 
+  @Override
   protected String getCloudSolrConfig() {
     return "solrconfig-tlog.xml";
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
index e99479f5a29..86bccffd73f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java
@@ -60,6 +60,7 @@ public class LeaderTragicEventTest extends SolrCloudTestCase {
         .configure();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -67,6 +68,7 @@ public class LeaderTragicEventTest extends SolrCloudTestCase {
     cluster.getSolrClient().setDefaultCollection(collection);
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java
index a8c127718c8..e86bdf93e1d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderVoteWaitTimeoutTest.java
@@ -105,6 +105,7 @@ public class LeaderVoteWaitTimeoutTest extends SolrCloudTestCase {
     }
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     if (null != proxies) {
diff --git a/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java
index 00b6d52c611..265cbd4d1ea 100644
--- a/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/MoveReplicaTest.java
@@ -25,11 +25,13 @@ import org.junit.Test;
  */
 public class MoveReplicaTest extends AbstractMoveReplicaTestBase {
 
+  @Override
   @Test
   public void test() throws Exception {
     super.test();
   }
 
+  @Override
   @Test
   public void testFailedMove() throws Exception {
     super.testFailedMove();
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
index 843c8dd731f..f0ccaebf14c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
@@ -239,6 +239,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
     solrMetricsContextMock = null;
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -276,6 +277,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
     replicas.clear();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     stopComponentUnderTest();
@@ -459,6 +461,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
 
     Mockito.doAnswer(
             new Answer<Void>() {
+              @Override
               public Void answer(InvocationOnMock invocation) {
                 System.out.println(
                     "set data: " + invocation.getArgument(0) + " " + invocation.getArgument(1));
@@ -505,6 +508,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
 
     Mockito.doAnswer(
             new Answer<Void>() {
+              @Override
               public Void answer(InvocationOnMock invocation) {
                 System.out.println(
                     "set data: " + invocation.getArgument(0) + " " + Arrays.toString(new byte[0]));
@@ -546,6 +550,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
       // 1. Single line recording and executing a command
       Mockito.doAnswer(
               new Answer<Void>() {
+                @Override
                 public Void answer(InvocationOnMock invocation) {
                   handleCreateCollMessageProps(invocation.getArgument(1));
                   return null;
@@ -557,6 +562,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
       // 2. Recording a command to be executed as part of a batch of commands
       Mockito.doAnswer(
               new Answer<Void>() {
+                @Override
                 public Void answer(InvocationOnMock invocation) {
                   handleCreateCollMessageProps(invocation.getArgument(1));
                   return null;
@@ -568,6 +574,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
       // Mocking for state change via the Overseer queue
       Mockito.doAnswer(
               new Answer<Void>() {
+                @Override
                 public Void answer(InvocationOnMock invocation) {
                   try {
                     handleCreateCollMessage(invocation.getArgument(0));
@@ -592,6 +599,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
 
     Mockito.doAnswer(
             new Answer<Void>() {
+              @Override
               public Void answer(InvocationOnMock invocation) {
                 System.out.println(
                     "set data: " + invocation.getArgument(0) + " " + invocation.getArgument(1));
@@ -638,6 +646,7 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
 
     Mockito.doAnswer(
             new Answer<Void>() {
+              @Override
               public Void answer(InvocationOnMock invocation) {
                 System.out.println(
                     "set data: " + invocation.getArgument(0) + " " + Arrays.toString(new byte[0]));
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 3dc5aef4a97..aa9503182ee 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -357,6 +357,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
     initCore();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     testDone = false;
@@ -379,6 +380,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
     server = null;
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     testDone = true;
@@ -1877,6 +1879,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
           new SolrZkClient(server.getZkAddress(), AbstractZkTestCase.TIMEOUT);
       doAnswer(
               new Answer<Void>() {
+                @Override
                 public Void answer(InvocationOnMock invocation) {
                   newZkClient.close();
                   return null;
diff --git a/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java b/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java
index f9ee3b97f0e..cc2df95fb15 100644
--- a/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java
@@ -84,6 +84,7 @@ public class PeerSyncReplicationTest extends AbstractFullDistribZkTestBase {
     fixShardCount(3);
   }
 
+  @Override
   protected String getCloudSolrConfig() {
     return "solrconfig-tlog.xml";
   }
@@ -217,6 +218,7 @@ public class PeerSyncReplicationTest extends AbstractFullDistribZkTestBase {
       this.runner = nodeToBringUp;
     }
 
+    @Override
     public void run() {
       try {
         // If we don't wait for cores get loaded, the leader may put this replica into LIR state
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java
index a03e3666ea8..16ecdd73f01 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudSearcherWarming.java
@@ -61,6 +61,7 @@ public class TestCloudSearcherWarming extends SolrCloudTestCase {
     useFactory("solr.StandardDirectoryFactory");
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
index 7a831d41806..c2f0f23dab8 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
@@ -1827,6 +1827,7 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
   }
 
   public static class CreateNoErrorChecking extends ConfigSetAdminRequest.Create {
+    @Override
     public ConfigSetAdminRequest<Create, ConfigSetAdminResponse> setAction(ConfigSetAction action) {
       return super.setAction(action);
     }
@@ -1842,6 +1843,7 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
   }
 
   public static class DeleteNoErrorChecking extends ConfigSetAdminRequest.Delete {
+    @Override
     public ConfigSetAdminRequest<Delete, ConfigSetAdminResponse> setAction(ConfigSetAction action) {
       return super.setAction(action);
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java
index 680cff48d44..7e1e48bd568 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIExclusivity.java
@@ -123,6 +123,7 @@ public class TestConfigSetsAPIExclusivity extends SolrTestCaseJ4 {
 
     public abstract ConfigSetAdminRequest<?, ?> createRequest();
 
+    @Override
     public void run() {
       final String baseUrl = solrCluster.getJettySolrRunners().get(0).getBaseUrl().toString();
       final SolrClient solrClient = getHttpSolrClient(baseUrl);
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestDistribDocBasedVersion.java b/solr/core/src/test/org/apache/solr/cloud/TestDistribDocBasedVersion.java
index 4708752bb28..a0fc4b2b988 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestDistribDocBasedVersion.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestDistribDocBasedVersion.java
@@ -284,6 +284,7 @@ public class TestDistribDocBasedVersion extends AbstractFullDistribZkTestBase {
     assertTrue(failed);
   }
 
+  @Override
   void doQuery(String expectedDocs, String... queryParams) throws Exception {
 
     List<String> strs = StrUtils.splitSmart(expectedDocs, ",", true);
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
index 012d2477498..677ca916a5d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestRandomFlRTGCloud.java
@@ -745,6 +745,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this.actualFieldName = actualFieldName;
     }
 
+    @Override
     public abstract String getFlParam();
 
     @Override
@@ -784,6 +785,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       super(fieldName, fieldName);
     }
 
+    @Override
     public String getFlParam() {
       return expectedFieldName;
     }
@@ -795,10 +797,12 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       super(origFieldName, alias);
     }
 
+    @Override
     public String getFlParam() {
       return actualFieldName + ":" + expectedFieldName;
     }
 
+    @Override
     public Set<String> getSuppressedFields() {
       return Collections.singleton(expectedFieldName);
     }
@@ -831,6 +835,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this(type, fieldName, null);
     }
 
+    @Override
     public String getFlParam() {
       return (null == alias ? "" : (alias + ":")) + "[" + type + " f=" + expectedFieldName + "]";
     }
@@ -881,6 +886,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       return extraParams;
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return type;
     }
@@ -906,6 +912,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
           });
     }
 
+    @Override
     protected String consumeRawContent(XMLStreamReader parser) throws XMLStreamException {
       return consumeRawContent0(parser);
     }
@@ -955,14 +962,17 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this(USAGE);
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return NAME;
     }
 
+    @Override
     public String getFlParam() {
       return USAGE.equals(resultKey) ? resultKey : resultKey + ":" + USAGE;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -999,14 +1009,17 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this(USAGE);
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return NAME;
     }
 
+    @Override
     public String getFlParam() {
       return USAGE.equals(resultKey) ? resultKey : resultKey + ":" + USAGE;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -1050,14 +1063,17 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this(trans(expectedVal), expectedVal, "[" + NAME + "]");
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return NAME;
     }
 
+    @Override
     public String getFlParam() {
       return fl;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -1094,14 +1110,17 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this.fieldName = fieldName;
     }
     /** always returns true */
+    @Override
     public boolean requiresRealtimeSearcherReOpen() {
       return true;
     }
 
+    @Override
     public String getFlParam() {
       return fl;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -1139,10 +1158,12 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
     public static final String SUBQ_KEY = "subq";
     public static final String SUBQ_FIELD = "next_2_ids_i";
 
+    @Override
     public String getFlParam() {
       return SUBQ_KEY + ":[" + NAME + "]";
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
@@ -1178,10 +1199,12 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       return Collections.<String>singleton(SUBQ_KEY);
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return NAME;
     }
 
+    @Override
     public SolrParams getExtraRequestParams() {
       return params(
           SubQueryValidator.SUBQ_KEY + ".q",
@@ -1242,14 +1265,17 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this.fieldName = fieldName;
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return NAME;
     }
 
+    @Override
     public String getFlParam() {
       return fl;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -1271,6 +1297,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       return Collections.<String>singleton(resultKey);
     }
 
+    @Override
     public Set<String> getSuppressedFields() {
       return Collections.singleton(fieldName);
     }
@@ -1295,6 +1322,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
 
     private final Set<String> matchingFieldsCache = new LinkedHashSet<>();
 
+    @Override
     public String getFlParam() {
       return glob;
     }
@@ -1307,6 +1335,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       return false;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -1350,10 +1379,12 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       this.fl = fl;
     }
 
+    @Override
     public String getFlParam() {
       return fl;
     }
 
+    @Override
     public Collection<String> assertRTGResults(
         final Collection<FlValidator> validators,
         final SolrInputDocument expected,
@@ -1377,6 +1408,7 @@ public class TestRandomFlRTGCloud extends SolrCloudTestCase {
       super(USAGE, resultKey + ":" + USAGE);
     }
 
+    @Override
     public String getDefaultTransformerFactoryName() {
       return NAME;
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestSizeLimitedDistributedMap.java b/solr/core/src/test/org/apache/solr/cloud/TestSizeLimitedDistributedMap.java
index 7c63d6a1ad9..6c9e01d7d7b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestSizeLimitedDistributedMap.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestSizeLimitedDistributedMap.java
@@ -116,13 +116,14 @@ public class TestSizeLimitedDistributedMap extends TestDistributedMap {
         }
         // there's no guarantees on exactly how many elements will be removed, but it should at
         // least NOT throw exception
-        assertTrue(!deletedItems.isEmpty());
+        assertFalse(deletedItems.isEmpty());
       } finally {
         ExecutorUtil.shutdownAndAwaitTermination(executorService);
       }
     }
   }
 
+  @Override
   protected DistributedMap createMap(SolrZkClient zkClient, String path) {
     return new SizeLimitedDistributedMap(zkClient, path, Overseer.NUM_RESPONSES_TO_STORE, null);
   }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestSkipOverseerOperations.java b/solr/core/src/test/org/apache/solr/cloud/TestSkipOverseerOperations.java
index 46635a070d9..6c0541a678c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestSkipOverseerOperations.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestSkipOverseerOperations.java
@@ -51,6 +51,7 @@ public class TestSkipOverseerOperations extends SolrCloudTestCase {
         .configure();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     shutdownCluster();
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
index 468940441d2..d91261aa40f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressCloudBlindAtomicUpdates.java
@@ -437,6 +437,7 @@ public class TestStressCloudBlindAtomicUpdates extends SolrCloudTestCase {
       counter.getAndAdd(delta);
     }
 
+    @Override
     public void run() {
       final String origThreadName = Thread.currentThread().getName();
       try {
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java b/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
index 7675753c8d9..de5742a414e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestStressLiveNodes.java
@@ -244,6 +244,7 @@ public class TestStressLiveNodes extends SolrCloudTestCase {
       this.client = newSolrZkClient();
     }
     /** returns the number of nodes actually added w/o error */
+    @Override
     public Integer call() {
       running = true;
       // NOTE: test includes 'running'
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
index be56310e4a3..023f304f7cf 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
@@ -1248,6 +1248,7 @@ public class TestTolerantUpdateProcessorCloud extends SolrCloudTestCase {
       this.msgSubStr = msgSubStr;
     }
 
+    @Override
     public String toString() {
       return "type=<" + type + ">,id=<" + id + ">,msgSubStr=<" + msgSubStr + ">";
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java b/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java
index 5b95a5e3f74..bddb5ba2e35 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestWaitForStateWithJettyShutdowns.java
@@ -153,6 +153,7 @@ public class TestWaitForStateWithJettyShutdowns extends SolrTestCaseJ4 {
       this.inner = inner;
     }
 
+    @Override
     public boolean matches(Set<String> liveNodes, DocCollection collectionState) {
       final boolean result = inner.matches(liveNodes, collectionState);
       if (log.isInfoEnabled()) {
diff --git a/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java b/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java
index 98fe143d922..7e62974bd6f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TriLevelCompositeIdRoutingTest.java
@@ -63,6 +63,7 @@ public class TriLevelCompositeIdRoutingTest extends ShardRoutingTest {
     NUM_ADDS = atLeast(200);
   }
 
+  @Override
   @AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-13369")
   @Test
   public void test() throws Exception {
@@ -147,6 +148,7 @@ public class TriLevelCompositeIdRoutingTest extends ShardRoutingTest {
     }
   }
 
+  @Override
   void doAddDoc(String id) throws Exception {
     index("id", id);
     // todo - target diff servers and use cloud clients as well as non-cloud clients
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
index c3c9408292f..8c1ad8beea5 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
@@ -131,6 +131,7 @@ public class ZkSolrClientTest extends SolrTestCaseJ4 {
 
       Thread thread =
           new Thread() {
+            @Override
             public void run() {
               try {
                 zkClient.makePath("collections/collection2", false);
@@ -153,6 +154,7 @@ public class ZkSolrClientTest extends SolrTestCaseJ4 {
 
       Thread thread2 =
           new Thread() {
+            @Override
             public void run() {
               try {
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIAsyncDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIAsyncDistributedZkTest.java
index 0807a3ce9bc..bd3b1d56cd1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIAsyncDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIAsyncDistributedZkTest.java
@@ -59,6 +59,7 @@ public class CollectionsAPIAsyncDistributedZkTest extends SolrCloudTestCase {
     configureCluster(2).addConfig("conf1", configset("cloud-minimal")).configure();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     shutdownCluster();
diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
index 1a5fb1f9dc4..b69bdb3c5cc 100644
--- a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java
@@ -96,6 +96,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
     useFactory(null);
   }
 
+  @Override
   @Test
   @Nightly
   public void test() throws Exception {
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 e2d4e5833a1..543d53b9f04 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
@@ -39,6 +39,7 @@ public class TestRequestStatusCollectionAPI extends BasicDistributedZkTest {
     schemaString = "schema15.xml"; // we need a string id
   }
 
+  @Override
   @Test
   public void test() {
     ModifiableSolrParams params = new ModifiableSolrParams();
diff --git a/solr/core/src/test/org/apache/solr/cloud/overseer/ZkStateReaderTest.java b/solr/core/src/test/org/apache/solr/cloud/overseer/ZkStateReaderTest.java
index 73093e41f3f..80604de2b85 100644
--- a/solr/core/src/test/org/apache/solr/cloud/overseer/ZkStateReaderTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/overseer/ZkStateReaderTest.java
@@ -88,12 +88,14 @@ public class ZkStateReaderTest extends SolrTestCaseJ4 {
 
   private TestFixture fixture = null;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
     fixture = setupTestFixture(getTestName());
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     if (fixture != null) {
diff --git a/solr/core/src/test/org/apache/solr/cluster/events/AllEventsListener.java b/solr/core/src/test/org/apache/solr/cluster/events/AllEventsListener.java
index 5a80ff97a67..06dd9d1449d 100644
--- a/solr/core/src/test/org/apache/solr/cluster/events/AllEventsListener.java
+++ b/solr/core/src/test/org/apache/solr/cluster/events/AllEventsListener.java
@@ -51,5 +51,6 @@ public class AllEventsListener implements ClusterEventListener {
     }
   }
 
+  @Override
   public void close() {}
 }
diff --git a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
index 5813fb9512c..6f44d4da2f0 100644
--- a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
+++ b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
@@ -63,6 +63,7 @@ public class ClusterEventProducerTest extends SolrCloudTestCase {
         .configure();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     System.setProperty("enable.packages", "true");
diff --git a/solr/core/src/test/org/apache/solr/cluster/events/impl/CollectionsRepairEventListenerTest.java b/solr/core/src/test/org/apache/solr/cluster/events/impl/CollectionsRepairEventListenerTest.java
index 20d19fdab41..dc8f9e293af 100644
--- a/solr/core/src/test/org/apache/solr/cluster/events/impl/CollectionsRepairEventListenerTest.java
+++ b/solr/core/src/test/org/apache/solr/cluster/events/impl/CollectionsRepairEventListenerTest.java
@@ -120,6 +120,7 @@ public class CollectionsRepairEventListenerTest extends SolrCloudTestCase {
     repairListener.start();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java b/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
index f771927cdb5..baf24527965 100644
--- a/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
+++ b/solr/core/src/test/org/apache/solr/cluster/placement/ClusterAbstractionsForTest.java
@@ -93,6 +93,7 @@ class ClusterAbstractionsForTest {
      * comparing node names given that new instances of {@link Node} are created with names equal to
      * existing instances (See {@link Builders.NodeBuilder#build()}).
      */
+    @Override
     public boolean equals(Object obj) {
       if (obj == null) {
         return false;
@@ -107,6 +108,7 @@ class ClusterAbstractionsForTest {
       return Objects.equals(this.nodeName, other.nodeName);
     }
 
+    @Override
     public int hashCode() {
       return Objects.hashCode(nodeName);
     }
@@ -220,6 +222,7 @@ class ClusterAbstractionsForTest {
       return shardState;
     }
 
+    @Override
     public boolean equals(Object obj) {
       if (obj == null) {
         return false;
@@ -238,6 +241,7 @@ class ClusterAbstractionsForTest {
           && Objects.equals(this.leader, other.leader);
     }
 
+    @Override
     public int hashCode() {
       return Objects.hash(shardName, collection, shardState);
     }
@@ -296,6 +300,7 @@ class ClusterAbstractionsForTest {
       return node;
     }
 
+    @Override
     public boolean equals(Object obj) {
       if (obj == null) {
         return false;
@@ -315,6 +320,7 @@ class ClusterAbstractionsForTest {
           && Objects.equals(this.node, other.node);
     }
 
+    @Override
     public int hashCode() {
       return Objects.hash(replicaName, coreName, shard, replicaType, replicaState, node);
     }
diff --git a/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java b/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
index 8ad5ee12b76..1e8e147af0b 100644
--- a/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
+++ b/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
@@ -65,6 +65,7 @@ public class BlobRepositoryMockingTest extends SolrTestCaseJ4 {
     SolrTestCaseJ4.assumeWorkingMockito();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/core/CachingDirectoryFactoryTest.java b/solr/core/src/test/org/apache/solr/core/CachingDirectoryFactoryTest.java
index eb8520ac4bc..7ce94dc8758 100644
--- a/solr/core/src/test/org/apache/solr/core/CachingDirectoryFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/core/CachingDirectoryFactoryTest.java
@@ -77,6 +77,7 @@ public class CachingDirectoryFactoryTest extends SolrTestCaseJ4 {
 
     Thread closeThread =
         new Thread() {
+          @Override
           public void run() {
             try {
               df.close();
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
index 1fde25d409c..a536191ad50 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
@@ -572,6 +572,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
     @Override
     public void deleteFilesFromConfig(String configName, List<String> filesToDelete) {}
 
+    @Override
     public void copyConfig(String fromConfig, String toConfig) {}
 
     @Override
diff --git a/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java b/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java
index e2dcb23f3a9..95b4fd7022a 100644
--- a/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java
+++ b/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java
@@ -51,6 +51,7 @@ public class TestNRTOpen extends SolrTestCaseJ4 {
     systemClearPropertySolrTestsMergePolicyFactory();
   }
 
+  @Override
   public void setUp() throws Exception {
     super.setUp();
     // delete all, then add initial doc
diff --git a/solr/core/src/test/org/apache/solr/handler/RequestHandlerMetricsTest.java b/solr/core/src/test/org/apache/solr/handler/RequestHandlerMetricsTest.java
index 228ad8cc48b..164a897459e 100644
--- a/solr/core/src/test/org/apache/solr/handler/RequestHandlerMetricsTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/RequestHandlerMetricsTest.java
@@ -42,6 +42,7 @@ public class RequestHandlerMetricsTest extends SolrCloudTestCase {
     configureCluster(1).addConfig("conf1", configset("cloud-aggregate-node-metrics")).configure();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/handler/TestHealthCheckHandlerLegacyMode.java b/solr/core/src/test/org/apache/solr/handler/TestHealthCheckHandlerLegacyMode.java
index fc8dc8a592a..8d62803a9f5 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestHealthCheckHandlerLegacyMode.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestHealthCheckHandlerLegacyMode.java
@@ -48,6 +48,7 @@ public class TestHealthCheckHandlerLegacyMode extends SolrTestCaseJ4 {
 
   private static final String context = "/solr";
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index ccb342ee316..5e284d9fff3 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -117,6 +117,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
     useLegacyParams = rarely();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerBackup.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerBackup.java
index 369243c4fff..4c9cc6b35d5 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerBackup.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerBackup.java
@@ -93,6 +93,7 @@ public class TestReplicationHandlerBackup extends SolrJettyTestBase {
     }
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java
index f816cc3b2bf..698dd398721 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandlerDiskOverFlow.java
@@ -61,6 +61,7 @@ public class TestReplicationHandlerDiskOverFlow extends SolrTestCaseJ4 {
   SolrClient leaderClient, followerClient;
   ReplicationTestHelper.SolrInstance leader = null, follower = null;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     originalDiskSpaceprovider = IndexFetcher.usableDiskSpaceProvider;
diff --git a/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java b/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java
index 1c831c2a7aa..12d4dc72be9 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestRestoreCore.java
@@ -76,6 +76,7 @@ public class TestRestoreCore extends SolrJettyTestBase {
     }
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
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 2f6cb29988d..3b34120953e 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestStressIncrementalBackup.java
@@ -110,6 +110,7 @@ public class TestStressIncrementalBackup extends SolrCloudTestCase {
     // possible to create a lot of index churn w/ segment merging
     final Thread heavyCommitting =
         new Thread() {
+          @Override
           public void run() {
             try {
               int docIdCounter = 0;
diff --git a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
index f990bcf6c8d..121ce4251c7 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
@@ -139,6 +139,7 @@ public class TestStressThreadBackup extends SolrCloudTestCase {
            * Override default backup impl to hit ReplicationHandler, and then poll that same handler
            * until success
            */
+          @Override
           public void makeBackup(final String backupName, final String snapName) throws Exception {
             final TimeOut timeout = new TimeOut(30, TimeUnit.SECONDS, TimeSource.NANO_TIME);
             ModifiableSolrParams p =
@@ -170,6 +171,7 @@ public class TestStressThreadBackup extends SolrCloudTestCase {
     // possible to create a lot of index churn w/ segment merging
     final Thread heavyCommitting =
         new Thread() {
+          @Override
           public void run() {
             try {
               int docIdCounter = 0;
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminOperationTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminOperationTest.java
index 476c685f116..797dabd04a9 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminOperationTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminOperationTest.java
@@ -41,6 +41,7 @@ public class CoreAdminOperationTest extends SolrTestCaseJ4 {
     assumeWorkingMockito();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -49,6 +50,7 @@ public class CoreAdminOperationTest extends SolrTestCaseJ4 {
     callInfo = new CoreAdminHandler.CallInfo(null, mockRequest, null, null);
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerLocalForTesting.java b/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerLocalForTesting.java
index f69723870ec..36a4fdba8e5 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerLocalForTesting.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/SecurityConfHandlerLocalForTesting.java
@@ -26,10 +26,12 @@ public class SecurityConfHandlerLocalForTesting extends SecurityConfHandlerLocal
     super(coreContainer);
   }
 
+  @Override
   public boolean persistConf(SecurityConfig securityConfig) throws IOException {
     return super.persistConf(securityConfig);
   }
 
+  @Override
   public void securityConfEdited() {
     super.securityConfEdited();
   }
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/api/AddReplicaPropertyAPITest.java b/solr/core/src/test/org/apache/solr/handler/admin/api/AddReplicaPropertyAPITest.java
index e31e12497ea..01ca69ed6d3 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/api/AddReplicaPropertyAPITest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/api/AddReplicaPropertyAPITest.java
@@ -60,6 +60,7 @@ public class AddReplicaPropertyAPITest extends SolrTestCaseJ4 {
     assumeWorkingMockito();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
index 83a51980349..e844e652736 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedFacetPivotSmallTest.java
@@ -2609,6 +2609,7 @@ public class DistributedFacetPivotSmallTest extends BaseDistributedSearchTestCas
       return equal;
     }
 
+    @Override
     public int indexOf(Object o) {
       for (int i = 0; i < size(); i++) {
         if (get(i).equals(o)) {
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 2d3fce4a44e..d181008e9c1 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
@@ -181,6 +181,7 @@ public class DistributedTermsComponentTest extends BaseDistributedSearchTestCase
     // query("qt", "/terms",  "terms.fl", "foo_date_p", "terms.ttf", "true");
   }
 
+  @Override
   protected QueryResponse query(Object... q) throws Exception {
     if (Stream.of(q).noneMatch(s -> s.equals("terms.list"))) {
       // SOLR-9243 doesn't support max/min count
diff --git a/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
index 8519dbaa0fe..381928669c6 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/StatsComponentTest.java
@@ -2347,18 +2347,22 @@ public class StatsComponentTest extends SolrTestCaseJ4 {
       intCombos = new Combinations(all.length, comboSize);
     }
 
+    @Override
     public Iterator<EnumSet<Stat>> iterator() {
       return new Iterator<EnumSet<Stat>>() {
         final Iterator<int[]> wrapped = intCombos.iterator();
 
+        @Override
         public void remove() {
           wrapped.remove();
         }
 
+        @Override
         public boolean hasNext() {
           return wrapped.hasNext();
         }
 
+        @Override
         public EnumSet<Stat> next() {
           EnumSet<Stat> result = EnumSet.noneOf(Stat.class);
           int[] indexes = wrapped.next();
diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java b/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
index e5b938b43bf..84b23dea383 100644
--- a/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/tagger/EmbeddedSolrNoSerializeTest.java
@@ -64,6 +64,7 @@ public class EmbeddedSolrNoSerializeTest extends SolrTestCaseJ4 {
     solrServer = null;
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/legacy/TestLegacyTerms.java b/solr/core/src/test/org/apache/solr/legacy/TestLegacyTerms.java
index 6de741d1ac6..b1b0dc0b876 100644
--- a/solr/core/src/test/org/apache/solr/legacy/TestLegacyTerms.java
+++ b/solr/core/src/test/org/apache/solr/legacy/TestLegacyTerms.java
@@ -149,38 +149,47 @@ public class TestLegacyTerms extends SolrTestCase {
   /** A complete empty Terms instance that has no terms in it and supports no optional statistics */
   private static Terms EMPTY_TERMS =
       new Terms() {
+        @Override
         public TermsEnum iterator() {
           return TermsEnum.EMPTY;
         }
 
+        @Override
         public long size() {
           return -1;
         }
 
+        @Override
         public long getSumTotalTermFreq() {
           return 0;
         }
 
+        @Override
         public long getSumDocFreq() {
           return 0;
         }
 
+        @Override
         public int getDocCount() {
           return 0;
         }
 
+        @Override
         public boolean hasFreqs() {
           return false;
         }
 
+        @Override
         public boolean hasOffsets() {
           return false;
         }
 
+        @Override
         public boolean hasPositions() {
           return false;
         }
 
+        @Override
         public boolean hasPayloads() {
           return false;
         }
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGraphiteReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGraphiteReporterTest.java
index d9a320ad7d8..385ebc85733 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGraphiteReporterTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGraphiteReporterTest.java
@@ -98,6 +98,7 @@ public class SolrGraphiteReporterTest extends SolrTestCaseJ4 {
       stop = false;
     }
 
+    @Override
     public void run() {
       while (!stop) {
         try {
diff --git a/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java b/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java
index be64a28fe9e..fa11166cd71 100644
--- a/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java
+++ b/solr/core/src/test/org/apache/solr/parser/SolrQueryParserBaseTest.java
@@ -44,8 +44,10 @@ public class SolrQueryParserBaseTest extends SolrTestCaseJ4 {
   private static final String DEFAULT_FIELD_NAME = "TestDefaultFieldname";
 
   private static class MockSolrQueryParser extends SolrQueryParserBase {
+    @Override
     public void ReInit(CharStream stream) {}
 
+    @Override
     public Query TopLevelQuery(String field) {
       return null;
     }
@@ -59,6 +61,7 @@ public class SolrQueryParserBaseTest extends SolrTestCaseJ4 {
 
   private MockSolrQueryParser solrQueryParser;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/response/TestGraphMLResponseWriter.java b/solr/core/src/test/org/apache/solr/response/TestGraphMLResponseWriter.java
index 58478b924a2..a74f2012157 100644
--- a/solr/core/src/test/org/apache/solr/response/TestGraphMLResponseWriter.java
+++ b/solr/core/src/test/org/apache/solr/response/TestGraphMLResponseWriter.java
@@ -126,18 +126,23 @@ public class TestGraphMLResponseWriter extends SolrTestCaseJ4 {
       tuples = testTuples.iterator();
     }
 
+    @Override
     public StreamComparator getStreamSort() {
       return null;
     }
 
+    @Override
     public void close() {}
 
+    @Override
     public void open() {}
 
+    @Override
     public List<TupleStream> children() {
       return null;
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public Tuple read() {
       if (tuples.hasNext()) {
@@ -150,8 +155,10 @@ public class TestGraphMLResponseWriter extends SolrTestCaseJ4 {
       }
     }
 
+    @Override
     public void setStreamContext(StreamContext streamContext) {}
 
+    @Override
     public Explanation toExplanation(StreamFactory factory) {
       return null;
     }
diff --git a/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java b/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
index 29488cc5f09..a987b96dcfc 100644
--- a/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DocValuesMultiTest.java
@@ -47,6 +47,7 @@ public class DocValuesMultiTest extends SolrTestCaseJ4 {
     }
   }
 
+  @Override
   public void setUp() throws Exception {
     super.setUp();
     assertU(delQ("*:*"));
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 ed826cb5e30..f1ce167cbed 100644
--- a/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/DocValuesTest.java
@@ -63,6 +63,7 @@ public class DocValuesTest extends SolrTestCaseJ4 {
     }
   }
 
+  @Override
   public void setUp() throws Exception {
     super.setUp();
     assertU(delQ("*:*"));
diff --git a/solr/core/src/test/org/apache/solr/schema/IntPointPrefixActsAsRangeQueryFieldType.java b/solr/core/src/test/org/apache/solr/schema/IntPointPrefixActsAsRangeQueryFieldType.java
index 3112db56a1c..ba130bda8fa 100644
--- a/solr/core/src/test/org/apache/solr/schema/IntPointPrefixActsAsRangeQueryFieldType.java
+++ b/solr/core/src/test/org/apache/solr/schema/IntPointPrefixActsAsRangeQueryFieldType.java
@@ -28,6 +28,7 @@ import org.apache.solr.search.QParser;
  */
 public class IntPointPrefixActsAsRangeQueryFieldType extends IntPointField {
 
+  @Override
   public Query getPrefixQuery(QParser parser, SchemaField sf, String termStr) {
     return getRangeQuery(parser, sf, termStr, Integer.MAX_VALUE + "", true, false);
   }
diff --git a/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java b/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
index e2d5b5a4257..48c99a630b9 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestBulkSchemaConcurrent.java
@@ -58,6 +58,7 @@ public class TestBulkSchemaConcurrent extends AbstractFullDistribZkTestBase {
     System.setProperty("enable.update.log", "true");
   }
 
+  @Override
   protected String getCloudSolrConfig() {
     return "solrconfig-managed-schema.xml";
   }
diff --git a/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java b/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java
index 295896cecd3..0bb42c3afd8 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCloudSchemaless.java
@@ -45,6 +45,7 @@ public class TestCloudSchemaless extends AbstractFullDistribZkTestBase {
   private static final String SUCCESS_XPATH =
       "/response/lst[@name='responseHeader']/int[@name='status'][.='0']";
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
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 64ffb41c072..407fb4eca3b 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestPointFields.java
@@ -676,6 +676,7 @@ public class TestPointFields extends SolrTestCaseJ4 {
       this.val = val;
     }
 
+    @Override
     public String toString() {
       return "(" + pos + ": " + val.toString() + ")";
     }
diff --git a/solr/core/src/test/org/apache/solr/schema/TrieIntPrefixActsAsRangeQueryFieldType.java b/solr/core/src/test/org/apache/solr/schema/TrieIntPrefixActsAsRangeQueryFieldType.java
index c67cb0a00c2..3c3e0baea3e 100644
--- a/solr/core/src/test/org/apache/solr/schema/TrieIntPrefixActsAsRangeQueryFieldType.java
+++ b/solr/core/src/test/org/apache/solr/schema/TrieIntPrefixActsAsRangeQueryFieldType.java
@@ -30,6 +30,7 @@ import org.apache.solr.search.QParser;
 @Deprecated
 public class TrieIntPrefixActsAsRangeQueryFieldType extends TrieIntField {
 
+  @Override
   public Query getPrefixQuery(QParser parser, SchemaField sf, String termStr) {
     return getRangeQuery(parser, sf, termStr, Integer.MAX_VALUE + "", true, false);
   }
diff --git a/solr/core/src/test/org/apache/solr/search/AnalyticsTestQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/AnalyticsTestQParserPlugin.java
index 0a59da43c61..489809f549e 100644
--- a/solr/core/src/test/org/apache/solr/search/AnalyticsTestQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/AnalyticsTestQParserPlugin.java
@@ -35,6 +35,7 @@ import org.apache.solr.request.SolrQueryRequest;
 
 public class AnalyticsTestQParserPlugin extends QParserPlugin {
 
+  @Override
   public QParser createParser(
       String query, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
     return new TestAnalyticsQueryParser(query, localParams, params, req);
@@ -47,6 +48,7 @@ public class AnalyticsTestQParserPlugin extends QParserPlugin {
       super(query, localParams, params, req);
     }
 
+    @Override
     public Query parse() {
       int base = localParams.getInt("base", 0);
       boolean iterate = localParams.getBool("iterate", false);
@@ -64,6 +66,7 @@ public class AnalyticsTestQParserPlugin extends QParserPlugin {
       this.base = base;
     }
 
+    @Override
     public DelegatingCollector getAnalyticsCollector(ResponseBuilder rb, IndexSearcher searcher) {
       return new TestAnalyticsCollector(base, rb);
     }
@@ -79,11 +82,13 @@ public class AnalyticsTestQParserPlugin extends QParserPlugin {
       this.rb = rb;
     }
 
+    @Override
     public void collect(int doc) throws IOException {
       ++count;
       leafDelegate.collect(doc);
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void finish() throws IOException {
       @SuppressWarnings({"rawtypes"})
@@ -98,20 +103,25 @@ public class AnalyticsTestQParserPlugin extends QParserPlugin {
 
   static class TestAnalyticsMergeStrategy implements MergeStrategy {
 
+    @Override
     public boolean mergesIds() {
       return false;
     }
 
+    @Override
     public boolean handlesMergeFields() {
       return false;
     }
 
+    @Override
     public int getCost() {
       return 100;
     }
 
+    @Override
     public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher) {}
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void merge(ResponseBuilder rb, ShardRequest shardRequest) {
       int count = 0;
@@ -134,6 +144,7 @@ public class AnalyticsTestQParserPlugin extends QParserPlugin {
 
   static class TestIterative extends IterativeMergeStrategy {
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void process(ResponseBuilder rb, ShardRequest sreq) throws Exception {
       int count = 0;
diff --git a/solr/core/src/test/org/apache/solr/search/ApacheLuceneSolrNearQueryBuilder.java b/solr/core/src/test/org/apache/solr/search/ApacheLuceneSolrNearQueryBuilder.java
index 8ab8f146e8c..c28eb533c44 100644
--- a/solr/core/src/test/org/apache/solr/search/ApacheLuceneSolrNearQueryBuilder.java
+++ b/solr/core/src/test/org/apache/solr/search/ApacheLuceneSolrNearQueryBuilder.java
@@ -35,10 +35,12 @@ public class ApacheLuceneSolrNearQueryBuilder extends SolrSpanQueryBuilder {
     super(defaultField, analyzer, req, spanFactory);
   }
 
+  @Override
   public Query getQuery(Element e) throws ParserException {
     return getSpanQuery(e);
   }
 
+  @Override
   public SpanQuery getSpanQuery(Element e) throws ParserException {
     final String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName");
     final SpanQuery[] spanQueries =
diff --git a/solr/core/src/test/org/apache/solr/search/ChooseOneWordQueryBuilder.java b/solr/core/src/test/org/apache/solr/search/ChooseOneWordQueryBuilder.java
index fccccf77065..ca18546b78c 100644
--- a/solr/core/src/test/org/apache/solr/search/ChooseOneWordQueryBuilder.java
+++ b/solr/core/src/test/org/apache/solr/search/ChooseOneWordQueryBuilder.java
@@ -36,10 +36,12 @@ public class ChooseOneWordQueryBuilder extends SolrSpanQueryBuilder {
     super(defaultField, analyzer, req, spanFactory);
   }
 
+  @Override
   public Query getQuery(Element e) throws ParserException {
     return implGetQuery(e, false);
   }
 
+  @Override
   public SpanQuery getSpanQuery(Element e) throws ParserException {
     return (SpanQuery) implGetQuery(e, true);
   }
diff --git a/solr/core/src/test/org/apache/solr/search/GoodbyeQueryBuilder.java b/solr/core/src/test/org/apache/solr/search/GoodbyeQueryBuilder.java
index cfbd33e7432..58e5ce46a8e 100644
--- a/solr/core/src/test/org/apache/solr/search/GoodbyeQueryBuilder.java
+++ b/solr/core/src/test/org/apache/solr/search/GoodbyeQueryBuilder.java
@@ -30,6 +30,7 @@ public class GoodbyeQueryBuilder extends SolrQueryBuilder {
     super(defaultField, analyzer, req, queryFactory);
   }
 
+  @Override
   public Query getQuery(Element e) {
     return new MatchNoDocsQuery();
   }
diff --git a/solr/core/src/test/org/apache/solr/search/HandyQueryBuilder.java b/solr/core/src/test/org/apache/solr/search/HandyQueryBuilder.java
index 44463896ff3..44580ad8be3 100644
--- a/solr/core/src/test/org/apache/solr/search/HandyQueryBuilder.java
+++ b/solr/core/src/test/org/apache/solr/search/HandyQueryBuilder.java
@@ -37,6 +37,7 @@ public class HandyQueryBuilder extends SolrSpanQueryBuilder {
     super(defaultField, analyzer, req, spanFactory);
   }
 
+  @Override
   public Query getQuery(Element e) throws ParserException {
     final BooleanQuery.Builder bq = new BooleanQuery.Builder();
     final Query lhsQ = getSubQuery(e, "Left");
@@ -46,6 +47,7 @@ public class HandyQueryBuilder extends SolrSpanQueryBuilder {
     return bq.build();
   }
 
+  @Override
   public SpanQuery getSpanQuery(Element e) throws ParserException {
     SpanQuery subQueries[] = {
       getSubSpanQuery(e, "Left"), getSubSpanQuery(e, "Right"),
diff --git a/solr/core/src/test/org/apache/solr/search/HelloQueryBuilder.java b/solr/core/src/test/org/apache/solr/search/HelloQueryBuilder.java
index 74e14a33f16..3cb3be830d4 100644
--- a/solr/core/src/test/org/apache/solr/search/HelloQueryBuilder.java
+++ b/solr/core/src/test/org/apache/solr/search/HelloQueryBuilder.java
@@ -30,6 +30,7 @@ public class HelloQueryBuilder extends SolrQueryBuilder {
     super(defaultField, analyzer, req, queryFactory);
   }
 
+  @Override
   public Query getQuery(Element e) {
     return new MatchAllDocsQuery();
   }
diff --git a/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java b/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
index 0cde4d58e28..bec2b7160ba 100644
--- a/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
+++ b/solr/core/src/test/org/apache/solr/search/MergeStrategyTest.java
@@ -107,14 +107,17 @@ public class MergeStrategyTest extends BaseDistributedSearchTestCase {
           @Override
           public void merge(ResponseBuilder rb, ShardRequest sreq) {}
 
+          @Override
           public boolean mergesIds() {
             return true;
           }
 
+          @Override
           public boolean handlesMergeFields() {
             return false;
           }
 
+          @Override
           public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher) {}
 
           @Override
@@ -128,14 +131,17 @@ public class MergeStrategyTest extends BaseDistributedSearchTestCase {
           @Override
           public void merge(ResponseBuilder rb, ShardRequest sreq) {}
 
+          @Override
           public boolean mergesIds() {
             return true;
           }
 
+          @Override
           public boolean handlesMergeFields() {
             return false;
           }
 
+          @Override
           public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher) {}
 
           @Override
@@ -149,14 +155,17 @@ public class MergeStrategyTest extends BaseDistributedSearchTestCase {
           @Override
           public void merge(ResponseBuilder rb, ShardRequest sreq) {}
 
+          @Override
           public boolean mergesIds() {
             return false;
           }
 
+          @Override
           public boolean handlesMergeFields() {
             return false;
           }
 
+          @Override
           public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher) {}
 
           @Override
diff --git a/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java b/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java
index 1cbaee0a957..791a26369af 100644
--- a/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/RankQueryTestPlugin.java
@@ -69,6 +69,7 @@ import org.apache.solr.util.SolrResponseUtil;
 
 public class RankQueryTestPlugin extends QParserPlugin {
 
+  @Override
   public QParser createParser(
       String query, SolrParams localParams, SolrParams params, SolrQueryRequest req) {
     return new TestRankQueryParser(query, localParams, params, req);
@@ -81,6 +82,7 @@ public class RankQueryTestPlugin extends QParserPlugin {
       super(query, localParams, params, req);
     }
 
+    @Override
     public Query parse() {
 
       int mergeStrategy = localParams.getInt("mergeStrategy", 0);
@@ -95,10 +97,12 @@ public class RankQueryTestPlugin extends QParserPlugin {
     private int collector;
     private Query q;
 
+    @Override
     public int hashCode() {
       return collector + q.hashCode();
     }
 
+    @Override
     public boolean equals(Object o) {
       if (o instanceof TestRankQuery) {
         TestRankQuery trq = (TestRankQuery) o;
@@ -109,6 +113,7 @@ public class RankQueryTestPlugin extends QParserPlugin {
       return false;
     }
 
+    @Override
     public Weight createWeight(IndexSearcher indexSearcher, ScoreMode scoreMode, float boost)
         throws IOException {
       return q.createWeight(indexSearcher, scoreMode, boost);
@@ -122,6 +127,7 @@ public class RankQueryTestPlugin extends QParserPlugin {
       return q.toString(field);
     }
 
+    @Override
     public RankQuery wrap(Query q) {
       this.q = q;
       return this;
@@ -132,12 +138,14 @@ public class RankQueryTestPlugin extends QParserPlugin {
       this.mergeStrategy = mergeStrategy;
     }
 
+    @Override
     public TopDocsCollector<ScoreDoc> getTopDocsCollector(
         int len, QueryCommand cmd, IndexSearcher searcher) {
       if (collector == 0) return new TestCollector(null);
       else return new TestCollector1(null);
     }
 
+    @Override
     public MergeStrategy getMergeStrategy() {
       if (mergeStrategy == 0) return new TestMergeStrategy();
       else return new TestMergeStrategy1();
@@ -146,20 +154,25 @@ public class RankQueryTestPlugin extends QParserPlugin {
 
   static class TestMergeStrategy implements MergeStrategy {
 
+    @Override
     public int getCost() {
       return 1;
     }
 
+    @Override
     public boolean mergesIds() {
       return true;
     }
 
+    @Override
     public boolean handlesMergeFields() {
       return false;
     }
 
+    @Override
     public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher) {}
 
+    @Override
     public void merge(ResponseBuilder rb, ShardRequest sreq) {
 
       // id to shard mapping, to eliminate any accidental dups
@@ -328,18 +341,22 @@ public class RankQueryTestPlugin extends QParserPlugin {
 
   static class TestMergeStrategy1 implements MergeStrategy {
 
+    @Override
     public int getCost() {
       return 1;
     }
 
+    @Override
     public boolean mergesIds() {
       return true;
     }
 
+    @Override
     public boolean handlesMergeFields() {
       return true;
     }
 
+    @Override
     public void handleMergeFields(ResponseBuilder rb, SolrIndexSearcher searcher)
         throws IOException {
       SolrQueryRequest req = rb.req;
@@ -470,6 +487,7 @@ public class RankQueryTestPlugin extends QParserPlugin {
       }
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void merge(ResponseBuilder rb, ShardRequest sreq) {
 
@@ -706,6 +724,7 @@ public class RankQueryTestPlugin extends QParserPlugin {
         @Override
         public void setScorer(Scorable scorer) {}
 
+        @Override
         public void collect(int doc) throws IOException {
           long value;
           if (values.advanceExact(doc)) {
@@ -718,13 +737,16 @@ public class RankQueryTestPlugin extends QParserPlugin {
       };
     }
 
+    @Override
     public int topDocsSize() {
       return list.size();
     }
 
+    @Override
     public TopDocs topDocs() {
       list.sort(
           new Comparator<>() {
+            @Override
             public int compare(ScoreDoc s1, ScoreDoc s2) {
               if (s1.score == s2.score) {
                 return 0;
@@ -739,10 +761,12 @@ public class RankQueryTestPlugin extends QParserPlugin {
       return new TopDocs(new TotalHits(list.size(), TotalHits.Relation.EQUAL_TO), scoreDocs);
     }
 
+    @Override
     public TopDocs topDocs(int start, int len) {
       return topDocs();
     }
 
+    @Override
     public int getTotalHits() {
       return list.size();
     }
@@ -773,19 +797,23 @@ public class RankQueryTestPlugin extends QParserPlugin {
           this.scorer = scorer;
         }
 
+        @Override
         public void collect(int doc) throws IOException {
           list.add(new ScoreDoc(doc + base, scorer.score()));
         }
       };
     }
 
+    @Override
     public int topDocsSize() {
       return list.size();
     }
 
+    @Override
     public TopDocs topDocs() {
       list.sort(
           new Comparator<>() {
+            @Override
             public int compare(ScoreDoc s1, ScoreDoc s2) {
               if (s1.score == s2.score) {
                 return 0;
@@ -800,10 +828,12 @@ public class RankQueryTestPlugin extends QParserPlugin {
       return new TopDocs(new TotalHits(list.size(), TotalHits.Relation.EQUAL_TO), scoreDocs);
     }
 
+    @Override
     public TopDocs topDocs(int start, int len) {
       return topDocs();
     }
 
+    @Override
     public int getTotalHits() {
       return list.size();
     }
diff --git a/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java b/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java
index 2a13531e345..a93caafb194 100644
--- a/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java
+++ b/solr/core/src/test/org/apache/solr/search/SolrIndexSearcherTest.java
@@ -69,6 +69,7 @@ public class SolrIndexSearcherTest extends SolrTestCaseJ4 {
     return numbers.toString();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     assertU(
@@ -299,6 +300,7 @@ public class SolrIndexSearcherTest extends SolrTestCaseJ4 {
       this.fixedScore = fixedScore;
     }
 
+    @Override
     public Weight createWeight(IndexSearcher indexSearcher, ScoreMode scoreMode, float boost)
         throws IOException {
       return q.createWeight(indexSearcher, scoreMode, boost);
@@ -355,6 +357,7 @@ public class SolrIndexSearcherTest extends SolrTestCaseJ4 {
       return null;
     }
 
+    @Override
     public RankQuery wrap(Query q) {
       this.q = q;
       return this;
diff --git a/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java b/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
index 6c0b6a4d908..e59cb2a109e 100644
--- a/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
+++ b/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java
@@ -314,6 +314,7 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
 
       Thread t =
           new Thread() {
+            @Override
             public void run() {
               try {
                 doQuery(newCore);
@@ -386,6 +387,7 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
 
       Thread t =
           new Thread() {
+            @Override
             public void run() {
               try {
                 doQuery(newCore);
diff --git a/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java b/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java
index b3bfc30f0e7..e2c6180c33c 100644
--- a/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java
+++ b/solr/core/src/test/org/apache/solr/search/stats/TestBaseStatsCache.java
@@ -33,6 +33,7 @@ public abstract class TestBaseStatsCache extends TestDefaultStatsCache {
     System.setProperty("solr.statsCache", getStatsCacheClassName());
   }
 
+  @Override
   public void distribTearDown() throws Exception {
     super.distribTearDown();
     System.clearProperty("solr.statsCache");
diff --git a/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java b/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java
index 50db3e0e44c..845154009ab 100644
--- a/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java
+++ b/solr/core/src/test/org/apache/solr/search/stats/TestDefaultStatsCache.java
@@ -35,6 +35,7 @@ public class TestDefaultStatsCache extends BaseDistributedSearchTestCase {
     System.setProperty("solr.statsCache", LocalStatsCache.class.getName());
   }
 
+  @Override
   public void distribTearDown() throws Exception {
     super.distribTearDown();
     System.clearProperty("solr.statsCache");
diff --git a/solr/core/src/test/org/apache/solr/security/AuditLoggerPluginTest.java b/solr/core/src/test/org/apache/solr/security/AuditLoggerPluginTest.java
index b9499caffb0..9b82e6d0585 100644
--- a/solr/core/src/test/org/apache/solr/security/AuditLoggerPluginTest.java
+++ b/solr/core/src/test/org/apache/solr/security/AuditLoggerPluginTest.java
@@ -125,6 +125,7 @@ public class AuditLoggerPluginTest extends SolrTestCaseJ4 {
   private MockAuditLoggerPlugin plugin;
   private HashMap<String, Object> config;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java b/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java
index a7c679265cd..c961b1775b8 100644
--- a/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java
+++ b/solr/core/src/test/org/apache/solr/security/CertAuthPluginTest.java
@@ -41,6 +41,7 @@ public class CertAuthPluginTest extends SolrTestCaseJ4 {
     SolrTestCaseJ4.assumeWorkingMockito();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/security/TestAuthorizationFramework.java b/solr/core/src/test/org/apache/solr/security/TestAuthorizationFramework.java
index 81d2dfbafc1..3fdda76715d 100644
--- a/solr/core/src/test/org/apache/solr/security/TestAuthorizationFramework.java
+++ b/solr/core/src/test/org/apache/solr/security/TestAuthorizationFramework.java
@@ -46,6 +46,7 @@ public class TestAuthorizationFramework extends AbstractFullDistribZkTestBase {
 
   static final int TIMEOUT = 10000;
 
+  @Override
   public void distribSetUp() throws Exception {
     super.distribSetUp();
     try (ZkStateReader zkStateReader =
diff --git a/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java b/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java
index f38da87e46b..a0a5fcb57a4 100644
--- a/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java
+++ b/solr/core/src/test/org/apache/solr/update/MaxSizeAutoCommitTest.java
@@ -90,6 +90,7 @@ public class MaxSizeAutoCommitTest extends SolrTestCaseJ4 {
     updateRequestHandler.init(null);
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     if (null != monitor) {
diff --git a/solr/core/src/test/org/apache/solr/update/MockingHttp2SolrClient.java b/solr/core/src/test/org/apache/solr/update/MockingHttp2SolrClient.java
index d412c278e3b..12bfcacf605 100644
--- a/solr/core/src/test/org/apache/solr/update/MockingHttp2SolrClient.java
+++ b/solr/core/src/test/org/apache/solr/update/MockingHttp2SolrClient.java
@@ -58,6 +58,7 @@ public class MockingHttp2SolrClient extends Http2SolrClient {
       this.idleTimeout(config.getDistributedSocketTimeout());
     }
 
+    @Override
     public MockingHttp2SolrClient build() {
       return new MockingHttp2SolrClient(null, this);
     }
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
index f4b32d93522..2a59bbb8312 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
@@ -68,6 +68,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
     initCore(solrConfigFileName, schemaFileName);
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     System.clearProperty("mergePolicySort");
diff --git a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java
index cd0fab5c1c5..fc42d5405cd 100644
--- a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java
+++ b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java
@@ -1179,6 +1179,7 @@ public class TestInPlaceUpdatesStandalone extends SolrTestCaseJ4 {
   /** sentinel object for {@link #checkReplay} */
   public Object SOFTCOMMIT =
       new Object() {
+        @Override
         public String toString() {
           return "SOFTCOMMIT";
         }
@@ -1186,6 +1187,7 @@ public class TestInPlaceUpdatesStandalone extends SolrTestCaseJ4 {
   /** sentinel object for {@link #checkReplay} */
   public Object HARDCOMMIT =
       new Object() {
+        @Override
         public String toString() {
           return "HARDCOMMIT";
         }
diff --git a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
index 38b1957ea70..363dbe14945 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateJavabinTest.java
@@ -68,6 +68,7 @@ public class AtomicUpdateJavabinTest extends SolrCloudTestCase {
     cluster.waitForActiveCollection(COLLECTION, 1, 1);
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/core/src/test/org/apache/solr/update/processor/RegexBoostProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/RegexBoostProcessorTest.java
index cd2f1dba572..b7bd389405a 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/RegexBoostProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/RegexBoostProcessorTest.java
@@ -62,6 +62,7 @@ public class RegexBoostProcessorTest extends SolrTestCaseJ4 {
     factory = null;
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     document = new SolrInputDocument();
diff --git a/solr/core/src/test/org/apache/solr/util/AuthToolTest.java b/solr/core/src/test/org/apache/solr/util/AuthToolTest.java
index 1f00461f67e..718b4fc7f99 100644
--- a/solr/core/src/test/org/apache/solr/util/AuthToolTest.java
+++ b/solr/core/src/test/org/apache/solr/util/AuthToolTest.java
@@ -42,12 +42,14 @@ public class AuthToolTest extends SolrCloudTestCase {
         .configure();
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
     dir = createTempDir("AuthToolTest").toAbsolutePath();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java b/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java
index d1ca49d821c..23a67a8daab 100644
--- a/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java
+++ b/solr/core/src/test/org/apache/solr/util/TestRTimerTree.java
@@ -30,10 +30,12 @@ public class TestRTimerTree extends SolrTestCase {
 
     private long start;
 
+    @Override
     public void start() {
       start = systemTime;
     }
 
+    @Override
     public double elapsed() {
       return systemTime - start;
     }
diff --git a/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java
index 3503706c2eb..0b247dd78c0 100644
--- a/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java
+++ b/solr/core/src/test/org/apache/solr/util/TestSolrCLIRunExample.java
@@ -230,6 +230,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
       standaloneSolr = new JettySolrRunner(solrHomeDir.getAbsolutePath(), "/solr", port);
       Thread bg =
           new Thread() {
+            @Override
             public void run() {
               try {
                 standaloneSolr.start();
@@ -294,6 +295,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
 
   protected List<Closeable> closeables = new ArrayList<>();
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java b/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java
index eb5633acd56..d7bf4228011 100644
--- a/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java
+++ b/solr/core/src/test/org/apache/solr/util/TestSystemIdResolver.java
@@ -28,6 +28,7 @@ import org.xml.sax.InputSource;
 
 public class TestSystemIdResolver extends SolrTestCaseJ4 {
 
+  @Override
   public void tearDown() throws Exception {
     System.clearProperty(SolrResourceLoader.SOLR_ALLOW_UNSAFE_RESOURCELOADING_PARAM);
     super.tearDown();
diff --git a/solr/core/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java b/solr/core/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java
index 82456d716ce..42110c2aec5 100644
--- a/solr/core/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java
+++ b/solr/core/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java
@@ -55,6 +55,7 @@ public class SSLConfigurationsTest extends SolrTestCase {
           SSLConfigurations.SysProps.SSL_CLIENT_KEY_STORE_PASSWORD,
           SSLConfigurations.SysProps.SSL_CLIENT_TRUST_STORE_PASSWORD);
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/ExpressionComparator.java b/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/ExpressionComparator.java
index 17069b1c940..5b981062455 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/ExpressionComparator.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/ExpressionComparator.java
@@ -31,6 +31,7 @@ public class ExpressionComparator<T extends Comparable<T>> extends FacetResultsC
     this.expression = expression;
   }
 
+  @Override
   @SuppressWarnings("unchecked")
   public int compare(FacetBucket b1, FacetBucket b2) {
     T t1 = (T) b1.getResult(expression);
diff --git a/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/FacetResultsComparator.java b/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/FacetResultsComparator.java
index 62702053f5a..a8abc2001c3 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/FacetResultsComparator.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/analytics/facet/compare/FacetResultsComparator.java
@@ -43,5 +43,6 @@ public abstract class FacetResultsComparator implements Comparator<FacetBucket>
    * @param b1 the first bucket to compare
    * @param b2 the second bucket to compare
    */
+  @Override
   public abstract int compare(FacetBucket b1, FacetBucket b2);
 }
diff --git a/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/DateParseFunction.java b/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/DateParseFunction.java
index eb1ae409a8d..c97a3f4e6e5 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/DateParseFunction.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/DateParseFunction.java
@@ -210,6 +210,7 @@ public class DateParseFunction {
           });
     }
 
+    @Override
     public String getName() {
       return name;
     }
diff --git a/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/LambdaFunction.java b/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/LambdaFunction.java
index d114ab0a349..01b79e5b337 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/LambdaFunction.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/analytics/function/mapping/LambdaFunction.java
@@ -1385,6 +1385,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(boolean paramValue) {
       if (!exists) {
         exists = true;
@@ -1753,6 +1754,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(int paramValue) {
       if (!exists) {
         exists = true;
@@ -2114,6 +2116,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(long paramValue) {
       if (!exists) {
         exists = true;
@@ -2476,6 +2479,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(float paramValue) {
       if (!exists) {
         exists = true;
@@ -2838,6 +2842,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(double paramValue) {
       if (!exists) {
         exists = true;
@@ -3205,6 +3210,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(long paramValue) {
       if (!exists) {
         exists = true;
@@ -3567,6 +3573,7 @@ public class LambdaFunction {
       return exists;
     }
 
+    @Override
     public void accept(String paramValue) {
       if (!exists) {
         exists = true;
diff --git a/solr/modules/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java b/solr/modules/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java
index 6da7ca79ddf..2e17e373d3b 100644
--- a/solr/modules/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java
+++ b/solr/modules/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java
@@ -72,6 +72,7 @@ public class AnalyticsHandler extends RequestHandlerBase
     AnalyticsRequestParser.init();
   }
 
+  @Override
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
 
     SolrQueryTimeoutImpl.set(req);
diff --git a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/RequestContinuesRecorderAuthenticationHandler.java b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/RequestContinuesRecorderAuthenticationHandler.java
index 7ad3b1a89ba..2d18ddbf605 100644
--- a/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/RequestContinuesRecorderAuthenticationHandler.java
+++ b/solr/modules/hadoop-auth/src/java/org/apache/solr/security/hadoop/RequestContinuesRecorderAuthenticationHandler.java
@@ -40,18 +40,22 @@ public class RequestContinuesRecorderAuthenticationHandler implements Authentica
     this.authHandler = authHandler;
   }
 
+  @Override
   public String getType() {
     return authHandler.getType();
   }
 
+  @Override
   public void init(Properties config) throws ServletException {
     // authHandler has already been init'ed, nothing to do here
   }
 
+  @Override
   public void destroy() {
     authHandler.destroy();
   }
 
+  @Override
   public boolean managementOperation(
       AuthenticationToken token, HttpServletRequest request, HttpServletResponse response)
       throws IOException, AuthenticationException {
@@ -62,6 +66,7 @@ public class RequestContinuesRecorderAuthenticationHandler implements Authentica
     return result;
   }
 
+  @Override
   public AuthenticationToken authenticate(HttpServletRequest request, HttpServletResponse response)
       throws IOException, AuthenticationException {
     return authHandler.authenticate(request, response);
diff --git a/solr/modules/hadoop-auth/src/java/org/apache/solr/util/configuration/providers/hadoop/HadoopSSLCredentialProvider.java b/solr/modules/hadoop-auth/src/java/org/apache/solr/util/configuration/providers/hadoop/HadoopSSLCredentialProvider.java
index 1b51d558134..2c37615fc57 100644
--- a/solr/modules/hadoop-auth/src/java/org/apache/solr/util/configuration/providers/hadoop/HadoopSSLCredentialProvider.java
+++ b/solr/modules/hadoop-auth/src/java/org/apache/solr/util/configuration/providers/hadoop/HadoopSSLCredentialProvider.java
@@ -56,6 +56,7 @@ public class HadoopSSLCredentialProvider extends AbstractSSLCredentialProvider {
     return DEFAULT_CREDENTIAL_KEY_MAP;
   }
 
+  @Override
   protected String getCredential(String keystoreKey) {
     try {
       char[] password = hadoopConfigurationProvider.getPassword(keystoreKey);
diff --git a/solr/modules/hadoop-auth/src/test/org/apache/solr/client/solrj/impl/Krb5HttpClientUtils.java b/solr/modules/hadoop-auth/src/test/org/apache/solr/client/solrj/impl/Krb5HttpClientUtils.java
index 7a7733fc039..d98e9677a7a 100644
--- a/solr/modules/hadoop-auth/src/test/org/apache/solr/client/solrj/impl/Krb5HttpClientUtils.java
+++ b/solr/modules/hadoop-auth/src/test/org/apache/solr/client/solrj/impl/Krb5HttpClientUtils.java
@@ -46,6 +46,7 @@ public class Krb5HttpClientUtils {
     SPNEGOAuthentication authentication =
         new SPNEGOAuthentication(null) {
 
+          @Override
           public boolean matches(String type, URI uri, String realm) {
             return this.getType().equals(type);
           }
diff --git a/solr/modules/hadoop-auth/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java b/solr/modules/hadoop-auth/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java
index 12ee42ed58d..140c726802c 100644
--- a/solr/modules/hadoop-auth/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java
+++ b/solr/modules/hadoop-auth/src/test/org/apache/solr/util/configuration/SSLConfigurationsTest.java
@@ -56,6 +56,7 @@ public class SSLConfigurationsTest extends SolrTestCaseJ4 {
           SSLConfigurations.SysProps.SSL_CLIENT_KEY_STORE_PASSWORD,
           CREDENTIAL_PROVIDER_PATH);
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/HdfsDirectoryFactory.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/HdfsDirectoryFactory.java
index 9ad61417706..89336902226 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/HdfsDirectoryFactory.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/HdfsDirectoryFactory.java
@@ -418,6 +418,7 @@ public class HdfsDirectoryFactory extends CachingDirectoryFactory
     return conf;
   }
 
+  @Override
   protected synchronized void removeDirectory(final CacheValue cacheValue) {
     FileSystem fileSystem = getCachedFileSystem(cacheValue.path);
 
@@ -691,6 +692,7 @@ public class HdfsDirectoryFactory extends CachingDirectoryFactory
   }
 
   // perform an atomic rename if possible
+  @Override
   public void renameWithOverwrite(Directory dir, String fileName, String toName)
       throws IOException {
     String hdfsDirPath = getPath(dir);
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/backup/repository/HdfsBackupRepository.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/backup/repository/HdfsBackupRepository.java
index a4bee9d6817..bb0feff5266 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/backup/repository/HdfsBackupRepository.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/backup/repository/HdfsBackupRepository.java
@@ -104,6 +104,7 @@ public class HdfsBackupRepository implements BackupRepository {
     }
   }
 
+  @Override
   public void close() throws IOException {
     if (this.fileSystem != null) {
       this.fileSystem.close();
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/snapshots/SolrSnapshotsTool.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/snapshots/SolrSnapshotsTool.java
index 4b17fbacbf0..4ff0fde9c80 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/snapshots/SolrSnapshotsTool.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/snapshots/SolrSnapshotsTool.java
@@ -599,6 +599,7 @@ public class SolrSnapshotsTool implements Closeable, CLIO {
 
   private static class OptionComarator<T extends Option> implements Comparator<T> {
 
+    @Override
     public int compare(T o1, T o2) {
       String s1 = o1.hasLongOpt() ? o1.getLongOpt() : o1.getOpt();
       String s2 = o2.hasLongOpt() ? o2.getLongOpt() : o2.getOpt();
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 51e7877c656..a86bcee029f 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
@@ -377,6 +377,7 @@ public class BlockDirectory extends FilterDirectory implements ShutdownAwareDire
     return dest;
   }
 
+  @Override
   public void deleteFile(String name) throws IOException {
     cache.delete(getFileCacheName(name));
     super.deleteFile(name);
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java
index dd11e4b4be9..83664b30670 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsTransactionLog.java
@@ -352,6 +352,7 @@ public class HdfsTransactionLog extends TransactionLog {
     }
   }
 
+  @Override
   public String toString() {
     return "hdfs tlog{file=" + tlogFile.toString() + " refcount=" + refcount.get() + "}";
   }
@@ -365,6 +366,7 @@ public class HdfsTransactionLog extends TransactionLog {
     return new HDFSLogReader(startingPos);
   }
 
+  @Override
   public LogReader getSortedReader(long startingPos) {
     return new HDFSSortedLogReader(startingPos);
   }
@@ -407,6 +409,7 @@ public class HdfsTransactionLog extends TransactionLog {
      * @return The log record, or null if EOF
      * @throws IOException If there is a low-level I/O error.
      */
+    @Override
     public Object next() throws IOException, InterruptedException {
       long pos = fis.position();
 
@@ -451,6 +454,7 @@ public class HdfsTransactionLog extends TransactionLog {
       return o;
     }
 
+    @Override
     public void close() {
       try {
         fis.close();
@@ -570,6 +574,7 @@ public class HdfsTransactionLog extends TransactionLog {
      * @return The log record, or null if EOF
      * @throws IOException If there is a low-level I/O error.
      */
+    @Override
     public Object next() throws IOException {
       if (prevPos <= 0) return null;
 
@@ -611,10 +616,12 @@ public class HdfsTransactionLog extends TransactionLog {
     }
 
     /* returns the position in the log file of the last record returned by next() */
+    @Override
     public long position() {
       return prevPos + 4; // skip the length
     }
 
+    @Override
     public void close() {
       try {
         fis.close();
diff --git a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java
index 19c6a13fcc5..f42b07a824a 100644
--- a/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java
+++ b/solr/modules/hdfs/src/java/org/apache/solr/hdfs/update/HdfsUpdateLog.java
@@ -437,6 +437,7 @@ public class HdfsUpdateLog extends UpdateLog {
   // return true;
   // }
 
+  @Override
   public String toString() {
     return "HDFSUpdateLog{state=" + getState() + ", tlog=" + tlog + "}";
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/hadoop/fs/RawLocalFileSystem.java b/solr/modules/hdfs/src/test/org/apache/hadoop/fs/RawLocalFileSystem.java
index 3c8a819cf9f..c59c9079a1c 100644
--- a/solr/modules/hdfs/src/test/org/apache/hadoop/fs/RawLocalFileSystem.java
+++ b/solr/modules/hdfs/src/test/org/apache/hadoop/fs/RawLocalFileSystem.java
@@ -990,6 +990,7 @@ public class RawLocalFileSystem extends FileSystem {
    * @param opts Constraints that determine the validity of the
    *            {@link PathHandle} reference.
    */
+  @Override
   protected PathHandle createPathHandle(FileStatus stat,
       Options.HandleOpt... opts) {
     if (stat.isDirectory() || stat.isSymlink()) {
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsChaosMonkeySafeLeaderTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsChaosMonkeySafeLeaderTest.java
index dbeebf95ffe..e7dbee6b96f 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsChaosMonkeySafeLeaderTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsChaosMonkeySafeLeaderTest.java
@@ -73,6 +73,7 @@ public class HdfsChaosMonkeySafeLeaderTest extends AbstractChaosMonkeySafeLeader
     return HdfsTestUtil.getDataDir(dfsCluster, dataDir);
   }
 
+  @Override
   protected String getDirectoryFactory() {
     return HdfsDirectoryFactory.class.getCanonicalName();
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsNameNodeFailoverTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsNameNodeFailoverTest.java
index dd7721d7ed4..c77fe3c1d52 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsNameNodeFailoverTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsNameNodeFailoverTest.java
@@ -68,6 +68,7 @@ public class HdfsNameNodeFailoverTest extends AbstractBasicDistributedZkTestBase
     fixShardCount(TEST_NIGHTLY ? 7 : random().nextInt(2) + 1);
   }
 
+  @Override
   protected String getSolrXml() {
     return "solr.xml";
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsRecoverLeaseTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsRecoverLeaseTest.java
index c69b6ad7571..e0d2691b22c 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsRecoverLeaseTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsRecoverLeaseTest.java
@@ -65,11 +65,13 @@ public class HdfsRecoverLeaseTest extends SolrTestCaseJ4 {
     }
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsWriteToMultipleCollectionsTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsWriteToMultipleCollectionsTest.java
index 6eab88e1563..ae8a103ad67 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsWriteToMultipleCollectionsTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/HdfsWriteToMultipleCollectionsTest.java
@@ -93,6 +93,7 @@ public class HdfsWriteToMultipleCollectionsTest extends AbstractBasicDistributed
     fixShardCount(3);
   }
 
+  @Override
   protected String getSolrXml() {
     return "solr.xml";
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java
index 71a16a006cd..98a1d771df9 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/SharedFileSystemAutoReplicaFailoverTest.java
@@ -135,6 +135,7 @@ public class SharedFileSystemAutoReplicaFailoverTest extends AbstractFullDistrib
     useJettyDataDir = false;
   }
 
+  @Override
   protected String getSolrXml() {
     return "solr.xml";
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/StressHdfsTest.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/StressHdfsTest.java
index 68cee00598b..b437e77c30c 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/StressHdfsTest.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/StressHdfsTest.java
@@ -95,6 +95,7 @@ public class StressHdfsTest extends AbstractBasicDistributedZkTestBase {
     testRestartIntoSafeMode = random().nextBoolean();
   }
 
+  @Override
   protected String getSolrXml() {
     return "solr.xml";
   }
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/api/collections/TestHdfsCloudBackupRestore.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/api/collections/TestHdfsCloudBackupRestore.java
index 5afb9cbdb72..dcd2c73f8ac 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/api/collections/TestHdfsCloudBackupRestore.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/cloud/api/collections/TestHdfsCloudBackupRestore.java
@@ -195,6 +195,7 @@ public class TestHdfsCloudBackupRestore extends AbstractCloudBackupRestoreTestCa
     return null;
   }
 
+  @Override
   protected void testConfigBackupOnly(String configName, String collectionName) throws Exception {
     String backupName = "configonlybackup";
     CloudSolrClient solrClient = cluster.getSolrClient();
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 b28a510535c..780d4c566e4 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
@@ -79,6 +79,7 @@ public class HdfsDirectoryTest extends SolrTestCaseJ4 {
     }
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -94,6 +95,7 @@ public class HdfsDirectoryTest extends SolrTestCaseJ4 {
     random = random();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
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 69284441ac5..6c2db998113 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
@@ -99,6 +99,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 {
   private Random random;
   private MapperCache mapperCache;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -121,6 +122,7 @@ public class BlockDirectoryTest extends SolrTestCaseJ4 {
     random = random();
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/update/TestHdfsUpdateLog.java b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/update/TestHdfsUpdateLog.java
index 4b58b558ec5..793093d4e30 100644
--- a/solr/modules/hdfs/src/test/org/apache/solr/hdfs/update/TestHdfsUpdateLog.java
+++ b/solr/modules/hdfs/src/test/org/apache/solr/hdfs/update/TestHdfsUpdateLog.java
@@ -102,6 +102,7 @@ public class TestHdfsUpdateLog extends SolrTestCaseJ4 {
 
     Thread thread =
         new Thread() {
+          @Override
           public void run() {
             int cnt = 0;
             while (true) {
@@ -120,6 +121,7 @@ public class TestHdfsUpdateLog extends SolrTestCaseJ4 {
 
     Thread thread2 =
         new Thread() {
+          @Override
           public void run() {
             int cnt = 0;
             while (true) {
diff --git a/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTAuthPluginTest.java b/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTAuthPluginTest.java
index ebbfcd2a114..9fa5e09d252 100644
--- a/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTAuthPluginTest.java
+++ b/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTAuthPluginTest.java
@@ -156,6 +156,7 @@ public class JWTAuthPluginTest extends SolrTestCaseJ4 {
     return claims;
   }
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTIssuerConfigTest.java b/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTIssuerConfigTest.java
index d51ae820d92..29e70780f80 100644
--- a/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTIssuerConfigTest.java
+++ b/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTIssuerConfigTest.java
@@ -43,6 +43,7 @@ public class JWTIssuerConfigTest extends SolrTestCase {
   private Map<String, Object> testIssuerConfigMap;
   private String testIssuerJson;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
@@ -68,6 +69,7 @@ public class JWTIssuerConfigTest extends SolrTestCase {
             + "  \"authorizationEndpoint\":\"https://issuer/authz\"}";
   }
 
+  @Override
   @After
   public void tearDown() throws Exception {
     super.tearDown();
diff --git a/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTVerificationkeyResolverTest.java b/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTVerificationkeyResolverTest.java
index 3de70e6b9d2..216154efbb6 100644
--- a/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTVerificationkeyResolverTest.java
+++ b/solr/modules/jwt-auth/src/test/org/apache/solr/security/jwt/JWTVerificationkeyResolverTest.java
@@ -60,6 +60,7 @@ public class JWTVerificationkeyResolverTest extends SolrTestCaseJ4 {
   private List<JsonWebKey> keysToReturnFromSecondJwk;
   private Iterator<List<JsonWebKey>> refreshSequenceForSecondJwk;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/modules/langid/src/test/org/apache/solr/update/processor/SolrInputDocumentReaderTest.java b/solr/modules/langid/src/test/org/apache/solr/update/processor/SolrInputDocumentReaderTest.java
index 8bacd60b805..1a55cd2d0c8 100644
--- a/solr/modules/langid/src/test/org/apache/solr/update/processor/SolrInputDocumentReaderTest.java
+++ b/solr/modules/langid/src/test/org/apache/solr/update/processor/SolrInputDocumentReaderTest.java
@@ -26,6 +26,7 @@ public class SolrInputDocumentReaderTest extends SolrTestCase {
   private SolrInputDocument doc;
   private String[] allFields;
 
+  @Override
   @Before
   public void setUp() throws Exception {
     super.setUp();
diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/interleaving/algorithms/TeamDraftInterleaving.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/interleaving/algorithms/TeamDraftInterleaving.java
index ab500be79c2..af96259660c 100644
--- a/solr/modules/ltr/src/java/org/apache/solr/ltr/interleaving/algorithms/TeamDraftInterleaving.java
+++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/interleaving/algorithms/TeamDraftInterleaving.java
@@ -78,6 +78,7 @@ public class TeamDraftInterleaving implements Interleaving {
    * @param rerankedB a ranked list of search results produced by a ranking model B
    * @return the interleaved ranking list
    */
+  @Override
   public InterleavingResult interleave(ScoreDoc[] rerankedA, ScoreDoc[] rerankedB) {
     List<ScoreDoc> interleavedResults = new ArrayList<>();
     HashSet<Integer> alreadyAdded = new HashSet<>();
diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/model/NeuralNetworkModel.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/model/NeuralNetworkModel.java
index de769586c67..c4d4f201277 100644
--- a/solr/modules/ltr/src/java/org/apache/solr/ltr/model/NeuralNetworkModel.java
+++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/model/NeuralNetworkModel.java
@@ -212,6 +212,7 @@ public class NeuralNetworkModel extends LTRScoringModel {
       }
     }
 
+    @Override
     public float[] calculateOutput(float[] inputVec) {
 
       float[] outputVec = new float[this.matrixRows];
@@ -227,6 +228,7 @@ public class NeuralNetworkModel extends LTRScoringModel {
       return outputVec;
     }
 
+    @Override
     public int validate(int inputDim) throws ModelException {
       if (this.numUnits != this.matrixRows) {
         throw new ModelException(
@@ -279,6 +281,7 @@ public class NeuralNetworkModel extends LTRScoringModel {
       return this.matrixRows;
     }
 
+    @Override
     public String describe() {
       final StringBuilder sb = new StringBuilder();
       sb.append("(matrix=")
diff --git a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java
index bc992cfeb1b..96a68e67f66 100644
--- a/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java
+++ b/solr/modules/ltr/src/test/org/apache/solr/ltr/model/TestAdapterModel.java
@@ -134,6 +134,7 @@ public class TestAdapterModel extends TestRerankBase {
       }
     }
 
+    @Override
     public void init(SolrResourceLoader solrResourceLoader) throws ModelException {
       super.init(solrResourceLoader);
       try (InputStream is = solrResourceLoader.openResource(answerFileName);
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
index 1ff4362da40..86f87f3b6d3 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
@@ -45,24 +45,29 @@ class LimitStream extends TupleStream {
     this.count = 0;
   }
 
+  @Override
   public void open() throws IOException {
     this.stream.open();
   }
 
+  @Override
   public void close() throws IOException {
     this.stream.close();
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> children = new ArrayList<>();
     children.add(stream);
     return children;
   }
 
+  @Override
   public StreamComparator getStreamSort() {
     return stream.getStreamSort();
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     stream.setStreamContext(context);
   }
@@ -78,6 +83,7 @@ class LimitStream extends TupleStream {
         .withExpressionType(Explanation.ExpressionType.STREAM_DECORATOR);
   }
 
+  @Override
   public Tuple read() throws IOException {
 
     if (count == 0 && offset > 0) {
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
index 4f7533f289c..1870d21824d 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
@@ -59,6 +59,7 @@ public class SQLHandler extends RequestHandlerBase
 
   private boolean isCloud = false;
 
+  @Override
   public void inform(SolrCore core) {
     CoreContainer coreContainer = core.getCoreContainer();
 
@@ -76,6 +77,7 @@ public class SQLHandler extends RequestHandlerBase
     return PermissionNameProvider.Name.READ_PERM;
   }
 
+  @Override
   public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
     ModifiableSolrParams params = new ModifiableSolrParams(req.getParams());
     params = adjustParams(params);
@@ -133,6 +135,7 @@ public class SQLHandler extends RequestHandlerBase
     }
   }
 
+  @Override
   public String getDescription() {
     return "SQLHandler";
   }
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
index 7c29ddca609..6ff6ff95a84 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
@@ -89,6 +89,7 @@ class SolrAggregate extends Aggregate implements SolrRel {
     return new SolrAggregate(getCluster(), traitSet, hints, input, groupSet, groupSets, aggCalls);
   }
 
+  @Override
   public void implement(Implementor implementor) {
     implementor.visitChild(0, getInput());
 
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
index 8bf3f82faf2..6ec89172b2d 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
@@ -58,6 +58,7 @@ class SolrEnumerator implements Enumerator<Object> {
    *
    * @return A new row from the results
    */
+  @Override
   public Object current() {
     if (fields.size() == 1) {
       return this.getter(current, fields.get(0));
@@ -111,6 +112,7 @@ class SolrEnumerator implements Enumerator<Object> {
     return val;
   }
 
+  @Override
   public boolean moveNext() {
     try {
       Tuple tuple = this.tupleStream.read();
@@ -126,10 +128,12 @@ class SolrEnumerator implements Enumerator<Object> {
     }
   }
 
+  @Override
   public void reset() {
     throw new UnsupportedOperationException();
   }
 
+  @Override
   public void close() {
     if (this.tupleStream != null) {
       try {
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
index 464a3788cdd..8c2afc51a76 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
@@ -89,10 +89,12 @@ class SolrFilter extends Filter implements SolrRel {
     return super.computeSelfCost(planner, mq).multiplyBy(0.1);
   }
 
+  @Override
   public SolrFilter copy(RelTraitSet traitSet, RelNode input, RexNode condition) {
     return new SolrFilter(getCluster(), traitSet, input, condition);
   }
 
+  @Override
   public void implement(Implementor implementor) {
     implementor.visitChild(0, getInput());
     if (getInput() instanceof SolrAggregate) {
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
index 23edfeb3c65..835d4fea03a 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
@@ -53,6 +53,7 @@ class SolrProject extends Project implements SolrRel {
     return super.computeSelfCost(planner, mq).multiplyBy(0.1);
   }
 
+  @Override
   public void implement(Implementor implementor) {
     implementor.visitChild(0, getInput());
     final SolrRules.RexToSolrTranslator translator =
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
index 5b6dac64584..ea5ceecd6a4 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
@@ -146,6 +146,7 @@ class SolrRules {
       super(LogicalFilter.class, SolrFilterRule::filter, "SolrFilterRule");
     }
 
+    @Override
     public RelNode convert(RelNode rel) {
       final LogicalFilter filter = (LogicalFilter) rel;
       final RelTraitSet traitSet = filter.getTraitSet().replace(out);
@@ -162,6 +163,7 @@ class SolrRules {
       super(LogicalProject.class, "SolrProjectRule");
     }
 
+    @Override
     public RelNode convert(RelNode rel) {
       final LogicalProject project = (LogicalProject) rel;
       final RelNode converted = convert(project.getInput(), out);
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
index 42ada8e8c40..82799d864a7 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
@@ -61,6 +61,7 @@ class SolrSort extends Sort implements SolrRel {
     return new SolrSort(getCluster(), traitSet, input, collation, offset, fetch);
   }
 
+  @Override
   public void implement(Implementor implementor) {
     implementor.visitChild(0, getInput());
 
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
index 577585d80d6..6b3cb67b96b 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
@@ -102,10 +102,12 @@ class SolrTable extends AbstractQueryableTable implements TranslatableTable {
     this.collection = collection;
   }
 
+  @Override
   public String toString() {
     return "SolrTable {" + collection + "}";
   }
 
+  @Override
   public RelDataType getRowType(RelDataTypeFactory typeFactory) {
     if (protoRowType == null) {
       protoRowType = schema.getRelDataType(collection);
@@ -211,6 +213,7 @@ class SolrTable extends AbstractQueryableTable implements TranslatableTable {
 
     return new AbstractEnumerable<>() {
       // Use original fields list to make sure only the fields specified are enumerated
+      @Override
       public Enumerator<Object> enumerator() {
         return new SolrEnumerator(finalStream, fields);
       }
@@ -910,11 +913,13 @@ class SolrTable extends AbstractQueryableTable implements TranslatableTable {
     return new StatsStream(zk, collection, solrParams, metrics);
   }
 
+  @Override
   public <T> Queryable<T> asQueryable(
       QueryProvider queryProvider, SchemaPlus schema, String tableName) {
     return new SolrQueryable<>(queryProvider, schema, this, tableName);
   }
 
+  @Override
   public RelNode toRel(RelOptTable.ToRelContext context, RelOptTable relOptTable) {
     final RelOptCluster cluster = context.getCluster();
     return new SolrTableScan(
@@ -928,6 +933,7 @@ class SolrTable extends AbstractQueryableTable implements TranslatableTable {
       super(queryProvider, schema, table, tableName);
     }
 
+    @Override
     public Enumerator<T> enumerator() {
       @SuppressWarnings("unchecked")
       final Enumerable<T> enumerable = (Enumerable<T>) getTable().query(getProperties());
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
index 92d2f9c4134..f2ae04e33fb 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
@@ -90,6 +90,7 @@ class SolrTableScan extends TableScan implements SolrRel {
             .FILTER_REDUCE_EXPRESSIONS); // prevent AND NOT from being reduced away, see SOLR-15461
   }
 
+  @Override
   public void implement(Implementor implementor) {
     implementor.solrTable = solrTable;
     implementor.table = table;
diff --git a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
index 29b0f4c4679..5bf837d6fb3 100644
--- a/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
@@ -59,6 +59,7 @@ class SolrToEnumerableConverter extends ConverterImpl implements EnumerableRel {
     return super.computeSelfCost(planner, mq).multiplyBy(.1);
   }
 
+  @Override
   public Result implement(EnumerableRelImplementor implementor, Prefer pref) {
     // Generates a call to "query" with the appropriate fields
     final BlockBuilder list = new BlockBuilder();
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SolrZkClient.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SolrZkClient.java
index 05df58bac00..c85719116cd 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SolrZkClient.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/SolrZkClient.java
@@ -780,6 +780,7 @@ public class SolrZkClient implements Closeable {
     out.println(sb.toString());
   }
 
+  @Override
   public void close() {
     if (isClosed) return; // it's okay if we over close - same as solrcore
     isClosed = true;
diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
index 26239784115..f11eccb5430 100644
--- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
+++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java
@@ -935,6 +935,7 @@ public class ZkStateReader implements SolrCloseable {
     return this;
   }
 
+  @Override
   public void close() {
     this.closed = true;
 
@@ -2394,6 +2395,7 @@ public class ZkStateReader implements SolrCloseable {
   }
 
   private class CacheCleaner implements Runnable {
+    @Override
     public void run() {
       while (!Thread.interrupted()) {
         try {
@@ -2421,10 +2423,12 @@ public class ZkStateReader implements SolrCloseable {
     private final String collectionName;
     private final CollectionStateWatcher delegate;
 
+    @Override
     public int hashCode() {
       return collectionName.hashCode() * delegate.hashCode();
     }
 
+    @Override
     public boolean equals(Object other) {
       if (other instanceof DocCollectionAndLiveNodesWatcherWrapper) {
         DocCollectionAndLiveNodesWatcherWrapper that =
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/RoutedAliasTypes.java b/solr/solrj/src/java/org/apache/solr/client/solrj/RoutedAliasTypes.java
index 96490520012..547d0ca2603 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/RoutedAliasTypes.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/RoutedAliasTypes.java
@@ -37,6 +37,7 @@ public enum RoutedAliasTypes {
     }
   },
   DIMENSIONAL {
+    @Override
     public String getSeparatorPrefix() {
       throw new UnsupportedOperationException("dimensions within dimensions are not allowed");
     }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/SolrQuery.java b/solr/solrj/src/java/org/apache/solr/client/solrj/SolrQuery.java
index 73f3b92ad6a..11bd3cf3f7c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/SolrQuery.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/SolrQuery.java
@@ -1336,6 +1336,7 @@ public class SolrQuery extends ModifiableSolrParams {
       return order;
     }
 
+    @Override
     public boolean equals(Object other) {
       if (this == other) return true;
       if (!(other instanceof SortClause)) return false;
@@ -1343,6 +1344,7 @@ public class SolrQuery extends ModifiableSolrParams {
       return this.getItem().equals(that.getItem()) && this.getOrder().equals(that.getOrder());
     }
 
+    @Override
     public int hashCode() {
       return this.getItem().hashCode();
     }
@@ -1355,6 +1357,7 @@ public class SolrQuery extends ModifiableSolrParams {
      *
      * @return a description of the current sort clause
      */
+    @Override
     public String toString() {
       return "["
           + getClass().getSimpleName()
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/SocketProxy.java b/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/SocketProxy.java
index 6d693bc3d43..5dd5d1268f6 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/SocketProxy.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/cloud/SocketProxy.java
@@ -95,6 +95,7 @@ public class SocketProxy {
     doOpen();
   }
 
+  @Override
   public String toString() {
     return "SocketyProxy: port=" + listenPort + "; target=" + target;
   }
@@ -349,6 +350,7 @@ public class SocketProxy {
         pause.get().countDown();
       }
 
+      @Override
       public void run() {
         byte[] buf = new byte[1024];
 
@@ -436,6 +438,7 @@ public class SocketProxy {
       pause.get().countDown();
     }
 
+    @Override
     public void run() {
       try {
         while (!socket.isClosed()) {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
index 376dc29d96e..5f2aa19fa15 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
@@ -102,6 +102,7 @@ public class CloudHttp2SolrClient extends CloudSolrClient {
     super.close();
   }
 
+  @Override
   public LBHttp2SolrClient getLbClient() {
     return lbClient;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
index 9a65997729a..16050935945 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudLegacySolrClient.java
@@ -112,6 +112,7 @@ public class CloudLegacySolrClient extends CloudSolrClient {
     }
   }
 
+  @Override
   protected Map<String, LBSolrClient.Req> createRoutes(
       UpdateRequest updateRequest,
       ModifiableSolrParams routableParams,
@@ -124,6 +125,7 @@ public class CloudLegacySolrClient extends CloudSolrClient {
         : updateRequest.getRoutesToCollection(router, col, urlMap, routableParams, idField);
   }
 
+  @Override
   protected RouteException getRouteException(
       SolrException.ErrorCode serverError,
       NamedList<Throwable> exceptions,
@@ -146,6 +148,7 @@ public class CloudLegacySolrClient extends CloudSolrClient {
     super.close();
   }
 
+  @Override
   public LBHttpSolrClient getLbClient() {
     return lbClient;
   }
@@ -154,6 +157,7 @@ public class CloudLegacySolrClient extends CloudSolrClient {
     return myClient;
   }
 
+  @Override
   public ClusterStateProvider getClusterStateProvider() {
     return stateProvider;
   }
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 76f46c2ceeb..ea4b4d41acb 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
@@ -257,6 +257,7 @@ public class Http2SolrClient extends SolrClient {
     return httpClient;
   }
 
+  @Override
   public void close() {
     // we wait for async requests, so far devs don't want to give sugar for this
     asyncTracker.waitForComplete();
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Krb5HttpClientBuilder.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Krb5HttpClientBuilder.java
index d39f26c2058..d6298b67e4a 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Krb5HttpClientBuilder.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Krb5HttpClientBuilder.java
@@ -75,6 +75,7 @@ public class Krb5HttpClientBuilder implements HttpClientBuilderFactory {
     return getBuilder(HttpClientUtil.getHttpClientBuilder());
   }
 
+  @Override
   public void close() {
     HttpClientUtil.removeRequestInterceptor(bufferedEntityInterceptor);
   }
@@ -88,6 +89,7 @@ public class Krb5HttpClientBuilder implements HttpClientBuilderFactory {
     SPNEGOAuthentication authentication =
         new SPNEGOAuthentication(null) {
 
+          @Override
           public boolean matches(String type, URI uri, String realm) {
             return this.getType().equals(type);
           }
@@ -174,10 +176,12 @@ public class Krb5HttpClientBuilder implements HttpClientBuilderFactory {
         // Get the credentials from the JAAS configuration rather than here
         Credentials useJaasCreds =
             new Credentials() {
+              @Override
               public String getPassword() {
                 return null;
               }
 
+              @Override
               public Principal getUserPrincipal() {
                 return null;
               }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrPortAwareCookieSpecFactory.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrPortAwareCookieSpecFactory.java
index 9da118fd8b6..668fcd2ccea 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrPortAwareCookieSpecFactory.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrPortAwareCookieSpecFactory.java
@@ -83,6 +83,7 @@ public class SolrPortAwareCookieSpecFactory implements CookieSpecFactory, Cookie
    */
   public static class PortAwareDomainHandler extends NetscapeDomainHandler {
 
+    @Override
     public void validate(final Cookie cookie, final CookieOrigin origin)
         throws MalformedCookieException {
       if (origin != null && origin.getHost() != null && cookie != null) {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/ModelCache.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/ModelCache.java
index eac3d187714..1f22acdde33 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/ModelCache.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/ModelCache.java
@@ -125,6 +125,7 @@ public class ModelCache {
       this.maxSize = maxSize;
     }
 
+    @Override
     public boolean removeEldestEntry(Map.Entry<String, Model> eldest) {
       if (size() > maxSize) {
         return true;
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 46701a5e50a..4a29e3fbb6d 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
@@ -296,6 +296,7 @@ public class Tuple implements Cloneable, MapWriter {
     this.fields.put(StreamParams.METRICS, metrics);
   }
 
+  @Override
   public Tuple clone() {
     Tuple clone = new Tuple(this);
     return clone;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorOrder.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorOrder.java
index 1613d40de93..bb8d3405dd0 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorOrder.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/ComparatorOrder.java
@@ -34,6 +34,7 @@ public enum ComparatorOrder {
     }
   }
 
+  @Override
   public String toString() {
     switch (this) {
       case DESCENDING:
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
index dc57ce74b29..9e2798c5c0b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java
@@ -73,6 +73,7 @@ public class FieldComparator implements StreamComparator {
     return !leftFieldName.equals(rightFieldName);
   }
 
+  @Override
   public StreamExpressionParameter toExpression(StreamFactory factory) {
     StringBuilder sb = new StringBuilder();
 
@@ -151,6 +152,7 @@ public class FieldComparator implements StreamComparator {
     }
   }
 
+  @Override
   public int compare(Tuple leftTuple, Tuple rightTuple) {
     return comparator.compare(leftTuple, rightTuple);
   }
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 9101a373b8a..43ad387c767 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
@@ -36,6 +36,7 @@ public class HashKey implements Serializable {
     return parts;
   }
 
+  @Override
   public int hashCode() {
     int h = 0;
     for (Object o : parts) {
@@ -45,6 +46,7 @@ public class HashKey implements Serializable {
     return h;
   }
 
+  @Override
   public boolean equals(Object o) {
     HashKey h = (HashKey) o;
     for (int i = 0; i < parts.length; i++) {
@@ -56,6 +58,7 @@ public class HashKey implements Serializable {
     return true;
   }
 
+  @Override
   public String toString() {
     StringBuilder buf = new StringBuilder();
     for (int i = 0; i < parts.length; i++) {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java
index 84fae239296..087983e014c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/MultipleFieldComparator.java
@@ -45,6 +45,7 @@ public class MultipleFieldComparator implements StreamComparator {
     return comps;
   }
 
+  @Override
   public int compare(Tuple t1, Tuple t2) {
     for (StreamComparator comp : comps) {
       int i = comp.compare(t1, t2);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/SingleValueComparator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/SingleValueComparator.java
index 3c1d47535f1..aa6db1aa7e7 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/SingleValueComparator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/comp/SingleValueComparator.java
@@ -33,6 +33,7 @@ public class SingleValueComparator implements StreamComparator {
   private static final long serialVersionUID = 1;
   private UUID comparatorNodeId = UUID.randomUUID();
 
+  @Override
   public StreamExpressionParameter toExpression(StreamFactory factory) {
     return null;
   }
@@ -42,6 +43,7 @@ public class SingleValueComparator implements StreamComparator {
     return null;
   }
 
+  @Override
   public int compare(Tuple leftTuple, Tuple rightTuple) {
     return -1; // whatever, just keep everything in same order
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java
index e43770a1656..95dcb5bebfd 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java
@@ -53,6 +53,7 @@ public class FieldEqualitor implements StreamEqualitor {
     this.rightFieldName = rightFieldName;
   }
 
+  @Override
   public StreamExpressionParameter toExpression(StreamFactory factory) {
     StringBuilder sb = new StringBuilder();
 
@@ -74,6 +75,7 @@ public class FieldEqualitor implements StreamEqualitor {
         .withExpression(toExpression(factory).toString());
   }
 
+  @Override
   @SuppressWarnings({"unchecked"})
   public boolean test(Tuple leftTuple, Tuple rightTuple) {
 
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/MultipleFieldEqualitor.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/MultipleFieldEqualitor.java
index 40ac74bf073..92765bae52b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/MultipleFieldEqualitor.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eq/MultipleFieldEqualitor.java
@@ -110,6 +110,7 @@ public class MultipleFieldEqualitor implements StreamEqualitor {
     return false;
   }
 
+  @Override
   public boolean test(Tuple t1, Tuple t2) {
     for (Equalitor<Tuple> eq : eqs) {
       if (!eq.test(t1, t2)) {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/AndEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/AndEvaluator.java
index d54618cc36e..05a17329c87 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/AndEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/AndEvaluator.java
@@ -37,6 +37,7 @@ public class AndEvaluator extends RecursiveBooleanEvaluator implements ManyValue
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/CosineDistanceEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/CosineDistanceEvaluator.java
index 8ce3453a75e..5e647bc416c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/CosineDistanceEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/CosineDistanceEvaluator.java
@@ -55,6 +55,7 @@ public class CosineDistanceEvaluator extends RecursiveEvaluator {
 
     private static final long serialVersionUID = -9108154600539125566L;
 
+    @Override
     public double compute(double[] v1, double[] v2) throws DimensionMismatchException {
       return Precision.round(1 - Math.abs(CosineSimilarityEvaluator.cosineSimilarity(v1, v2)), 8);
     }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/DbscanEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/DbscanEvaluator.java
index a66c66b4313..6880e68911c 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/DbscanEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/DbscanEvaluator.java
@@ -105,6 +105,7 @@ public class DbscanEvaluator extends RecursiveObjectEvaluator implements ManyVal
       this.point = point;
     }
 
+    @Override
     public double[] getPoint() {
       return this.point;
     }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/EqualToEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/EqualToEvaluator.java
index 0548b739f85..6728df25c70 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/EqualToEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/EqualToEvaluator.java
@@ -38,6 +38,7 @@ public class EqualToEvaluator extends RecursiveBooleanEvaluator implements ManyV
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       return new NullChecker() {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ExclusiveOrEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ExclusiveOrEvaluator.java
index 65dc8706a29..98cdb312aae 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ExclusiveOrEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ExclusiveOrEvaluator.java
@@ -40,6 +40,7 @@ public class ExclusiveOrEvaluator extends RecursiveBooleanEvaluator implements M
     }
   }
 
+  @Override
   public Object doWork(Object... values) throws IOException {
     if (values.length < 2) {
       String message = null;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEqualToEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEqualToEvaluator.java
index b294c83e747..61378172b64 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEqualToEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEqualToEvaluator.java
@@ -40,6 +40,7 @@ public class GreaterThanEqualToEvaluator extends RecursiveBooleanEvaluator
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEvaluator.java
index f4f94de510e..870e08710df 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/GreaterThanEvaluator.java
@@ -39,6 +39,7 @@ public class GreaterThanEvaluator extends RecursiveBooleanEvaluator implements M
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/IsNullEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/IsNullEvaluator.java
index e940c002528..0d079f538e3 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/IsNullEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/IsNullEvaluator.java
@@ -37,6 +37,7 @@ public class IsNullEvaluator extends RecursiveBooleanEvaluator implements ManyVa
     }
   }
 
+  @Override
   public Object doWork(Object... values) throws IOException {
 
     if (values[0] == null) {
@@ -54,6 +55,7 @@ public class IsNullEvaluator extends RecursiveBooleanEvaluator implements ManyVa
     return false;
   }
 
+  @Override
   protected Checker constructChecker(Object value) throws IOException {
     return null;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KmeansEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KmeansEvaluator.java
index 47f43617b14..56f9f0293a6 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KmeansEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KmeansEvaluator.java
@@ -101,6 +101,7 @@ public class KmeansEvaluator extends RecursiveObjectEvaluator implements TwoValu
       this.point = point;
     }
 
+    @Override
     public double[] getPoint() {
       return this.point;
     }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KnnEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KnnEvaluator.java
index 09ab6955cc3..80b96c0e3e0 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KnnEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/KnnEvaluator.java
@@ -141,6 +141,7 @@ public class KnnEvaluator extends RecursiveObjectEvaluator implements ManyValueW
       return distance;
     }
 
+    @Override
     public int compareTo(Neighbor neighbor) {
       if (this.distance.compareTo(neighbor.getDistance()) == 0) {
         return row - neighbor.getRow();
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEqualToEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEqualToEvaluator.java
index 943a7e444e6..14057497f36 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEqualToEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEqualToEvaluator.java
@@ -39,6 +39,7 @@ public class LessThanEqualToEvaluator extends RecursiveBooleanEvaluator implemen
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEvaluator.java
index 99c8f60d7fb..8de1e12ba20 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/LessThanEvaluator.java
@@ -38,6 +38,7 @@ public class LessThanEvaluator extends RecursiveBooleanEvaluator implements Many
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ManyValueWorker.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ManyValueWorker.java
index 0a750f341cd..f9ff9c59c39 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ManyValueWorker.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ManyValueWorker.java
@@ -20,5 +20,6 @@ import java.io.IOException;
 
 public interface ManyValueWorker extends ValueWorker {
 
+  @Override
   Object doWork(Object... values) throws IOException;
 }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MatchesEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MatchesEvaluator.java
index a630d621d3f..ece522b70f5 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MatchesEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MatchesEvaluator.java
@@ -40,6 +40,7 @@ public class MatchesEvaluator extends RecursiveBooleanEvaluator implements ManyV
     }
   }
 
+  @Override
   public Object doWork(Object... values) throws IOException {
     if (values[1] instanceof String) {
       String s = values[0].toString();
@@ -59,6 +60,7 @@ public class MatchesEvaluator extends RecursiveBooleanEvaluator implements ManyV
     }
   }
 
+  @Override
   protected Checker constructChecker(Object value) throws IOException {
     return null;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/Matrix.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/Matrix.java
index e14752b50a3..9378661977d 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/Matrix.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/Matrix.java
@@ -34,14 +34,17 @@ public class Matrix implements Iterable<List<Double>>, Attributes {
     this.data = data;
   }
 
+  @Override
   public Map<?, ?> getAttributes() {
     return this.attributes;
   }
 
+  @Override
   public void setAttribute(String key, Object value) {
     this.attributes.put(key, value);
   }
 
+  @Override
   public Object getAttribute(String key) {
     return this.attributes.get(key);
   }
@@ -74,6 +77,7 @@ public class Matrix implements Iterable<List<Double>>, Attributes {
     return data[0].length;
   }
 
+  @Override
   public Iterator<List<Double>> iterator() {
     return new MatrixIterator(data);
   }
@@ -87,6 +91,7 @@ public class Matrix implements Iterable<List<Double>>, Attributes {
       d = data;
     }
 
+    @Override
     public List<Double> next() {
       double[] row = d[index++];
       List<Double> list = new ArrayList<>();
@@ -97,6 +102,7 @@ public class Matrix implements Iterable<List<Double>>, Attributes {
       return list;
     }
 
+    @Override
     public boolean hasNext() {
       return index < d.length;
     }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MemsetEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MemsetEvaluator.java
index a1b03d91aa6..4a2cdd4c656 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MemsetEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/MemsetEvaluator.java
@@ -122,6 +122,7 @@ public class MemsetEvaluator extends RecursiveEvaluator {
     super(expression, factory, ignoredNamedParameters);
   }
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.streamContext = streamContext;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotEvaluator.java
index b3cf42bc39c..6263bd97263 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotEvaluator.java
@@ -38,10 +38,12 @@ public class NotEvaluator extends RecursiveBooleanEvaluator implements OneValueW
     }
   }
 
+  @Override
   protected Checker constructChecker(Object value) throws IOException {
     return null;
   }
 
+  @Override
   public Object doWork(Object... values) throws IOException {
     if (1 != values.length) {
       throw new IOException(
@@ -51,6 +53,7 @@ public class NotEvaluator extends RecursiveBooleanEvaluator implements OneValueW
     return doWork(values[0]);
   }
 
+  @Override
   public Object doWork(Object value) {
     if (null == value) {
       return null;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotNullEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotNullEvaluator.java
index 881517d4979..ab927a7fd84 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotNullEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/NotNullEvaluator.java
@@ -37,6 +37,7 @@ public class NotNullEvaluator extends RecursiveBooleanEvaluator implements ManyV
     }
   }
 
+  @Override
   public Object doWork(Object... values) throws IOException {
 
     if (values[0] == null) {
@@ -54,6 +55,7 @@ public class NotNullEvaluator extends RecursiveBooleanEvaluator implements ManyV
     return true;
   }
 
+  @Override
   protected Checker constructChecker(Object value) throws IOException {
     return null;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OneValueWorker.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OneValueWorker.java
index fd47ec69513..967ebdb812b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OneValueWorker.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OneValueWorker.java
@@ -23,6 +23,7 @@ public interface OneValueWorker extends ValueWorker {
 
   Object doWork(Object value) throws IOException;
 
+  @Override
   default Object doWork(Object... values) throws IOException {
     if (1 != values.length) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OrEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OrEvaluator.java
index 9894e77b529..e311e99be5a 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OrEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/OrEvaluator.java
@@ -37,6 +37,7 @@ public class OrEvaluator extends RecursiveBooleanEvaluator implements ManyValueW
     }
   }
 
+  @Override
   protected Checker constructChecker(Object fromValue) throws IOException {
     if (null == fromValue) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java
index 907420ef4f0..6a1b8e8efb2 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/PairSortEvaluator.java
@@ -98,6 +98,7 @@ public class PairSortEvaluator extends RecursiveNumericEvaluator implements TwoV
   }
 
   private class PairComp implements Comparator<double[]> {
+    @Override
     public int compare(double[] a, double[] b) {
       if (a[0] > b[0]) {
         return 1;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveBooleanEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveBooleanEvaluator.java
index bad8a8462e5..d42f2768be8 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveBooleanEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveBooleanEvaluator.java
@@ -33,6 +33,7 @@ public abstract class RecursiveBooleanEvaluator extends RecursiveEvaluator {
     super(expression, factory);
   }
 
+  @Override
   public Object normalizeInputType(Object value) throws StreamEvaluatorException {
     if (null == value) {
       return null;
@@ -41,6 +42,7 @@ public abstract class RecursiveBooleanEvaluator extends RecursiveEvaluator {
     }
   }
 
+  @Override
   public Object doWork(Object... values) throws IOException {
     if (values.length < 2) {
       String message = null;
@@ -99,32 +101,38 @@ public abstract class RecursiveBooleanEvaluator extends RecursiveEvaluator {
   }
 
   public interface NullChecker extends Checker {
+    @Override
     default boolean isNullAllowed() {
       return true;
     }
 
+    @Override
     default boolean isCorrectType(Object value) {
       return true;
     }
 
+    @Override
     default boolean test(Object left, Object right) {
       return null == left && null == right;
     }
   }
 
   public interface BooleanChecker extends Checker {
+    @Override
     default boolean isCorrectType(Object value) {
       return value instanceof Boolean;
     }
   }
 
   public interface NumberChecker extends Checker {
+    @Override
     default boolean isCorrectType(Object value) {
       return value instanceof Number;
     }
   }
 
   public interface StringChecker extends Checker {
+    @Override
     default boolean isCorrectType(Object value) {
       return value instanceof String;
     }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveEvaluator.java
index e9b2d0ad5b4..baa8bd592ca 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveEvaluator.java
@@ -245,6 +245,7 @@ public abstract class RecursiveEvaluator implements StreamEvaluator, ValueWorker
         .withExpression(toExpression(factory).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamContext = context;
 
@@ -253,6 +254,7 @@ public abstract class RecursiveEvaluator implements StreamEvaluator, ValueWorker
     }
   }
 
+  @Override
   public StreamContext getStreamContext() {
     return streamContext;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericEvaluator.java
index 0670fc6cdac..34e998b7091 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericEvaluator.java
@@ -34,6 +34,7 @@ public abstract class RecursiveNumericEvaluator extends RecursiveEvaluator {
     super(expression, factory);
   }
 
+  @Override
   public Object normalizeInputType(Object value) throws StreamEvaluatorException {
     if (null == value) {
       return null;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericListEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericListEvaluator.java
index 23c4c1fc6df..7a50c7eb6c6 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericListEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveNumericListEvaluator.java
@@ -31,6 +31,7 @@ public abstract class RecursiveNumericListEvaluator extends RecursiveEvaluator {
     super(expression, factory);
   }
 
+  @Override
   public Object normalizeInputType(Object value) throws StreamEvaluatorException {
     if (null == value) {
       return null;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveTemporalEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveTemporalEvaluator.java
index dd87179808e..385f3bf666b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveTemporalEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/RecursiveTemporalEvaluator.java
@@ -58,6 +58,7 @@ public abstract class RecursiveTemporalEvaluator extends RecursiveEvaluator
 
   protected abstract Object getDatePart(TemporalAccessor value);
 
+  @Override
   public Object normalizeInputType(Object value) throws StreamEvaluatorException {
     if (null == value) {
       return value;
@@ -107,6 +108,7 @@ public abstract class RecursiveTemporalEvaluator extends RecursiveEvaluator
                 String.valueOf(value))));
   }
 
+  @Override
   public Object doWork(Object value) {
     if (null == value) {
       return null;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarDivideEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarDivideEvaluator.java
index 16e7a286ec3..c11e4a8813e 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarDivideEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarDivideEvaluator.java
@@ -38,6 +38,7 @@ public class ScalarDivideEvaluator extends ScalarAddEvaluator implements TwoValu
     }
   }
 
+  @Override
   protected double operate(double value, double d) {
     return value / d;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarMultiplyEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarMultiplyEvaluator.java
index 359fbac8188..c8722304928 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarMultiplyEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarMultiplyEvaluator.java
@@ -38,6 +38,7 @@ public class ScalarMultiplyEvaluator extends ScalarAddEvaluator implements TwoVa
     }
   }
 
+  @Override
   protected double operate(double value, double d) {
     return value * d;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarSubtractEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarSubtractEvaluator.java
index 2f35c15fa2d..22797ae83c1 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarSubtractEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/ScalarSubtractEvaluator.java
@@ -38,6 +38,7 @@ public class ScalarSubtractEvaluator extends ScalarAddEvaluator implements TwoVa
     }
   }
 
+  @Override
   protected double operate(double value, double d) {
     return value - d;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/SourceEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/SourceEvaluator.java
index b17b4cae80b..ad3dba8e4d9 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/SourceEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/SourceEvaluator.java
@@ -25,10 +25,12 @@ public abstract class SourceEvaluator implements StreamEvaluator {
   protected UUID nodeId = UUID.randomUUID();
   protected StreamContext streamContext;
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.streamContext = streamContext;
   }
 
+  @Override
   public StreamContext getStreamContext() {
     return streamContext;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TopFeaturesEvaluator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TopFeaturesEvaluator.java
index 52bd17df339..c69ffd9091f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TopFeaturesEvaluator.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TopFeaturesEvaluator.java
@@ -103,6 +103,7 @@ public class TopFeaturesEvaluator extends RecursiveObjectEvaluator implements Tw
       this.value = value.doubleValue();
     }
 
+    @Override
     public int compareTo(Pair pair) {
 
       int c = value.compareTo(pair.value);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TwoValueWorker.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TwoValueWorker.java
index 9db674986ae..5ae9294893b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TwoValueWorker.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/eval/TwoValueWorker.java
@@ -23,6 +23,7 @@ public interface TwoValueWorker extends ValueWorker {
 
   Object doWork(Object value1, Object value2) throws IOException;
 
+  @Override
   default Object doWork(Object... values) throws IOException {
     if (2 != values.length) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java
index e59de3eccf9..f62b8e57fa7 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/GatherNodesStream.java
@@ -470,6 +470,7 @@ public class GatherNodesStream extends TupleStream implements Expressible {
     return explanation;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.traversal = (Traversal) context.get("traversal");
     if (traversal == null) {
@@ -498,12 +499,14 @@ public class GatherNodesStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(tupleStream);
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     tupleStream.open();
   }
@@ -517,6 +520,7 @@ public class GatherNodesStream extends TupleStream implements Expressible {
       this.nodes = nodes;
     }
 
+    @Override
     public List<Tuple> call() {
 
       Set<String> flSet = new HashSet<>();
@@ -687,10 +691,12 @@ public class GatherNodesStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public void close() throws IOException {
     tupleStream.close();
   }
 
+  @Override
   public Tuple read() throws IOException {
 
     if (out == null) {
@@ -840,6 +846,7 @@ public class GatherNodesStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
@@ -858,22 +865,28 @@ public class GatherNodesStream extends TupleStream implements Expressible {
       this.ids = ids;
     }
 
+    @Override
     public void open() {
       this.it = ids.iterator();
     }
 
+    @Override
     public void close() {}
 
+    @Override
     public StreamComparator getStreamSort() {
       return null;
     }
 
+    @Override
     public List<TupleStream> children() {
       return new ArrayList<>();
     }
 
+    @Override
     public void setStreamContext(StreamContext context) {}
 
+    @Override
     public Tuple read() {
       if (it.hasNext()) {
         return new Tuple("node", it.next());
@@ -882,6 +895,7 @@ public class GatherNodesStream extends TupleStream implements Expressible {
       }
     }
 
+    @Override
     public String toString() {
       StringBuilder builder = new StringBuilder();
       boolean comma = false;
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/ShortestPathStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/ShortestPathStream.java
index 44e407f5f05..b506a79eee1 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/ShortestPathStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/graph/ShortestPathStream.java
@@ -324,15 +324,18 @@ public class ShortestPathStream extends TupleStream implements Expressible {
     return explanation;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamContext = context;
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     return l;
   }
 
+  @Override
   public void open() throws IOException {
 
     List<Map<String, List<String>>> allVisited = new ArrayList<>();
@@ -470,6 +473,7 @@ public class ShortestPathStream extends TupleStream implements Expressible {
       this.nodes = nodes;
     }
 
+    @Override
     public List<Edge> call() {
 
       ModifiableSolrParams joinParams = new ModifiableSolrParams(queryParams);
@@ -543,10 +547,12 @@ public class ShortestPathStream extends TupleStream implements Expressible {
     return false;
   }
 
+  @Override
   public void close() throws IOException {
     this.found = false;
   }
 
+  @Override
   public Tuple read() throws IOException {
     if (shortestPaths.size() > 0) {
       found = true;
@@ -561,6 +567,7 @@ public class ShortestPathStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/DistinctOperation.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/DistinctOperation.java
index 76eddb66af4..367dcc59061 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/DistinctOperation.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/DistinctOperation.java
@@ -41,6 +41,7 @@ public class DistinctOperation implements ReduceOperation {
 
   private void init() {}
 
+  @Override
   public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException {
     StreamExpression expression = new StreamExpression(factory.getFunctionName(this.getClass()));
     return expression;
@@ -55,6 +56,7 @@ public class DistinctOperation implements ReduceOperation {
         .withExpression(toExpression(factory).toString());
   }
 
+  @Override
   public Tuple reduce() {
     // Return the tuple after setting current to null. This will ensure the next call to
     // operate stores that tuple
@@ -64,6 +66,7 @@ public class DistinctOperation implements ReduceOperation {
     return toReturn;
   }
 
+  @Override
   public void operate(Tuple tuple) {
     // we only care about the first one seen. Drop all but the first
     if (null == current) {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/GroupOperation.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/GroupOperation.java
index 7e722b7b058..1c58c01295d 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/GroupOperation.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/ops/GroupOperation.java
@@ -95,6 +95,7 @@ public class GroupOperation implements ReduceOperation {
     this.priorityQueue = new PriorityQueue<>(size, this.comp);
   }
 
+  @Override
   public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException {
     StreamExpression expression = new StreamExpression(factory.getFunctionName(this.getClass()));
     // n
@@ -116,6 +117,7 @@ public class GroupOperation implements ReduceOperation {
         .withHelpers(new Explanation[] {streamComparator.toExplanation(factory)});
   }
 
+  @Override
   public Tuple reduce() {
     Deque<Map<String, Object>> ll = new ArrayDeque<>();
     while (priorityQueue.size() > 0) {
@@ -130,6 +132,7 @@ public class GroupOperation implements ReduceOperation {
     return tuple;
   }
 
+  @Override
   public void operate(Tuple tuple) {
     if (priorityQueue.size() >= size) {
       Tuple peek = priorityQueue.peek();
@@ -149,6 +152,7 @@ public class GroupOperation implements ReduceOperation {
       this.comp = comp;
     }
 
+    @Override
     public int compare(Tuple t1, Tuple t2) {
       // Couldn't this be comp.compare(t2,t1) ?
       return comp.compare(t1, t2) * (-1);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/DriverImpl.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/DriverImpl.java
index 2218b815ade..47366bb02dc 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/DriverImpl.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/sql/DriverImpl.java
@@ -45,6 +45,7 @@ public class DriverImpl implements Driver {
     }
   }
 
+  @Override
   public Connection connect(String url, Properties props) throws SQLException {
     if (!acceptsURL(url)) {
       return null;
@@ -76,27 +77,33 @@ public class DriverImpl implements Driver {
     return connect(url, new Properties());
   }
 
+  @Override
   public int getMajorVersion() {
     return 1;
   }
 
+  @Override
   public int getMinorVersion() {
     return 0;
   }
 
+  @Override
   public boolean acceptsURL(String url) {
     return url != null && url.startsWith("jdbc:solr");
   }
 
+  @Override
   public boolean jdbcCompliant() {
     return false;
   }
 
+  @Override
   @SuppressForbidden(reason = "Required by jdbc")
   public Logger getParentLogger() {
     return null;
   }
 
+  @Override
   public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) {
     return null;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/BiJoinStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/BiJoinStream.java
index 099a19ae76b..5c8ecc3d8d9 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/BiJoinStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/BiJoinStream.java
@@ -72,6 +72,7 @@ public abstract class BiJoinStream extends JoinStream implements Expressible {
     rightStreamComparator = createSideComparator(eq, rightStream.getStreamSort());
   }
 
+  @Override
   protected void validateTupleOrder() throws IOException {
     if (!isValidTupleOrder()) {
       throw new IOException(
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CalculatorStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CalculatorStream.java
index 5a3f21fa83a..d0d8e619b3f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CalculatorStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CalculatorStream.java
@@ -63,17 +63,22 @@ public class CalculatorStream extends TupleStream implements Expressible {
         .withExpression(toExpression(factory, false).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {}
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     return l;
   }
 
+  @Override
   public void open() throws IOException {}
 
+  @Override
   public void close() throws IOException {}
 
+  @Override
   public Tuple read() throws IOException {
 
     if (finished) {
@@ -85,10 +90,12 @@ public class CalculatorStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return null;
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java
index 21558437c67..4884581b1b2 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CartesianProductStream.java
@@ -224,6 +224,7 @@ public class CartesianProductStream extends TupleStream implements Expressible {
     return explanation;
   }
 
+  @Override
   public Tuple read() throws IOException {
     if (generatedTuples.isEmpty()) {
       Tuple tuple = stream.read();
@@ -298,6 +299,7 @@ public class CartesianProductStream extends TupleStream implements Expressible {
   }
 
   /** Return the incoming sort + the sort applied to the generated tuples */
+  @Override
   public StreamComparator getStreamSort() {
     if (null != orderBy) {
       return stream.getStreamSort().append(orderBy);
@@ -305,6 +307,7 @@ public class CartesianProductStream extends TupleStream implements Expressible {
     return stream.getStreamSort();
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.stream.setStreamContext(context);
     for (NamedEvaluator evaluator : evaluators) {
@@ -312,22 +315,26 @@ public class CartesianProductStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(stream);
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     stream.open();
     generatedTuples = new ArrayDeque<>();
   }
 
+  @Override
   public void close() throws IOException {
     stream.close();
     generatedTuples.clear();
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CellStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CellStream.java
index 6a0b10eb1bb..92a0ffd37b9 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CellStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CellStream.java
@@ -101,10 +101,12 @@ public class CellStream extends TupleStream implements Expressible {
     return explanation;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.stream.setStreamContext(context);
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(stream);
@@ -112,6 +114,7 @@ public class CellStream extends TupleStream implements Expressible {
     return l;
   }
 
+  @Override
   public Tuple read() throws IOException {
     if (tuple.EOF) {
       return tuple;
@@ -122,8 +125,10 @@ public class CellStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public void close() throws IOException {}
 
+  @Override
   public void open() throws IOException {
     try {
       stream.open();
@@ -146,10 +151,12 @@ public class CellStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return null;
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
index 0c552a77eb6..6cef1b2c9b6 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
@@ -278,11 +278,13 @@ public class CloudSolrStream extends TupleStream implements Expressible {
     this.trace = trace;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamContext = context;
   }
 
   /** Opens the CloudSolrStream */
+  @Override
   public void open() throws IOException {
     this.tuples = new TreeSet<>();
     this.solrStreams = new ArrayList<>();
@@ -295,6 +297,7 @@ public class CloudSolrStream extends TupleStream implements Expressible {
     return this.eofTuples;
   }
 
+  @Override
   public List<TupleStream> children() {
     return solrStreams;
   }
@@ -431,6 +434,7 @@ public class CloudSolrStream extends TupleStream implements Expressible {
   }
 
   /** Closes the CloudSolrStream */
+  @Override
   public void close() throws IOException {
     if (solrStreams != null) {
       for (TupleStream solrStream : solrStreams) {
@@ -440,10 +444,12 @@ public class CloudSolrStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return comp;
   }
 
+  @Override
   public Tuple read() throws IOException {
     return _read();
   }
@@ -480,6 +486,7 @@ public class CloudSolrStream extends TupleStream implements Expressible {
       this.comp = comp;
     }
 
+    @Override
     public int compareTo(TupleWrapper w) {
       if (this == w) {
         return 0;
@@ -493,6 +500,7 @@ public class CloudSolrStream extends TupleStream implements Expressible {
       }
     }
 
+    @Override
     public boolean equals(Object o) {
       return this == o;
     }
@@ -527,6 +535,7 @@ public class CloudSolrStream extends TupleStream implements Expressible {
       this.comp = comp;
     }
 
+    @Override
     public TupleWrapper call() throws Exception {
       stream.open();
       TupleWrapper wrapper = new TupleWrapper(stream, comp);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ComplementStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ComplementStream.java
index e8764da3461..1d589315a15 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ComplementStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ComplementStream.java
@@ -156,11 +156,13 @@ public class ComplementStream extends TupleStream implements Expressible {
         .withHelper(eq.toExplanation(factory));
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamA.setStreamContext(context);
     this.streamB.setStreamContext(context);
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(streamA);
@@ -168,16 +170,19 @@ public class ComplementStream extends TupleStream implements Expressible {
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     streamA.open();
     streamB.open();
   }
 
+  @Override
   public void close() throws IOException {
     streamA.close();
     streamB.close();
   }
 
+  @Override
   public Tuple read() throws IOException {
 
     while (true) {
@@ -212,10 +217,12 @@ public class ComplementStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return streamA.getStreamSort();
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CsvStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CsvStream.java
index 452d3afd275..5fa7cec7cfa 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CsvStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CsvStream.java
@@ -106,24 +106,29 @@ public class CsvStream extends TupleStream implements Expressible {
         .withExpression(toExpression(factory, false).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.originalStream.setStreamContext(context);
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(originalStream);
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     originalStream.open();
   }
 
+  @Override
   public void close() throws IOException {
     originalStream.close();
   }
 
+  @Override
   public Tuple read() throws IOException {
     Tuple tuple = originalStream.read();
     ++lineNumber;
@@ -183,10 +188,12 @@ public class CsvStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return originalStream.getStreamSort();
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DaemonStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DaemonStream.java
index 27163b7d520..414d2466a38 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DaemonStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DaemonStream.java
@@ -199,10 +199,12 @@ public class DaemonStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public int hashCode() {
     return id.hashCode();
   }
 
+  @Override
   public boolean equals(Object o) {
     if (o instanceof DaemonStream) {
       return id.equals(((DaemonStream) o).id);
@@ -214,6 +216,7 @@ public class DaemonStream extends TupleStream implements Expressible {
     return id;
   }
 
+  @Override
   public void open() throws IOException {
     if (this.streamRunner != null && this.closed == false) {
       log.error("There is already a running daemon named '{}', no action taken", id);
@@ -231,6 +234,7 @@ public class DaemonStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public Tuple read() throws IOException {
     try {
       return queue.take();
@@ -239,10 +243,12 @@ public class DaemonStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public StreamComparator getStreamSort() {
     return tupleStream.getStreamSort();
   }
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.tupleStream.setStreamContext(streamContext);
   }
@@ -251,6 +257,7 @@ public class DaemonStream extends TupleStream implements Expressible {
     streamRunner.setShutdown(true);
   }
 
+  @Override
   public void close() {
     if (closed) {
       return;
@@ -261,6 +268,7 @@ public class DaemonStream extends TupleStream implements Expressible {
     this.closed = true;
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> children = new ArrayList<>();
     children.add(tupleStream);
@@ -329,6 +337,7 @@ public class DaemonStream extends TupleStream implements Expressible {
       }
     }
 
+    @Override
     public void run() {
       executingThread = Thread.currentThread();
       try {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DeepRandomStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DeepRandomStream.java
index e97ffb17ec5..02bb701d5d3 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DeepRandomStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DeepRandomStream.java
@@ -266,10 +266,12 @@ public class DeepRandomStream extends TupleStream implements Expressible {
     this.trace = trace;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamContext = context;
   }
 
+  @Override
   public void open() throws IOException {
     this.tuples = new ArrayDeque<>();
     this.solrStreams = new ArrayList<>();
@@ -278,6 +280,7 @@ public class DeepRandomStream extends TupleStream implements Expressible {
     openStreams();
   }
 
+  @Override
   public List<TupleStream> children() {
     return solrStreams;
   }
@@ -346,6 +349,7 @@ public class DeepRandomStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public void close() throws IOException {
     if (solrStreams != null) {
       for (TupleStream solrStream : solrStreams) {
@@ -355,10 +359,12 @@ public class DeepRandomStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return comp;
   }
 
+  @Override
   public Tuple read() throws IOException {
     return _read();
   }
@@ -395,6 +401,7 @@ public class DeepRandomStream extends TupleStream implements Expressible {
       this.comp = comp;
     }
 
+    @Override
     public int compareTo(TupleWrapper w) {
       if (this == w) {
         return 0;
@@ -443,6 +450,7 @@ public class DeepRandomStream extends TupleStream implements Expressible {
       this.comp = comp;
     }
 
+    @Override
     public TupleWrapper call() throws Exception {
       stream.open();
       TupleWrapper wrapper = new TupleWrapper(stream, comp);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DrillStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DrillStream.java
index 6d1a9756dc8..355fb09c952 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DrillStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DrillStream.java
@@ -247,12 +247,14 @@ public class DrillStream extends CloudSolrStream implements Expressible {
     return explanation;
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(tupleStream);
     return l;
   }
 
+  @Override
   public Tuple read() throws IOException {
     Tuple tuple = _read();
 
@@ -263,6 +265,7 @@ public class DrillStream extends CloudSolrStream implements Expressible {
     return tuple;
   }
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.streamContext = streamContext;
     if (streamFactory == null) {
@@ -271,6 +274,7 @@ public class DrillStream extends CloudSolrStream implements Expressible {
     this.tupleStream.setStreamContext(streamContext);
   }
 
+  @Override
   protected void constructStreams() throws IOException {
     try {
       Object pushStream = ((Expressible) tupleStream).toExpression(streamFactory);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EchoStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EchoStream.java
index 002170a0bb2..c12bbcddca0 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EchoStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EchoStream.java
@@ -77,17 +77,22 @@ public class EchoStream extends TupleStream implements Expressible {
         .withExpression(toExpression(factory, false).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {}
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     return l;
   }
 
+  @Override
   public void open() throws IOException {}
 
+  @Override
   public void close() throws IOException {}
 
+  @Override
   public Tuple read() throws IOException {
 
     if (finished) {
@@ -99,10 +104,12 @@ public class EchoStream extends TupleStream implements Expressible {
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return null;
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EvalStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EvalStream.java
index b82ce0ee251..cc055318100 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EvalStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/EvalStream.java
@@ -100,17 +100,20 @@ public class EvalStream extends TupleStream implements Expressible {
         .withExpression(toExpression(factory, false).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.streamContext = streamContext;
     this.stream.setStreamContext(streamContext);
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(stream);
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     try {
       stream.open();
@@ -129,18 +132,22 @@ public class EvalStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public void close() throws IOException {
     evalStream.close();
   }
 
+  @Override
   public Tuple read() throws IOException {
     return evalStream.read();
   }
 
+  @Override
   public StreamComparator getStreamSort() {
     return stream.getStreamSort();
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExceptionStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExceptionStream.java
index 70e37e6a5db..f6dec46bdf0 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExceptionStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExceptionStream.java
@@ -42,10 +42,12 @@ public class ExceptionStream extends TupleStream {
     this.stream = stream;
   }
 
+  @Override
   public List<TupleStream> children() {
     return null;
   }
 
+  @Override
   public void open() {
     try {
       stream.open();
@@ -54,6 +56,7 @@ public class ExceptionStream extends TupleStream {
     }
   }
 
+  @Override
   public Tuple read() {
     if (openException != null) {
       // There was an exception during the open.
@@ -79,14 +82,17 @@ public class ExceptionStream extends TupleStream {
         .withExpression("non-expressible");
   }
 
+  @Override
   public StreamComparator getStreamSort() {
     return this.stream.getStreamSort();
   }
 
+  @Override
   public void close() throws IOException {
     stream.close();
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.stream.setStreamContext(context);
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExecutorStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExecutorStream.java
index 122eceef98a..0a5dbb9d828 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExecutorStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/ExecutorStream.java
@@ -134,17 +134,20 @@ public class ExecutorStream extends TupleStream implements Expressible {
         .withExpression(toExpression(factory, false).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.streamContext = streamContext;
     this.stream.setStreamContext(streamContext);
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(stream);
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     executorService =
         ExecutorUtil.newMDCAwareFixedThreadPool(
@@ -152,6 +155,7 @@ public class ExecutorStream extends TupleStream implements Expressible {
     stream.open();
   }
 
+  @Override
   public void close() throws IOException {
     stream.close();
     executorService.shutdown();
@@ -162,6 +166,7 @@ public class ExecutorStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public Tuple read() throws IOException {
     ArrayBlockingQueue<Tuple> queue = new ArrayBlockingQueue<>(10000);
     while (true) {
@@ -179,10 +184,12 @@ public class ExecutorStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public StreamComparator getStreamSort() {
     return stream.getStreamSort();
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
@@ -203,6 +210,7 @@ public class ExecutorStream extends TupleStream implements Expressible {
       this.streamContext.setModelCache(streamContext.getModelCache());
     }
 
+    @Override
     public void run() {
       Tuple tuple = null;
       try {
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java
index fbba51a9305..23e3f780d7f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java
@@ -309,14 +309,17 @@ public class Facet2DStream extends TupleStream implements Expressible {
     return expression;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     cache = context.getSolrClientCache();
   }
 
+  @Override
   public List<TupleStream> children() {
     return new ArrayList<>();
   }
 
+  @Override
   public void open() throws IOException {
     if (cache != null) {
       cloudSolrClient = cache.getCloudSolrClient(zkHost);
@@ -349,6 +352,7 @@ public class Facet2DStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public Tuple read() throws IOException {
     if (out.hasNext()) {
       return out.next();
@@ -359,6 +363,7 @@ public class Facet2DStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public void close() throws IOException {
     if (cache == null) {
       if (cloudSolrClient != null) {
@@ -513,6 +518,7 @@ public class Facet2DStream extends TupleStream implements Expressible {
     }
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java
index c09a97d1af8..49534b3237b 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java
@@ -643,15 +643,18 @@ public class FacetStream extends TupleStream implements Expressible, ParallelMet
     return explanation;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.context = context;
     cache = context.getSolrClientCache();
   }
 
+  @Override
   public List<TupleStream> children() {
     return new ArrayList<>();
   }
 
+  @Override
   public void open() throws IOException {
     if (cache != null) {
       cloudSolrClient = cache.getCloudSolrClient(zkHost);
@@ -755,6 +758,7 @@ public class FacetStream extends TupleStream implements Expressible, ParallelMet
     return true;
   }
 
+  @Override
   public void close() throws IOException {
     if (cache == null) {
       if (cloudSolrClient != null) {
@@ -763,6 +767,7 @@ public class FacetStream extends TupleStream implements Expressible, ParallelMet
     }
   }
 
+  @Override
   public Tuple read() throws IOException {
     // if we're parallelizing the facet expression over multiple collections with plist,
     // then delegate the read operation to that stream instead
@@ -992,6 +997,7 @@ public class FacetStream extends TupleStream implements Expressible, ParallelMet
     }
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FeaturesSelectionStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FeaturesSelectionStream.java
index 6ba0048b876..d4990800cd4 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FeaturesSelectionStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FeaturesSelectionStream.java
@@ -252,12 +252,14 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible
     this.numTerms = numTopTerms;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.cache = context.getSolrClientCache();
     this.streamContext = context;
   }
 
   /** Opens the CloudSolrStream */
+  @Override
   public void open() throws IOException {
     if (cache == null) {
       isCloseCache = true;
@@ -272,6 +274,7 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible
             new SolrNamedThreadFactory("FeaturesSelectionStream"));
   }
 
+  @Override
   public List<TupleStream> children() {
     return null;
   }
@@ -320,6 +323,7 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible
     return futures;
   }
 
+  @Override
   public void close() throws IOException {
     if (isCloseCache && cache != null) {
       cache.close();
@@ -331,6 +335,7 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible
   }
 
   /** Return the stream sort - ie, the order in which records are returned */
+  @Override
   public StreamComparator getStreamSort() {
     return null;
   }
@@ -344,6 +349,7 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible
         .withExpression(toExpression(factory).toString());
   }
 
+  @Override
   public Tuple read() throws IOException {
     try {
       if (tupleIterator == null) {
@@ -427,6 +433,7 @@ public class FeaturesSelectionStream extends TupleStream implements Expressible
       this.paramsMap = paramsMap;
     }
 
+    @Override
     public NamedList<?> call() throws Exception {
       ModifiableSolrParams params = new ModifiableSolrParams();
       SolrClient solrClient = cache.getHttpSolrClient(baseUrl);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FetchStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FetchStream.java
index 7afbb5dd6e0..39931bdb021 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FetchStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/FetchStream.java
@@ -218,17 +218,20 @@ public class FetchStream extends TupleStream implements Expressible {
         .withExpression(toExpression(factory, false).toString());
   }
 
+  @Override
   public void setStreamContext(StreamContext streamContext) {
     this.streamContext = streamContext;
     this.stream.setStreamContext(streamContext);
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     l.add(stream);
     return l;
   }
 
+  @Override
   public void open() throws IOException {
     tuples = Collections.emptyIterator();
     stream.open();
@@ -303,10 +306,12 @@ public class FetchStream extends TupleStream implements Expressible {
     this.tuples = batch.iterator();
   }
 
+  @Override
   public void close() throws IOException {
     stream.close();
   }
 
+  @Override
   public Tuple read() throws IOException {
     if (!tuples.hasNext()) {
       fetchBatch();
@@ -315,10 +320,12 @@ public class FetchStream extends TupleStream implements Expressible {
     return tuples.next();
   }
 
+  @Override
   public StreamComparator getStreamSort() {
     return stream.getStreamSort();
   }
 
+  @Override
   public int getCost() {
     return 0;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/GetStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/GetStream.java
index af5cc45eeef..c149ebc819d 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/GetStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/GetStream.java
@@ -78,15 +78,18 @@ public class GetStream extends TupleStream implements Expressible {
     return explanation;
   }
 
+  @Override
   public void setStreamContext(StreamContext context) {
     this.streamContext = context;
   }
 
+  @Override
   public List<TupleStream> children() {
     List<TupleStream> l = new ArrayList<>();
     return l;
   }
 
+  @Override
   public Tuple read() throws IOException {
     if (tupleIterator.hasNext()) {
       Tuple t = tupleIterator.next();
@@ -96,8 +99,10 @@ public class GetStream extends TupleStream implements Expressible {
     }
   }
 
... 3237 lines suppressed ...


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

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 317f422922cb7f387721e0f51a5b54ce496cbc73
Author: Kevin Risden <kr...@apache.org>
AuthorDate: Mon Oct 24 18:04:45 2022 -0400

    SOLR-16427: Evaluate and fix errorprone rules - NarrowingCompoundAssignment
---
 gradle/validation/error-prone.gradle                           |  1 -
 .../src/java/org/apache/solr/search/ReRankQParserPlugin.java   |  2 +-
 .../apache/solr/cloud/CloudExitableDirectoryReaderTest.java    |  4 ++--
 .../solr/cloud/DistribDocExpirationUpdateProcessorTest.java    |  2 +-
 .../core/src/test/org/apache/solr/cloud/TestCloudRecovery.java |  6 +++---
 .../org/apache/solr/handler/component/TermsComponentTest.java  | 10 +++++-----
 solr/core/src/test/org/apache/solr/search/TestFiltering.java   |  2 +-
 solr/core/src/test/org/apache/solr/search/TestSearchPerf.java  |  4 ++--
 .../processor/CategoryRoutedAliasUpdateProcessorTest.java      |  2 +-
 .../processor/DimensionalRoutedAliasUpdateProcessorTest.java   |  2 +-
 .../update/processor/TimeRoutedAliasUpdateProcessorTest.java   |  6 +++---
 solr/core/src/test/org/apache/solr/util/BitSetPerf.java        |  2 +-
 .../solr/client/solrj/impl/CloudHttp2SolrClientTest.java       |  4 ++--
 .../org/apache/solr/client/solrj/impl/CloudSolrClientTest.java |  4 ++--
 .../solr/client/solrj/impl/HttpSolrClientConPoolTest.java      |  2 +-
 solr/solrj/src/test/org/noggit/TestJSONParser.java             |  2 +-
 .../org/apache/solr/cloud/AbstractFullDistribZkTestBase.java   |  2 +-
 .../cloud/api/collections/AbstractIncrementalBackupTest.java   |  8 ++++----
 18 files changed, 32 insertions(+), 33 deletions(-)

diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle
index f5a30bf1483..3f4d437fdd0 100644
--- a/gradle/validation/error-prone.gradle
+++ b/gradle/validation/error-prone.gradle
@@ -98,7 +98,6 @@ allprojects { prj ->
             '-Xep:MissingSummary:OFF',
             '-Xep:MixedMutabilityReturnType:OFF',
             '-Xep:MutablePublicArray:OFF', // this should be possible...
-            '-Xep:NarrowingCompoundAssignment:OFF',
             '-Xep:NegativeCharLiteral:OFF',
             '-Xep:NonAtomicVolatileUpdate:OFF',
             '-Xep:NonCanonicalType:OFF',
diff --git a/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
index 3bb9a5efc8c..5e3f25e9890 100644
--- a/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
@@ -90,7 +90,7 @@ public class ReRankQParserPlugin extends QParserPlugin {
         float firstPassScore, boolean secondPassMatches, float secondPassScore) {
       float score = firstPassScore;
       if (secondPassMatches) {
-        score += reRankWeight * secondPassScore;
+        score = (float) (score + reRankWeight * secondPassScore);
       }
       return score;
     }
diff --git a/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java b/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java
index 5728b6c9c2d..561ecfb1d96 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CloudExitableDirectoryReaderTest.java
@@ -98,7 +98,7 @@ public class CloudExitableDirectoryReaderTest extends SolrCloudTestCase {
             (n, c) -> DocCollection.isFullyActive(n, c, 2, 1));
 
     fiveHundredsByNode = new LinkedHashMap<>();
-    int httpOk = 0;
+    long httpOk = 0;
     for (JettySolrRunner jetty : cluster.getJettySolrRunners()) {
       MetricRegistry metricRegistry = ((JettySolrRunnerWithMetrics) jetty).getMetricRegistry();
 
@@ -301,7 +301,7 @@ public class CloudExitableDirectoryReaderTest extends SolrCloudTestCase {
         }; // add more cases here
 
     params.add(cases[random().nextInt(cases.length)]);
-    for (; ; creep *= 1.5) {
+    for (; ; creep = (int) (creep * 1.5)) {
       try (Trap catchClass = catchCount(creep)) {
 
         params.set("boundary", creep);
diff --git a/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java
index d49b4e61dd8..6f7d9ea959a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DistribDocExpirationUpdateProcessorTest.java
@@ -252,7 +252,7 @@ public class DistribDocExpirationUpdateProcessorTest extends SolrCloudTestCase {
     final Set<String> shardsThatChange = new HashSet<>();
 
     int coresCompared = 0;
-    int totalDocsOnAllShards = 0;
+    long totalDocsOnAllShards = 0;
     final DocCollection collectionState =
         cluster.getSolrClient().getClusterState().getCollection(COLLECTION);
     for (Slice shard : collectionState) {
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
index 17e0440fada..3bbbf5d088b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudRecovery.java
@@ -140,9 +140,9 @@ public class TestCloudRecovery extends SolrCloudTestCase {
     }
 
     // check metrics
-    int replicationCount = 0;
-    int errorsCount = 0;
-    int skippedCount = 0;
+    long replicationCount = 0;
+    long errorsCount = 0;
+    long skippedCount = 0;
     for (JettySolrRunner jetty : cluster.getJettySolrRunners()) {
       SolrMetricManager manager = jetty.getCoreContainer().getMetricManager();
       List<String> registryNames =
diff --git a/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java
index 764448dbb92..967313b4a34 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/TermsComponentTest.java
@@ -717,11 +717,11 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
               totBuff,
               minSegBuff);
       MutableValueInt v = (MutableValueInt) iter.getMutableValue();
-      int i = 0;
+      long i = 0;
       for (; ; ) {
         long count = iter.getNextCount();
         if (count < 0) break;
-        assertEquals(vals[i], v.value);
+        assertEquals(vals[(int) i], v.value);
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
@@ -737,7 +737,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
       for (; ; ) {
         long count = iter.getNextCount();
         if (count < 0) break;
-        assertEquals(vals[i], lv.value);
+        assertEquals(vals[(int) i], lv.value);
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
@@ -753,7 +753,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
       for (; ; ) {
         long count = iter.getNextCount();
         if (count < 0) break;
-        assertEquals(vals[i], fv.value, 0);
+        assertEquals(vals[(int) i], fv.value, 0);
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
@@ -769,7 +769,7 @@ public class TermsComponentTest extends SolrTestCaseJ4 {
       for (; ; ) {
         long count = iter.getNextCount();
         if (count < 0) break;
-        assertEquals(vals[i], dv.value, 0);
+        assertEquals(vals[(int) i], dv.value, 0);
         i += count;
         // if (i < 10) System.out.println("COUNT=" + count + " OBJ="+v.toObject());
       }
diff --git a/solr/core/src/test/org/apache/solr/search/TestFiltering.java b/solr/core/src/test/org/apache/solr/search/TestFiltering.java
index 7d559d4d296..1d44ac2943f 100644
--- a/solr/core/src/test/org/apache/solr/search/TestFiltering.java
+++ b/solr/core/src/test/org/apache/solr/search/TestFiltering.java
@@ -493,7 +493,7 @@ public class TestFiltering extends SolrTestCaseJ4 {
       // sanity check
       assertJQ(req("q", "*:*"), "/response/numFound==" + model.indexSize);
 
-      int totalMatches = 0;
+      long totalMatches = 0;
       int nonZeros = 0;
       for (int qiter = 0; qiter < queryIter; qiter++) {
         model.clear();
diff --git a/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java b/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java
index 9bf1da52dc0..bbbbf5f84b3 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSearchPerf.java
@@ -163,14 +163,14 @@ public class TestSearchPerf extends SolrTestCaseJ4 {
     return ret;
   }
 
-  private int doListGen(Query q, List<Query> filt) throws Exception {
+  private long doListGen(Query q, List<Query> filt) throws Exception {
     SolrQueryRequest req = lrf.makeRequest();
 
     SolrIndexSearcher searcher = req.getSearcher();
 
     final RTimer timer = new RTimer();
 
-    int ret = 0;
+    long ret = 0;
     for (int i = 0; i < ITERATIONS; i++) {
       DocList l =
           searcher.getDocList(q, filt, (Sort) null, 0, 10, SolrIndexSearcher.NO_CHECK_QCACHE);
diff --git a/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
index 9c3943634e5..ee0f599e621 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
@@ -468,7 +468,7 @@ public class CategoryRoutedAliasUpdateProcessorTest extends RoutedAliasUpdatePro
     observedCols.sort(String::compareTo); // don't really care about the order here.
     assertFalse(observedCols.isEmpty());
 
-    int numFoundViaCollections = 0;
+    long numFoundViaCollections = 0;
     for (String col : observedCols) {
       final QueryResponse colResponse =
           solrClient.query(
diff --git a/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java
index 28e5e665813..25237a153a5 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/DimensionalRoutedAliasUpdateProcessorTest.java
@@ -555,7 +555,7 @@ public class DimensionalRoutedAliasUpdateProcessorTest extends RoutedAliasUpdate
       throws Exception {
     final int expectNumFound =
         lastDocId - numDocsDeletedOrFailed; // lastDocId is effectively # generated docs
-    int totalNumFound = 0;
+    long totalNumFound = 0;
 
     final List<String> cols =
         new CollectionAdminRequest.ListAliases()
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 ecb05fad51f..06985502b97 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
@@ -85,7 +85,7 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
   private CloudSolrClient solrClient;
 
   private int lastDocId = 0;
-  private int numDocsDeletedOrFailed = 0;
+  private long numDocsDeletedOrFailed = 0;
 
   @Before
   public void doBefore() throws Exception {
@@ -852,7 +852,7 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
   }
 
   private void assertInvariants(String... expectedColls) throws IOException, SolrServerException {
-    final int expectNumFound =
+    final long expectNumFound =
         lastDocId - numDocsDeletedOrFailed; // lastDocId is effectively # generated docs
 
     final List<String> cols =
@@ -864,7 +864,7 @@ public class TimeRoutedAliasUpdateProcessorTest extends RoutedAliasUpdateProcess
         cols.stream().sorted(Collections.reverseOrder()).toArray(),
         cols.toArray());
 
-    int totalNumFound = 0;
+    long totalNumFound = 0;
     Instant colEndInstant = null; // exclusive end
     for (String col : cols) { // ASSUMPTION: reverse sorted order
       final Instant colStartInstant = TimeRoutedAlias.parseInstantFromCollectionName(alias, col);
diff --git a/solr/core/src/test/org/apache/solr/util/BitSetPerf.java b/solr/core/src/test/org/apache/solr/util/BitSetPerf.java
index 86a815bf428..28124ab35df 100644
--- a/solr/core/src/test/org/apache/solr/util/BitSetPerf.java
+++ b/solr/core/src/test/org/apache/solr/util/BitSetPerf.java
@@ -69,7 +69,7 @@ public class BitSetPerf {
     FixedBitSet obs = new FixedBitSet(bitSetSize);
     randomSets(bitSetSize, numBitsSet, bs, obs);
 
-    int ret = 0;
+    long ret = 0;
 
     final RTimer timer = new RTimer();
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
index 1e52d73627f..9982bc3a4ca 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java
@@ -398,8 +398,8 @@ public class CloudHttp2SolrClientTest extends SolrCloudTestCase {
 
     // Request counts increase from expected nodes should aggregate to 1000, while there should be
     // no increase in unexpected nodes.
-    int increaseFromExpectedUrls = 0;
-    int increaseFromUnexpectedUrls = 0;
+    long increaseFromExpectedUrls = 0;
+    long increaseFromUnexpectedUrls = 0;
     Map<String, Long> numRequestsToUnexpectedUrls = Maps.newHashMap();
     for (Slice slice : col.getSlices()) {
       for (Replica replica : slice.getReplicas()) {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java
index 85318bf5fff..dd062582966 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java
@@ -398,8 +398,8 @@ public class CloudSolrClientTest extends SolrCloudTestCase {
 
     // Request counts increase from expected nodes should aggregate to 1000, while there should be
     // no increase in unexpected nodes.
-    int increaseFromExpectedUrls = 0;
-    int increaseFromUnexpectedUrls = 0;
+    long increaseFromExpectedUrls = 0;
+    long increaseFromUnexpectedUrls = 0;
     Map<String, Long> numRequestsToUnexpectedUrls = Maps.newHashMap();
     for (Slice slice : col.getSlices()) {
       for (Replica replica : slice.getReplicas()) {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java
index de5a93b56d5..960a1604f35 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java
@@ -180,7 +180,7 @@ public class HttpSolrClientConPoolTest extends SolrJettyTestBase {
       for (int i = 0; i < 2; i++) {
         roundRobin.commit();
       }
-      int total = 0;
+      long total = 0;
       for (int i = 0; i < 2; i++) {
         total += roundRobin.query(new SolrQuery("*:*")).getResults().getNumFound();
       }
diff --git a/solr/solrj/src/test/org/noggit/TestJSONParser.java b/solr/solrj/src/test/org/noggit/TestJSONParser.java
index 17d043e376e..e718e90e361 100644
--- a/solr/solrj/src/test/org/noggit/TestJSONParser.java
+++ b/solr/solrj/src/test/org/noggit/TestJSONParser.java
@@ -246,7 +246,7 @@ public class TestJSONParser extends SolrTestCaseJ4 {
       JSONParser parser = getParser(new String(arr));
       parser.setFlags(random().nextInt()); // set random parser flags
 
-      int ret = 0;
+      double ret = 0;
       try {
         for (; ; ) {
           int ev = parser.nextEvent();
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 b3c7c4be31c..43f8376fac7 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
@@ -1733,7 +1733,7 @@ public abstract class AbstractFullDistribZkTestBase extends AbstractDistribZkTes
 
     // now check that the right # are on each shard
     theShards = shardToJetty.keySet();
-    int cnt = 0;
+    long cnt = 0;
     for (String s : theShards) {
       int times = shardToJetty.get(s).size();
       for (int i = 0; i < times; i++) {
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 ff59cc836d1..acd101985cd 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
@@ -366,10 +366,10 @@ public abstract class AbstractIncrementalBackupTest extends SolrCloudTestCase {
             .get();
     try (FileInputStream fis = new FileInputStream(fileGetCorrupted)) {
       byte[] contents = fis.readAllBytes();
-      contents[contents.length - CodecUtil.footerLength() - 1] += 1;
-      contents[contents.length - CodecUtil.footerLength() - 2] += 1;
-      contents[contents.length - CodecUtil.footerLength() - 3] += 1;
-      contents[contents.length - CodecUtil.footerLength() - 4] += 1;
+      for (int i = 1; i < 5; i++) {
+        byte key = (byte) (contents.length - CodecUtil.footerLength() - i);
+        contents[key] = (byte) (contents[key] + 1);
+      }
       try (FileOutputStream fos = new FileOutputStream(fileGetCorrupted)) {
         fos.write(contents);
       }