From f76f8251627aa5bf6ebbfd152259cd9e6dddbdcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Thu, 2 Jul 2026 23:22:23 +0200 Subject: [PATCH 1/8] Update com.google.errorprone to 2.50.0; fix new bug-pattern findings Error Prone 2.50.0 flags new/stricter bug patterns across the codebase. This fixes or suppresses all findings so the build passes with -Werror: - ReferenceEquality: ~130 sites reviewed individually. Intentional identity comparisons (unique sentinels like END_OBJ/NO_OP/DELETED, cached singleton instances, same-instance fast paths, Calcite copy() conventions) got @SuppressWarnings("ReferenceEquality") with a justifying comment on the smallest enclosing method. Value-semantics comparisons were rewritten to equals()/Objects.equals(), fixing three latent bugs: * ZkMaintenanceUtils compared Path with == when uploading a single file * ZkShardTermsTest.waitFor compared boxed values by reference (could always burn the full timeout for non-cached boxed types) * HttpShardHandler compared a context Boolean with == (Boolean.TRUE.equals) - JdkObsolete: modernized String/stream charset handling to java.nio.charset.Charset overloads (ContentStreamBase, HttpSolrClient, XMLLoader, response parsers/writers, spellchecker, tests); removed now-dead UnsupportedEncodingException handling. Tika-copied ToTextContentHandler keeps its checked-exception API (suppressed). - NotJavadoc: stray/duplicate javadoc on anonymous/local-class methods and commented-out code converted to regular comments. - TypeParameterQualifier: T::toString -> Object::toString in RequestReplicaListTransformerGenerator. Verified with: gradlew check -x test -Pvalidation.errorprone=true --- .../update-google-errorprone-2.50.0.yml | 5 +++ gradle/libs.versions.toml | 2 +- solr/api/gradle.lockfile | 10 +++--- solr/benchmark/gradle.lockfile | 10 +++--- solr/core/gradle.lockfile | 10 +++--- .../java/org/apache/solr/cli/ExportTool.java | 2 ++ .../cloud/DistributedClusterStateUpdater.java | 4 +++ .../java/org/apache/solr/cloud/LockTree.java | 2 ++ .../java/org/apache/solr/cloud/Overseer.java | 4 +-- .../solr/cloud/ReplicateFromLeader.java | 2 ++ .../api/collections/CategoryRoutedAlias.java | 2 ++ .../collections/DimensionalRoutedAlias.java | 2 ++ .../api/collections/TimeRoutedAlias.java | 2 ++ .../solr/cloud/overseer/ZkStateWriter.java | 7 +++++ .../solr/cloud/overseer/ZkWriteCommand.java | 2 ++ .../solr/core/CachingDirectoryFactory.java | 6 ++++ .../org/apache/solr/core/CoreContainer.java | 2 ++ .../java/org/apache/solr/core/PluginBag.java | 3 +- .../java/org/apache/solr/core/SolrCore.java | 7 +++++ .../java/org/apache/solr/core/SolrPaths.java | 2 ++ .../apache/solr/core/SolrResourceLoader.java | 9 ++++++ .../solr/handler/ReplicationHandler.java | 12 ++++--- .../solr/handler/admin/CoreAdminHandler.java | 3 ++ .../handler/admin/IndexSizeEstimator.java | 3 ++ .../handler/admin/SecurityConfHandler.java | 6 ++++ .../handler/admin/SystemInfoProvider.java | 2 ++ .../handler/component/HttpShardHandler.java | 2 +- .../component/RealTimeGetComponent.java | 4 +++ .../handler/component/ResponseBuilder.java | 2 ++ .../solr/handler/component/SearchHandler.java | 2 ++ .../solr/handler/component/StatsField.java | 4 +-- .../handler/component/TermsComponent.java | 2 ++ .../DefaultSampleDocumentsLoader.java | 6 ++-- .../solr/handler/loader/JavabinLoader.java | 2 ++ .../apache/solr/handler/loader/XMLLoader.java | 5 ++- .../org/apache/solr/handler/tagger/TagLL.java | 4 +++ .../org/apache/solr/legacy/BBoxStrategy.java | 3 ++ .../apache/solr/logging/jul/JulWatcher.java | 2 ++ .../solr/logging/log4j2/Log4j2Watcher.java | 4 +-- .../DualRegistryAttributedLongCounter.java | 2 ++ .../DualRegistryAttributedLongTimer.java | 2 ++ ...alRegistryAttributedLongUpDownCounter.java | 2 ++ .../org/apache/solr/pkg/PackageListeners.java | 2 ++ .../apache/solr/pkg/PackagePluginHolder.java | 2 ++ .../response/TextQueryResponseWriter.java | 7 ++--- .../solr/response/TextResponseWriter.java | 2 ++ .../transform/RawValueTransformerFactory.java | 2 ++ .../transform/ValueSourceAugmenter.java | 2 ++ .../org/apache/solr/schema/BBoxField.java | 2 ++ .../apache/solr/schema/CurrencyFieldType.java | 2 +- .../org/apache/solr/schema/IndexSchema.java | 2 ++ .../solr/schema/LatLonPointSpatialField.java | 3 ++ .../org/apache/solr/schema/SchemaManager.java | 3 ++ .../org/apache/solr/search/CaffeineCache.java | 3 ++ .../java/org/apache/solr/search/DocSlice.java | 2 +- .../solr/search/DocValuesIteratorCache.java | 2 ++ .../solr/search/ExtendedDismaxQParser.java | 3 ++ .../solr/search/GraphTermsQParserPlugin.java | 5 +++ .../org/apache/solr/search/JoinQuery.java | 6 ++++ .../apache/solr/search/QueryResultKey.java | 2 ++ .../apache/solr/search/SolrIndexSearcher.java | 8 +++-- .../apache/solr/search/SortedIntDocSet.java | 2 +- .../search/facet/FacetFieldProcessor.java | 6 ++++ .../solr/search/facet/RelatednessAgg.java | 3 ++ .../org/apache/solr/search/facet/SlotAcc.java | 4 +++ .../solr/search/facet/UnInvertedField.java | 2 ++ .../search/function/DualDoubleFunction.java | 2 +- .../solr/security/AllowListUrlChecker.java | 3 ++ .../security/PKIAuthenticationPlugin.java | 2 ++ .../org/apache/solr/servlet/HttpSolrCall.java | 3 ++ .../solr/servlet/RequestRateLimiter.java | 6 ++++ .../solr/servlet/SolrRequestParsers.java | 4 ++- .../spelling/ConjunctionSolrSpellChecker.java | 3 ++ .../solr/spelling/FileBasedSpellChecker.java | 4 ++- .../solr/update/DirectUpdateHandler2.java | 2 ++ .../apache/solr/update/MemOutputStream.java | 2 ++ .../java/org/apache/solr/update/PeerSync.java | 6 ++++ .../solr/update/PeerSyncWithLeader.java | 9 ++++++ .../apache/solr/update/SolrIndexConfig.java | 2 ++ .../org/apache/solr/update/UpdateLog.java | 7 ++++- ...uesOrNoneFieldMutatingUpdateProcessor.java | 3 ++ .../processor/AtomicUpdateDocumentMerger.java | 3 ++ .../DocBasedVersionConstraintsProcessor.java | 3 ++ .../FieldMutatingUpdateProcessor.java | 3 ++ .../FieldValueMutatingUpdateProcessor.java | 3 ++ ...SkipExistingDocumentsProcessorFactory.java | 3 ++ .../org/apache/solr/TestGroupingSearch.java | 2 ++ .../cloud/LeaderElectionIntegrationTest.java | 2 ++ .../apache/solr/cloud/ZkShardTermsTest.java | 2 +- .../solr/handler/TestStressThreadBackup.java | 8 ++--- .../solr/handler/admin/TestApiFramework.java | 3 ++ .../org/apache/solr/pkg/TestPackages.java | 2 ++ .../TestManagedSynonymGraphFilterFactory.java | 12 ++++--- .../schema/TestManagedSchemaThreadSafety.java | 2 ++ .../solr/search/facet/TestJsonFacets.java | 2 ++ .../search/function/AggValueSourceTest.java | 2 ++ .../uninverting/TestFieldCacheSortRandom.java | 2 ++ .../update/TestInPlaceUpdatesStandalone.java | 4 ++- solr/cross-dc-manager/gradle.lockfile | 10 +++--- .../error_prone_annotations-2.47.0.jar.sha1 | 1 - .../error_prone_annotations-2.48.0.jar.sha1 | 1 - .../error_prone_annotations-2.50.0.jar.sha1 | 1 + solr/modules/analysis-extras/gradle.lockfile | 10 +++--- ...ctNamedEntitiesUpdateProcessorFactory.java | 4 +-- solr/modules/clustering/gradle.lockfile | 10 +++--- solr/modules/cross-dc/gradle.lockfile | 10 +++--- .../processor/MirroringUpdateProcessor.java | 6 ++-- .../solr/crossdc/common/ConfUtilTest.java | 7 +++-- solr/modules/cuvs/gradle.lockfile | 10 +++--- solr/modules/extraction/gradle.lockfile | 10 +++--- .../fromtika/ToTextContentHandler.java | 2 ++ solr/modules/gcs-repository/gradle.lockfile | 11 +++---- solr/modules/jwt-auth/gradle.lockfile | 10 +++--- solr/modules/langid/gradle.lockfile | 10 +++--- solr/modules/language-models/gradle.lockfile | 10 +++--- solr/modules/ltr/gradle.lockfile | 10 +++--- .../apache/solr/ltr/feature/SolrFeature.java | 3 ++ .../solr/ltr/model/LTRScoringModel.java | 2 ++ solr/modules/opentelemetry/gradle.lockfile | 10 +++--- solr/modules/s3-repository/gradle.lockfile | 10 +++--- solr/modules/scripting/gradle.lockfile | 10 +++--- solr/modules/sql/gradle.lockfile | 10 +++--- .../solr/handler/sql/SolrAggregate.java | 2 ++ .../apache/solr/handler/sql/SolrFilter.java | 2 ++ .../apache/solr/handler/sql/SolrProject.java | 2 ++ .../org/apache/solr/handler/sql/SolrSort.java | 2 ++ .../solr/handler/sql/SolrTableScan.java | 2 ++ solr/server/gradle.lockfile | 10 +++--- solr/solr-ref-guide/gradle.lockfile | 10 +++--- solr/solrj-jetty/gradle.lockfile | 10 +++--- solr/solrj-streaming/gradle.lockfile | 10 +++--- .../client/solrj/io/comp/FieldComparator.java | 4 ++- .../client/solrj/io/eq/FieldEqualitor.java | 4 ++- .../io/stream/JavabinTupleStreamParser.java | 5 ++- solr/solrj-zookeeper/gradle.lockfile | 10 +++--- .../solr/common/cloud/ZkMaintenanceUtils.java | 2 +- .../solr/common/cloud/ZkStateReader.java | 6 ++++ solr/solrj/gradle.lockfile | 19 +++++++----- .../impl/ConcurrentUpdateBaseSolrClient.java | 2 ++ .../client/solrj/impl/HttpSolrClient.java | 6 ++-- .../solrj/request/CollectionAdminRequest.java | 2 +- .../request/JavaBinUpdateRequestCodec.java | 2 ++ .../client/solrj/response/ResponseParser.java | 2 ++ .../json/JacksonDataBindResponseParser.java | 4 ++- .../response/json/JsonMapResponseParser.java | 5 ++- ...equestReplicaListTransformerGenerator.java | 2 +- .../org/apache/solr/common/SolrDocument.java | 4 +-- .../apache/solr/common/params/SolrParams.java | 31 ++++++++----------- .../solr/common/util/CommandOperation.java | 3 ++ .../solr/common/util/ContentStreamBase.java | 19 +++++------- .../apache/solr/common/util/JavaBinCodec.java | 6 ++++ .../org/apache/solr/common/util/Utils.java | 2 +- .../solrj/src/java/org/noggit/JSONParser.java | 4 +++ .../solr/common/util/TestFastWriter.java | 3 ++ .../src/test/org/noggit/TestJSONParser.java | 3 ++ solr/test-framework/gradle.lockfile | 10 +++--- .../solr/BaseDistributedSearchTestCase.java | 2 ++ .../java/org/apache/solr/JSONTestUtil.java | 2 ++ .../java/org/apache/solr/SolrTestCaseJ4.java | 13 ++++++++ .../solr/cluster/placement/Builders.java | 3 ++ .../apache/solr/embedded/JettySolrRunner.java | 2 ++ .../util/RevertDefaultThreadHandlerRule.java | 3 ++ .../org/apache/solr/util/SSLTestConfig.java | 6 ++-- solr/webapp/gradle.lockfile | 10 +++--- 164 files changed, 559 insertions(+), 232 deletions(-) create mode 100644 changelog/unreleased/update-google-errorprone-2.50.0.yml delete mode 100644 solr/licenses/error_prone_annotations-2.47.0.jar.sha1 delete mode 100644 solr/licenses/error_prone_annotations-2.48.0.jar.sha1 create mode 100644 solr/licenses/error_prone_annotations-2.50.0.jar.sha1 diff --git a/changelog/unreleased/update-google-errorprone-2.50.0.yml b/changelog/unreleased/update-google-errorprone-2.50.0.yml new file mode 100644 index 000000000000..d942aabcc96b --- /dev/null +++ b/changelog/unreleased/update-google-errorprone-2.50.0.yml @@ -0,0 +1,5 @@ +# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc +title: Update com.google.errorprone to 2.50.0 and fix/suppress new bug patterns (ReferenceEquality, JdkObsolete, NotJavadoc, TypeParameterQualifier) +type: dependency_update +authors: + - name: Jan Høydahl diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e076c950d135..109480d70e94 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -98,7 +98,7 @@ google-api-grpc-proto = "2.61.1" # @keep for version alignment google-autovalue = "1.11.1" google-cloud-bom = "0.265.0" -google-errorprone = "2.41.0" +google-errorprone = "2.50.0" # @keep for version alignment google-gson = "2.14.0" google-guava = "33.6.0-jre" diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile index 4ceba558b0a7..fa6c6bad877e 100644 --- a/solr/api/gradle.lockfile +++ b/solr/api/gradle.lockfile @@ -21,11 +21,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile index cf144c179e06..f5fe63538a97 100644 --- a/solr/benchmark/gradle.lockfile +++ b/solr/benchmark/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile index 999d65c40a21..55de597335bc 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -20,11 +20,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,compileClasspat com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/core/src/java/org/apache/solr/cli/ExportTool.java b/solr/core/src/java/org/apache/solr/cli/ExportTool.java index 9fb9a23e3d2c..0ab4f0b89fef 100644 --- a/solr/core/src/java/org/apache/solr/cli/ExportTool.java +++ b/solr/core/src/java/org/apache/solr/cli/ExportTool.java @@ -594,6 +594,8 @@ private void addProducers(Map m) { } } + // EOFDOC is a unique sentinel instance, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private void addConsumer(CountDownLatch consumerlatch) { consumerThreadpool.execute( () -> { diff --git a/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java b/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java index 3c4c152bdcf0..3405d5366d33 100644 --- a/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java +++ b/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java @@ -754,7 +754,9 @@ public boolean isCollectionCreation() { return isCollectionCreation; } + // ZkStateWriter.NO_OP is a unique sentinel, so identity comparison against it is intentional @Override + @SuppressWarnings("ReferenceEquality") public void computeUpdates(ClusterState clusterState, SolrZkClient client) { boolean hasJsonUpdates = false; List perReplicaStateOps = new ArrayList<>(); @@ -911,7 +913,9 @@ public boolean isCollectionCreation() { return false; } + // ZkStateWriter.NO_OP is a unique sentinel, so identity comparison against it is intentional @Override + @SuppressWarnings("ReferenceEquality") public void computeUpdates(ClusterState clusterState, SolrZkClient client) { final DocCollection docCollection = clusterState.getCollectionOrNull(collectionName); Optional result = diff --git a/solr/core/src/java/org/apache/solr/cloud/LockTree.java b/solr/core/src/java/org/apache/solr/cloud/LockTree.java index 6bb432abd8e8..44d74a57bb6c 100644 --- a/solr/core/src/java/org/apache/solr/cloud/LockTree.java +++ b/solr/core/src/java/org/apache/solr/cloud/LockTree.java @@ -214,6 +214,8 @@ boolean isLocked() { return false; } + // checks that the exact lock instance held by this node is the one being released + @SuppressWarnings("ReferenceEquality") boolean unlock(LockImpl lockObject) { if (--refCount > 0) { return false; 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 cc8e65537c5f..d2c3520f1e6a 100644 --- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java +++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java @@ -782,9 +782,9 @@ public synchronized void start(String id) { assert ObjectReleaseTracker.track(this); } - /** Start {@link ClusterSingleton} plugins when we become the leader. */ + // Start ClusterSingleton plugins when we become the leader. - /** Stop {@link ClusterSingleton} plugins when we lose leadership. */ + // Stop ClusterSingleton plugins when we lose leadership. public Stats getStats() { return stats; } diff --git a/solr/core/src/java/org/apache/solr/cloud/ReplicateFromLeader.java b/solr/core/src/java/org/apache/solr/cloud/ReplicateFromLeader.java index a6998fe38cb5..7fbffd960d91 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ReplicateFromLeader.java +++ b/solr/core/src/java/org/apache/solr/cloud/ReplicateFromLeader.java @@ -64,6 +64,8 @@ public ReplicateFromLeader(CoreContainer cc, String coreName) { * @param switchTransactionLog if true, ReplicationHandler will rotate the transaction log once * the replication is done */ + // INDEX_FETCH_SUCCESS is a unique sentinel instance, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public void startReplication(boolean switchTransactionLog) { try (SolrCore core = cc.getCore(coreName)) { if (core == null) { diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java index c787fdc80ce1..c543992cf714 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java @@ -79,6 +79,8 @@ public class CategoryRoutedAlias extends RoutedAlias { this.mustMatch = mustMatch == null ? null : compileMustMatch(mustMatch); } + // Aliases is an immutable snapshot; identity comparison detects whether ZK handed us a new one + @SuppressWarnings("ReferenceEquality") @Override public boolean updateParsedCollectionAliases(ZkStateReader zkStateReader, boolean contextualize) { final Aliases aliases = diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java index 0b2cb49678c2..5e4bc3124912 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/DimensionalRoutedAlias.java @@ -211,6 +211,8 @@ protected String getHeadCollectionIfOrdered(AddUpdateCommand cmd) { * @param targetCol the collection for which a document is destined. * @return A list of actions across the DRA. */ + // sourceAlias is compared against the very dimension instance it came from; identity intended + @SuppressWarnings("ReferenceEquality") @Override protected List calculateActions(String targetCol) { String[] routeValues = SEP_MATCHER.split(targetCol); diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java index 8139956116e6..7479d65d062d 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java @@ -263,7 +263,9 @@ private static void checkMillis(Instant date) { } } + // Aliases is immutable and replaced wholesale on change, so identity comparison detects updates @Override + @SuppressWarnings("ReferenceEquality") public boolean updateParsedCollectionAliases(ZkStateReader zkStateReader, boolean contextualize) { final Aliases aliases = zkStateReader.getAliases(); if (this.parsedCollectionsAliases != aliases) { diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java index 8059a2b16b6d..3193201cc9de 100644 --- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java +++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java @@ -129,6 +129,8 @@ public void updateClusterState(Function fun) { * a {@link org.apache.zookeeper.KeeperException.BadVersionException} this instance becomes * unusable and must be discarded */ + // NO_OP is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public ClusterState enqueueUpdate( ClusterState prevState, List cmds, ZkWriteCallback callback) throws IllegalStateException, Exception { @@ -189,6 +191,8 @@ public ClusterState enqueueUpdate( return clusterState; } + // NO_OP is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private boolean isNoOps(List cmds) { for (ZkWriteCommand cmd : cmds) { if (cmd != NO_OP) return false; @@ -229,6 +233,9 @@ public ClusterState writePendingUpdates() throws KeeperException, InterruptedExc * @throws KeeperException if any ZooKeeper operation results in an error * @throws InterruptedException if the current thread is interrupted */ + // Identity comparison of the updates map against this.updates is intentional: it detects + // whether the caller asked to flush all pending updates rather than a specific subset + @SuppressWarnings("ReferenceEquality") public ClusterState writePendingUpdates( Map updates, boolean resetPendingUpdateCounters) throws IllegalStateException, KeeperException, InterruptedException { diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkWriteCommand.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkWriteCommand.java index f2d5466f760c..ed19e0f975f3 100644 --- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkWriteCommand.java +++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkWriteCommand.java @@ -48,7 +48,9 @@ public ZkWriteCommand(String name, DocCollection collection) { this(name, collection, null, true); } + // NO_OP is a unique sentinel, so identity comparison against it is intentional @Override + @SuppressWarnings("ReferenceEquality") public String toString() { return getClass().getSimpleName() + ": " + (this == NO_OP ? "no-op" : name + "=" + collection); } diff --git a/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java index 8b943b7dc791..7357c2f137f5 100644 --- a/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java +++ b/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java @@ -223,6 +223,8 @@ private void removeFromCache(CacheValue v) { // be sure the method is called with the sync lock on this object // returns true if we closed the cacheValue, false if it will be closed later + // CacheValue entries are cached per instance, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") private boolean closeCacheValue(CacheValue cacheValue, Set deferRemove) { log.debug("looking to close {} {}", cacheValue.path, cacheValue.closeEntries); List listeners = closeListeners.remove(cacheValue.directory); @@ -300,6 +302,8 @@ private static Iterable sorted(Set vals) { return vals.stream().sorted((a, b) -> b.path.compareTo(a.path)).collect(Collectors.toList()); } + // CacheValue entries are cached per instance, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") private boolean maybeDeferClose(CacheValue maybeDefer) { assert maybeDefer.deleteOnClose; for (CacheValue maybeChildPath : byPathCache.values()) { @@ -381,6 +385,8 @@ public boolean exists(String path) throws IOException { * java.lang.String, boolean) */ @Override + // checking whether filterDirectory() returned the same instance is intentional + @SuppressWarnings("ReferenceEquality") public final Directory get(String path, DirContext dirContext, String rawLockType) throws IOException { String fullPath = normalize(path); diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java index 186e319eae89..0a867cdb603c 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -1433,6 +1433,8 @@ public CoreSorter getCoreSorter() { return coreSorter; } + // checking whether putCore() returned the same core instance is intentional + @SuppressWarnings("ReferenceEquality") protected SolrCore registerCore( CoreDescriptor cd, SolrCore core, boolean registerInZk, boolean skipRecovery) { if (core == null) { 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 30bb8435214f..00da7ca58f43 100644 --- a/solr/core/src/java/org/apache/solr/core/PluginBag.java +++ b/solr/core/src/java/org/apache/solr/core/PluginBag.java @@ -229,7 +229,8 @@ public T put(String name, T plugin) { return old == null ? null : old.get(); } - @SuppressWarnings({"unchecked"}) + // checking whether the registry already held this exact plugin instance is intentional + @SuppressWarnings({"unchecked", "ReferenceEquality"}) public PluginHolder put(String name, PluginHolder plugin) { Boolean registerApi = null; // i.e. register for V2 Boolean disableV1 = null; // i.e. do *not* register for v1 diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java index 7e9eaeb01b25..e8aaff168ecb 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCore.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java @@ -2316,6 +2316,8 @@ public RefCounted getSearcher( * *

This method acquires openSearcherLock - do not call with searchLock held! */ + // comparing schema instances detects a schema reload, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public RefCounted openNewSearcher( boolean updateHandlerReopens, boolean realtime) { if (isClosed()) { // catch some errors quicker @@ -2532,6 +2534,9 @@ public RefCounted openNewSearcher( * SolrIndexSearcher}. */ // TODO waitSearcher should be an AtomicReference or something that is a more clear API + // comparing searcher instances detects whether the underlying searcher changed, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") public RefCounted getSearcher( boolean forceNew, boolean returnSearcher, @@ -2818,6 +2823,8 @@ public boolean isReloaded() { // // onDeckSearchers will also be decremented (it should have been incremented // as a result of opening a new searcher). + // detecting re-registration of the same searcher holder instance is intentional + @SuppressWarnings("ReferenceEquality") private void registerSearcher(RefCounted newSearcherHolder) { synchronized (searcherLock) { try { diff --git a/solr/core/src/java/org/apache/solr/core/SolrPaths.java b/solr/core/src/java/org/apache/solr/core/SolrPaths.java index dc2c245eada1..af960a0a5c3d 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrPaths.java +++ b/solr/core/src/java/org/apache/solr/core/SolrPaths.java @@ -123,6 +123,8 @@ public AllowPathBuilder addPath(String path) { * Adds an allowed path. Detects "_ALL_" which means all paths are allowed. Does not detect "*" * (not supported as a {@link Path} on Windows), see {@link #addPath(String)}. */ + // ALL_PATHS is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public AllowPathBuilder addPath(Path path) { if (path == null) { return this; 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 456106d0c877..7e835ddfebe8 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java +++ b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java @@ -216,6 +216,8 @@ public SolrResourceLoader(Path instanceDir, ClassLoader parent) { * * @param urls the URLs of files to add */ + // checking whether addURLsToClassLoader() returned the same instance is intentional + @SuppressWarnings("ReferenceEquality") synchronized void addToClassLoader(List urls) { URLClassLoader newLoader = addURLsToClassLoader(classLoader, urls); if (newLoader == classLoader) { @@ -484,6 +486,9 @@ public Class findClass(String cname, Class expectedType) { * @param subpackages the packages to be tried if the cname starts with solr. * @return the loaded class. An exception is thrown if it fails */ + // comparing against the default `packages` array and the webapp classloader by identity is + // intentional + @SuppressWarnings("ReferenceEquality") public Class findClass( String cname, Class expectedType, String... subpackages) { if (subpackages == null || subpackages.length == 0 || subpackages == packages) { @@ -695,6 +700,8 @@ public boolean addToCoreAware(T obj) { } } + // enforcing that the loader stays bound to the same SolrConfig instance is intentional + @SuppressWarnings("ReferenceEquality") protected final void setSolrConfig(SolrConfig config) { if (this.config != null && this.config != config) { throw new IllegalStateException("SolrConfig instance is already associated with this loader"); @@ -702,6 +709,8 @@ protected final void setSolrConfig(SolrConfig config) { this.config = config; } + // enforcing that the loader stays bound to the same CoreContainer instance is intentional + @SuppressWarnings("ReferenceEquality") protected final void setCoreContainer(CoreContainer coreContainer) { if (this.coreContainer != null && this.coreContainer != coreContainer) { throw new IllegalStateException( 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 7e429de374ea..1c9726917c87 100644 --- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java @@ -480,6 +480,9 @@ static Long getCheckSum(Checksum checksum, Path f) { private volatile IndexFetcher currentIndexFetcher; + // checks whether currentIndexFetcher is the pollingIndexFetcher instance, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") public IndexFetchResult doFetch(SolrParams solrParams, boolean forceReplication) { String leaderUrl = solrParams.get(LEADER_URL, null); if (!indexFetchLock.tryLock()) return IndexFetchResult.LOCK_OBTAIN_FAILED; @@ -1445,6 +1448,9 @@ public void preClose(SolrCore core) { } } + // checks whether currentIndexFetcher is the pollingIndexFetcher instance, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") @Override public void postClose(SolrCore core) { if (pollingIndexFetcher != null) { @@ -1493,10 +1499,8 @@ public void shutdown() { */ private SolrEventListener getEventListener(final boolean snapshoot, final boolean getCommit) { return new SolrEventListener() { - /** - * This refreshes the latest replicateable index commit and optionally can create Snapshots as - * well - */ + // This refreshes the latest replicateable index commit and optionally can create Snapshots + // as well @Override public void postCommit() { IndexCommit currentCommitPoint = core.getDeletionPolicy().getLatestCommit(); diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java index 494e3f898414..515a425610fb 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java @@ -464,6 +464,9 @@ public void submitAsyncTask(TaskObject taskObject) throws SolrException { } } + // detects whether the cache returned our own instance or a pre-existing one, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") private void addTask(TaskObject taskObject) { // Ensure task ID is not already in use TaskObject taskInCache = 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 38eb8a464cfd..18c4bede402e 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 @@ -585,6 +585,9 @@ private void estimateTermStats( } } + // getMergeInstance() may return the same instance, which must not be closed, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") private void estimateStoredFields(Map result) throws IOException { log.info("- estimating stored fields..."); Map> stats = new HashMap<>(); 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 7e9476faf9eb..5f36e69575fd 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 @@ -315,6 +315,9 @@ public Collection getApis() { // the POST authc/authz is getting used. apis.add( new ReqHandlerToApi(this, authcSpecProvider) { + // detects whether the plugin instance was swapped out, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") @Override public synchronized Map getCommandSchema() { // it is possible that the Authentication plugin is modified since the last call. @@ -335,6 +338,9 @@ public synchronized Map getCommandSchema() { }; apis.add( new ApiBag.ReqHandlerToApi(this, authzSpecProvider) { + // detects whether the plugin instance was swapped out, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") @Override public synchronized Map getCommandSchema() { // it is possible that the Authorization plugin is modified since the last call. diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoProvider.java b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoProvider.java index f9b398641564..5dacc07e471c 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoProvider.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoProvider.java @@ -286,6 +286,8 @@ public NodeSystemResponse.JVM getJvmInfo() { } /** Get Security Info */ + // CLUSTER_MEMBER_NODE is a unique sentinel principal, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public NodeSystemResponse.Security getSecurityInfo() { NodeSystemResponse.Security info = new NodeSystemResponse.Security(); 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 34f9a022d70d..da2847210809 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 @@ -496,7 +496,7 @@ public void prepDistributed(ResponseBuilder rb) { ReplicaSource replicaSource; if (zkController != null) { - boolean onlyNrt = Boolean.TRUE == req.getContext().get(ONLY_NRT_REPLICAS); + boolean onlyNrt = Boolean.TRUE.equals(req.getContext().get(ONLY_NRT_REPLICAS)); replicaSource = new CloudReplicaSource.Builder() 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 e08fe5d3ee40..1099b8ff4e35 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 @@ -645,6 +645,8 @@ private static void removeCopyFieldTargets(SolrDocument solrDoc, IndexSchema sch * * @see #getInputDocumentFromTlog(SolrCore, BytesRef, AtomicLong, Set, Resolution) */ + // DELETED is a unique sentinel document, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private static SolrInputDocument getInputDocumentFromTlog( SolrCore core, BytesRef idBytes, @@ -757,6 +759,8 @@ public static SolrInputDocument getInputDocumentFromTlog( * @param resolveStrategy {@link Resolution#DOC} or {@link Resolution#ROOT_WITH_CHILDREN}. * @see Resolution */ + // DELETED is a unique sentinel document, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public static SolrInputDocument getInputDocument( SolrCore core, BytesRef idBytes, diff --git a/solr/core/src/java/org/apache/solr/handler/component/ResponseBuilder.java b/solr/core/src/java/org/apache/solr/handler/component/ResponseBuilder.java index aa85f9a69b44..bc6ddfdccda1 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/ResponseBuilder.java +++ b/solr/core/src/java/org/apache/solr/handler/component/ResponseBuilder.java @@ -191,6 +191,8 @@ public int getShardNum(String shard) { return -1; } + // skips the component instance that created the request, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public void addRequest(SearchComponent me, ShardRequest sreq) { outgoing.add(sreq); if ((sreq.purpose & ShardRequest.PURPOSE_PRIVATE) == 0) { diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java index 3e7a066841f3..75c82111902f 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java @@ -513,6 +513,8 @@ protected void processComponentsLocal( } /** Distributed request processing (AKA coordinator). */ + // ALL_SHARDS is a unique sentinel array, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") protected void processComponentsDistrib( SolrQueryRequest req, SolrQueryResponse rsp, 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 2d01cb4baee4..375817b1c642 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 @@ -84,7 +84,7 @@ public enum Stat { distinctValues(true), countDistinct(false, distinctValues), percentiles(true) { - /** special for percentiles * */ + // special for percentiles @Override boolean parseParams(StatsField sf) { String percentileParas = sf.localParams.get(this.name()); @@ -116,7 +116,7 @@ boolean parseParams(StatsField sf) { } }, cardinality(true) { - /** special for percentiles * */ + // special for cardinality @Override boolean parseParams(StatsField sf) { try { diff --git a/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java b/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java index 36f22d69cdce..ae6c879bded2 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java @@ -642,6 +642,8 @@ private static void fetchTerms( } } + // TermsEnum.EMPTY is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private static void collectTermStates( IndexReaderContext topReaderContext, TermStates[] contextArray, Term[] queryTerms) throws IOException { diff --git a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java index 785be168ca93..7aeb0e963082 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java @@ -25,6 +25,7 @@ import java.io.Reader; import java.io.StringReader; import java.lang.invoke.MethodHandles; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; @@ -139,7 +140,7 @@ protected List loadCsvDocs( throws IOException { ContentStream stream; if (params.get(SEPARATOR) == null) { - String csvStr = new String(streamBytes, charset); + String csvStr = new String(streamBytes, Charset.forName(charset)); char sep = detectTSV(csvStr); ModifiableSolrParams modifiableSolrParams = new ModifiableSolrParams(params); modifiableSolrParams.set(SEPARATOR, String.valueOf(sep)); @@ -198,7 +199,8 @@ protected List loadJsonDocs( String charset = ContentStreamBase.getCharsetFromContentType(stream.getContentType()); String jsonStr = new String( - readAllBytes(stream), charset != null ? charset : ContentStreamBase.DEFAULT_CHARSET); + readAllBytes(stream), + charset != null ? Charset.forName(charset) : StandardCharsets.UTF_8); String[] lines = jsonStr.split("\n"); if (lines.length > 1) { for (String line : lines) { diff --git a/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java index 0c8b47003aec..bcf73c701d44 100644 --- a/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java @@ -154,6 +154,8 @@ private void handleMultiStream( SolrParams params; AddUpdateCommand addCmd = null; + // END_OBJ is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") @Override public List readIterator(DataInputInputStream fis) throws IOException { while (true) { diff --git a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java index 72d93f87b78d..23068f02087c 100644 --- a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.io.InputStream; import java.lang.invoke.MethodHandles; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -134,7 +136,8 @@ private InputStream getStream(ContentStream cs, String charset) throws IOExcepti if (log.isTraceEnabled()) { log.trace( "body: {}", - new String(body, (charset == null) ? ContentStreamBase.DEFAULT_CHARSET : charset)); + new String( + body, (charset == null) ? StandardCharsets.UTF_8 : Charset.forName(charset))); } return new ByteArrayInputStream(body); } diff --git a/solr/core/src/java/org/apache/solr/handler/tagger/TagLL.java b/solr/core/src/java/org/apache/solr/handler/tagger/TagLL.java index a8f3682b479d..e62e0a0401df 100644 --- a/solr/core/src/java/org/apache/solr/handler/tagger/TagLL.java +++ b/solr/core/src/java/org/apache/solr/handler/tagger/TagLL.java @@ -95,6 +95,8 @@ boolean advance(BytesRef word, int offset) throws IOException { * Removes this tag from the chain, connecting prevTag and nextTag. Does not modify "this" * object's pointers, so the caller can refer to nextTag after removing it. */ + // checks whether this node is the head of the linked list, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public void removeLL() { if (head[0] == this) head[0] = nextTag; if (prevTag != null) { @@ -105,6 +107,8 @@ public void removeLL() { } } + // asserts that this node is the head of the linked list, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") void addBeforeLL(TagLL tag) { assert tag.startOffset <= startOffset; if (prevTag != null) { diff --git a/solr/core/src/java/org/apache/solr/legacy/BBoxStrategy.java b/solr/core/src/java/org/apache/solr/legacy/BBoxStrategy.java index 4ce808400649..1cd7316f9396 100644 --- a/solr/core/src/java/org/apache/solr/legacy/BBoxStrategy.java +++ b/solr/core/src/java/org/apache/solr/legacy/BBoxStrategy.java @@ -298,6 +298,9 @@ public DoubleValuesSource makeOverlapRatioValueSource( // .build(); // } + // SpatialOperation instances are enum-like static constants, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") @Override public Query makeQuery(SpatialArgs args) { Shape shape = args.getShape(); diff --git a/solr/core/src/java/org/apache/solr/logging/jul/JulWatcher.java b/solr/core/src/java/org/apache/solr/logging/jul/JulWatcher.java index 271e1358fd1e..8de67195e82e 100644 --- a/solr/core/src/java/org/apache/solr/logging/jul/JulWatcher.java +++ b/solr/core/src/java/org/apache/solr/logging/jul/JulWatcher.java @@ -83,6 +83,8 @@ public void setLogLevel(String category, String level) { } } + // JUL Logger instances are cached singletons per name; identity check for the root logger + @SuppressWarnings("ReferenceEquality") @Override public Collection getAllLoggers() { LogManager manager = LogManager.getLogManager(); 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 8f0af382e33b..3ec7673e0030 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 @@ -185,7 +185,7 @@ public Collection getAllLoggers() { final String name = config.getKey(); final Logger logger = ctx.getLogger(name); - if (logger == root || root.equals(logger) || isRootLogger(name) || "".equals(name)) { + if (root.equals(logger) || isRootLogger(name) || "".equals(name)) { continue; } @@ -204,7 +204,7 @@ public Collection getAllLoggers() { for (Logger logger : ctx.getLoggers()) { String name = logger.getName(); - if (logger == root || root.equals(logger) || isRootLogger(name) || "".equals(name)) { + if (root.equals(logger) || isRootLogger(name) || "".equals(name)) { continue; } diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongCounter.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongCounter.java index 15fc27b85c52..75ec7a886464 100644 --- a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongCounter.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongCounter.java @@ -27,6 +27,8 @@ public class DualRegistryAttributedLongCounter extends AttributedLongCounter { private final AttributedLongCounter nodeCounter; + // asserting that core and node registries provide distinct instrument instances is intentional + @SuppressWarnings("ReferenceEquality") public DualRegistryAttributedLongCounter( LongCounter coreCounter, Attributes coreAttributes, diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongTimer.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongTimer.java index b42d869892c5..d4c405eaa991 100644 --- a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongTimer.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongTimer.java @@ -27,6 +27,8 @@ public class DualRegistryAttributedLongTimer extends AttributedLongTimer { private final AttributedLongTimer nodeTimer; + // asserting that core and node registries provide distinct instrument instances is intentional + @SuppressWarnings("ReferenceEquality") public DualRegistryAttributedLongTimer( LongHistogram coreHistogram, Attributes coreAttributes, diff --git a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongUpDownCounter.java b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongUpDownCounter.java index 6cf505fb54e7..3f636541fc6f 100644 --- a/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongUpDownCounter.java +++ b/solr/core/src/java/org/apache/solr/metrics/otel/instruments/DualRegistryAttributedLongUpDownCounter.java @@ -27,6 +27,8 @@ public class DualRegistryAttributedLongUpDownCounter extends AttributedLongUpDow private final AttributedLongUpDownCounter nodeUpDownCounter; + // asserting that core and node registries provide distinct instrument instances is intentional + @SuppressWarnings("ReferenceEquality") public DualRegistryAttributedLongUpDownCounter( LongUpDownCounter coreUpDownCounter, Attributes coreAttributes, diff --git a/solr/core/src/java/org/apache/solr/pkg/PackageListeners.java b/solr/core/src/java/org/apache/solr/pkg/PackageListeners.java index 7535bb2c7fe9..3376e8ad9657 100644 --- a/solr/core/src/java/org/apache/solr/pkg/PackageListeners.java +++ b/solr/core/src/java/org/apache/solr/pkg/PackageListeners.java @@ -60,6 +60,8 @@ public synchronized void addListener(Listener listener, boolean addFirst) { } } + // removing the exact registered listener instance is intentional + @SuppressWarnings("ReferenceEquality") public synchronized void removeListener(Listener listener) { Iterator> it = listeners.iterator(); while (it.hasNext()) { diff --git a/solr/core/src/java/org/apache/solr/pkg/PackagePluginHolder.java b/solr/core/src/java/org/apache/solr/pkg/PackagePluginHolder.java index 419cb033835f..394b30bfa411 100644 --- a/solr/core/src/java/org/apache/solr/pkg/PackagePluginHolder.java +++ b/solr/core/src/java/org/apache/solr/pkg/PackagePluginHolder.java @@ -90,6 +90,8 @@ public static PluginBag.PluginHolder createHolder( } } + // package Version objects are unique per package instance, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") private synchronized void reload(SolrPackageLoader.SolrPackage pkg, SolrCore core) { String lessThan = core.getSolrConfig().maxPackageVersion(info.pkgName); SolrPackageLoader.SolrPackage.Version newest = pkg.getLatest(lessThan); diff --git a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java index f4df38f830d9..dac0c17219c0 100644 --- a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java @@ -21,8 +21,8 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.StringWriter; -import java.io.UnsupportedEncodingException; import java.io.Writer; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.FastWriter; @@ -64,13 +64,12 @@ default void write( writer.flush(); } - private static Writer buildWriter(OutputStream outputStream, String charset) - throws UnsupportedEncodingException { + private static Writer buildWriter(OutputStream outputStream, String charset) { // note: OutputStreamWriter has an internal buffer; flush is needed Writer writer = (charset == null) ? new OutputStreamWriter(outputStream, StandardCharsets.UTF_8) - : new OutputStreamWriter(outputStream, charset); + : new OutputStreamWriter(outputStream, Charset.forName(charset)); return new FastWriter(writer); // note: buffered; therefore we need to call flush() } 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 6809e99e9368..33bb1eb082da 100644 --- a/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java @@ -109,6 +109,8 @@ public TextResponseWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse * NOTE: strict object equality check against {@link #rawReturnFields}; see javadocs for {@link * #NO_RAW_FIELDS} */ + // strict object equality against rawReturnFields is intentional, per the javadoc above + @SuppressWarnings("ReferenceEquality") protected final boolean shouldWriteRaw(String fname, ReturnFields returnFields) { return rawReturnFields == returnFields && rawFields.contains(fname); } diff --git a/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java b/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java index b165b81e9237..cdf6d8f96949 100644 --- a/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java +++ b/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java @@ -61,6 +61,8 @@ public boolean mayModifyValue() { return false; } + // response writers are cached singletons in the core, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") @Override public DocTransformer create( String display, diff --git a/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java b/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java index e2fe53cf4d56..cc2d4a375951 100644 --- a/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java +++ b/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java @@ -142,6 +142,8 @@ public float score() throws IOException { List readerContexts; IntObjectHashMap cachedValuesById; + // NULL_SENTINEL is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") @Override public void transform(SolrDocument doc, int docid, DocIterationInfo docIterationInfo) { Object cacheValue = (cachedValuesById != null) ? cachedValuesById.get(docid) : null; diff --git a/solr/core/src/java/org/apache/solr/schema/BBoxField.java b/solr/core/src/java/org/apache/solr/schema/BBoxField.java index 4b85573ad73d..41d96ca7e4a2 100644 --- a/solr/core/src/java/org/apache/solr/schema/BBoxField.java +++ b/solr/core/src/java/org/apache/solr/schema/BBoxField.java @@ -74,6 +74,8 @@ protected void init(IndexSchema schema, Map args) { } } + // fields of this type share this exact FieldType instance, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") @Override public void inform(IndexSchema schema) { this.schema = schema; 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 375d3804db1d..1e88b0726b14 100644 --- a/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java +++ b/solr/core/src/java/org/apache/solr/schema/CurrencyFieldType.java @@ -609,7 +609,7 @@ private String getDocCurrencyCode(int doc, int currencyOrd) throws IOException { } } - /** throws a (Server Error) SolrException if the code is not valid */ + // throws a (Server Error) SolrException if the code is not valid private Currency getDocCurrency(int doc, int currencyOrd) throws IOException { String code = getDocCurrencyCode(doc, currencyOrd); Currency c = getCurrency(code); 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 d90251d86357..fc6edcf1044f 100644 --- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java +++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java @@ -1997,6 +1997,8 @@ public IndexSchema deleteCopyFields(Map> copyFields) } /** Informs analyzers used by a fieldType. */ + // ref comparison of analyzers is intentional: skip informing the same instance twice + @SuppressWarnings("ReferenceEquality") private void informResourceLoaderAwareObjectsForFieldType(FieldType fieldType) { // must inform any sub-components used in the // tokenizer chain if they are ResourceLoaderAware 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 238666d71650..0b0cca51cf22 100644 --- a/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java +++ b/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java @@ -156,6 +156,9 @@ public Field[] createIndexableFields(Shape shape) { return fields; } + // SpatialOperation instances are enum-like static constants, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") @Override public Query makeQuery(SpatialArgs args) { if (args.getOperation() != SpatialOperation.Intersects) { diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java index a65eb18df6aa..d6a8d3e0473b 100644 --- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java +++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java @@ -493,6 +493,9 @@ private OpType(String label) { } } + // same-instance check guards against self-referential cause chains, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") public static String getErrorStr(Exception e) { StringBuilder sb = new StringBuilder(); Throwable cause = e; diff --git a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java index e43acb704cc1..2f1b0b8949b9 100644 --- a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java +++ b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java @@ -270,6 +270,9 @@ public V computeIfAbsent(K key, IOFunction mappingFuncti } } + // identity comparison against `old` is intentional: Caffeine skips the RemovalListener + // exactly when the replaced value is the same reference (see NOTE below) + @SuppressWarnings("ReferenceEquality") @Override public V put(K key, V val) { inserts.increment(); diff --git a/solr/core/src/java/org/apache/solr/search/DocSlice.java b/solr/core/src/java/org/apache/solr/search/DocSlice.java index f0c63a1b2695..0764189f9146 100644 --- a/solr/core/src/java/org/apache/solr/search/DocSlice.java +++ b/solr/core/src/java/org/apache/solr/search/DocSlice.java @@ -134,7 +134,7 @@ public Integer next() { return nextDoc(); } - /** The remove operation is not supported by this Iterator. */ + // The remove operation is not supported by this Iterator. @Override public void remove() { throw new UnsupportedOperationException( diff --git a/solr/core/src/java/org/apache/solr/search/DocValuesIteratorCache.java b/solr/core/src/java/org/apache/solr/search/DocValuesIteratorCache.java index eba8a7318814..34e4c623a07e 100644 --- a/solr/core/src/java/org/apache/solr/search/DocValuesIteratorCache.java +++ b/solr/core/src/java/org/apache/solr/search/DocValuesIteratorCache.java @@ -94,6 +94,8 @@ public DocValuesIteratorCache(SolrIndexSearcher searcher, boolean cache) { } } + // NONE is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public FieldDocValuesSupplier getSupplier(String fieldName) { FieldDocValuesSupplier ret = getSupplier.apply(fieldName); return ret == NONE ? null : ret; diff --git a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java index 4dd2745bf1eb..b5903fa8dab1 100644 --- a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java +++ b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java @@ -1488,6 +1488,9 @@ private Query getQuery() { } } + // identity fast-path: if index and query analyzers are the same instance there is + // no separate stopword filtering to strip, so reference comparison is intentional + @SuppressWarnings("ReferenceEquality") private Analyzer noStopwordFilterAnalyzer(String fieldName) { FieldType ft = parser.getReq().getSchema().getFieldType(fieldName); Analyzer qa = ft.getQueryAnalyzer(); 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 f7bfd3b7dc23..26e70cd3c0a0 100644 --- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java @@ -210,6 +210,9 @@ public int hashCode() { return 31 * classHash() + id.hashCode(); } + // `id` is a unique sentinel Object shared only between clones, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") @Override public boolean equals(Object other) { return sameClassAs(other) && id == ((GraphTermsQuery) other).id; @@ -290,6 +293,8 @@ public boolean isCacheable(LeafReaderContext ctx) { }; } + // TermsEnum.EMPTY is a singleton sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private void collectTermStates( IndexReader reader, List leaves, diff --git a/solr/core/src/java/org/apache/solr/search/JoinQuery.java b/solr/core/src/java/org/apache/solr/search/JoinQuery.java index 09fb728e7f96..67690771cb45 100644 --- a/solr/core/src/java/org/apache/solr/search/JoinQuery.java +++ b/solr/core/src/java/org/apache/solr/search/JoinQuery.java @@ -105,6 +105,9 @@ protected class JoinQueryWeight extends ConstantScoreWeight { ResponseBuilder rb; ScoreMode scoreMode; + // comparing SolrCore instances by identity is intentional: we only want to reuse the + // passed-in searcher when the request core is the exact same core object + @SuppressWarnings("ReferenceEquality") public JoinQueryWeight(SolrIndexSearcher searcher, ScoreMode scoreMode, float boost) { super(JoinQuery.this, boost); this.scoreMode = scoreMode; @@ -248,6 +251,9 @@ public DocSet getDocSet() throws IOException { return result; } + // `fromSearcher == toSearcher` identity checks are intentional: same-instance searchers + // mean a self-join, letting us reuse the same reader and liveDocs + @SuppressWarnings("ReferenceEquality") public DocSet getDocSetEnumerate() throws IOException { FixedBitSet resultBits = null; diff --git a/solr/core/src/java/org/apache/solr/search/QueryResultKey.java b/solr/core/src/java/org/apache/solr/search/QueryResultKey.java index 671da8cda54e..387b67cf8778 100644 --- a/solr/core/src/java/org/apache/solr/search/QueryResultKey.java +++ b/solr/core/src/java/org/apache/solr/search/QueryResultKey.java @@ -144,6 +144,8 @@ public boolean equals(Object o) { * * @return true if the lists of equivalent other then the ordering */ + // identity fast-path before element-wise comparison is intentional + @SuppressWarnings("ReferenceEquality") private static boolean unorderedCompare(List fqList1, List fqList2) { // Do fast version first, expecting that filters are usually in the same order // 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 8098b39f4a19..9aab24424462 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java +++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java @@ -835,7 +835,7 @@ void searchWithTimeout() throws IOException { } } - /** + /* * Retrieve the {@link Document} instance corresponding to the document id. * * @see SolrDocumentFetcher @@ -846,7 +846,7 @@ public Document doc(int docId) throws IOException { return doc(docId, (Set) null); }*/ - /** + /* * Visit a document's fields using a {@link StoredFieldVisitor}. This method does not currently * add to the Solr document cache. * @@ -859,7 +859,7 @@ public final void doc(int docId, StoredFieldVisitor visitor) throws IOException getDocFetcher().doc(docId, visitor); }*/ - /** + /* * Retrieve the {@link Document} instance corresponding to the document id. * *

NOTE: the document will have all fields accessible, but if a field filter is @@ -1011,6 +1011,8 @@ private BitDocSet makeBitDocSet(DocSet answer) { return new BitDocSet(bs, answer.size()); } + // makeBitDocSet returns the same instance when already a BitDocSet; identity check is intentional + @SuppressWarnings("ReferenceEquality") public BitDocSet getDocSetBits(Query q) throws IOException { DocSet answer = getDocSet(q); BitDocSet answerBits = makeBitDocSet(answer); diff --git a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java index 1880d290befa..7bcbf13ae668 100644 --- a/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java +++ b/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java @@ -593,7 +593,7 @@ public Integer next() { return nextDoc(); } - /** The remove operation is not supported by this Iterator. */ + /* The remove operation is not supported by this Iterator. */ @Override public void remove() { throw new UnsupportedOperationException( 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 2dca4a5a35bf..f2e76f9f4f4c 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 @@ -320,6 +320,8 @@ private static long applyDefaultOverrequest(long offset, long limit) { /** * Processes the collected data to finds the top slots, and composes it in the response NamedList. */ + // "same instance" check of SlotAccs in this hot path is intentional identity comparison + @SuppressWarnings("ReferenceEquality") SimpleOrderedMap findTopSlots( final int numSlots, final int slotCardinality, @@ -578,6 +580,8 @@ private static class Slot { } /** Helper method used solely when looping over buckets to be returned in findTopSlots */ + // "same instance" check against resortAcc is intentional identity comparison + @SuppressWarnings("ReferenceEquality") private void fillBucketFromSlot(SimpleOrderedMap target, Slot slot, SlotAcc resortAcc) throws IOException { final int slotOrd = slot.slot; @@ -845,6 +849,8 @@ public void setValues(SimpleOrderedMap bucket, int slotNum) throws IOExc } } + // "replacement != acc" checks whether registerSweepingAccs returned the same instance + @SuppressWarnings("ReferenceEquality") @Override public SlotAcc registerSweepingAccs(SweepingCountSlotAcc baseSweepingAcc) { final FacetFieldProcessor p = (FacetFieldProcessor) fcontext.processor; 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 f55690bbd556..73ced2da8dc4 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 @@ -137,6 +137,9 @@ public FunctionValues getValues(Map context, LeafReaderContext r throw new UnsupportedOperationException("NOT IMPLEMENTED " + name + " " + this); } + // the assert checks that `ctx` is the exact same FacetContext instance we started walking + // from, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") @Override public SlotAcc createSlotAcc(FacetContext fcontext, long numDocs, int numSlots) throws IOException { 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 ceba52b6fcba..b798c9b4165a 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 @@ -226,6 +226,8 @@ public FixedBitSet resize(FixedBitSet old) { return values; } + // slots holding the shared defaultValue instance are identified by identity on purpose + @SuppressWarnings("ReferenceEquality") public T[] resize(T[] old, T defaultValue) { @SuppressWarnings({"unchecked"}) T[] values = (T[]) Array.newInstance(old.getClass().getComponentType(), getNewSize()); @@ -757,6 +759,8 @@ public ReadOnlyCountSlotAcc add(String key, DocSet docs, int numSlots) { * @param toAcc - the replacement {@link SlotAcc} * @see SweepableSlotAcc#registerSweepingAccs(SweepingCountSlotAcc) */ + // "same instance" check against sortAcc is intentional identity comparison + @SuppressWarnings("ReferenceEquality") public void registerMapping(SlotAcc fromAcc, SlotAcc toAcc) { assert fromAcc.key.equals(toAcc.key); output.add(toAcc); diff --git a/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java b/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java index 5ddd47051161..1714b3268528 100644 --- a/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java +++ b/solr/core/src/java/org/apache/solr/search/facet/UnInvertedField.java @@ -633,6 +633,8 @@ public static UnInvertedField getUnInvertedField(String field, SolrIndexSearcher } // Returns null if not already populated + // uifPlaceholder is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public static UnInvertedField checkUnInvertedField(String field, SolrIndexSearcher searcher) throws IOException { SolrCache cache = searcher.getFieldValueCache(); 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 1d2371dbd33a..f68fb9a432b4 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 @@ -64,7 +64,7 @@ public double doubleVal(int doc) throws IOException { return func(doc, aVals, bVals); } - /** + /* * True if and only if all of the wrapped {@link FunctionValues} exists * for the specified doc */ diff --git a/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java b/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java index 039ce146f4d8..6bd69babf841 100644 --- a/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java +++ b/solr/core/src/java/org/apache/solr/security/AllowListUrlChecker.java @@ -160,6 +160,9 @@ public void checkAllowList(List urls, ClusterState clusterState) * Gets the set of live hosts urls (host:port) built from the set of live nodes. The set is cached * to be reused until the live nodes change. */ + // the cache is invalidated when the live-nodes set is a different instance, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") private Set getLiveHostUrls(ClusterState clusterState) { if (clusterState == null) { return Set.of(); diff --git a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java index 7c2eb80c28b9..996ed971886e 100644 --- a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java @@ -360,6 +360,8 @@ private Optional getUserFromJettyRequest(Request request) { client.addListenerFactory(() -> listener); } + // CLUSTER_MEMBER_NODE is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public boolean needsAuthorization(HttpServletRequest req) { return req.getUserPrincipal() != CLUSTER_MEMBER_NODE; } diff --git a/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java b/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java index f8c7725c429e..0f2298696c2c 100644 --- a/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java +++ b/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java @@ -429,6 +429,9 @@ protected void extractRemotePath(String collectionName) } /** This method processes the request. */ + // detecting whether the Error found in the cause chain is the thrown exception itself, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public Action call() throws IOException { if (cores == null) { diff --git a/solr/core/src/java/org/apache/solr/servlet/RequestRateLimiter.java b/solr/core/src/java/org/apache/solr/servlet/RequestRateLimiter.java index 0901a0e28738..b9edf81f0815 100644 --- a/solr/core/src/java/org/apache/solr/servlet/RequestRateLimiter.java +++ b/solr/core/src/java/org/apache/solr/servlet/RequestRateLimiter.java @@ -90,6 +90,9 @@ boolean isEmpty() { * Handles an incoming request. returns a metadata object representing the metadata for the * acquired slot, if acquired. If a slot is not acquired, returns a null metadata object. */ + // totalSlotsPool and borrowableSlotsPool may be the same Semaphore instance, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") public SlotReservation handleRequest() throws InterruptedException { if (!rateLimiterConfig.isEnabled) { @@ -135,6 +138,9 @@ public SlotReservation handleRequest() throws InterruptedException { * @lucene.experimental -- Can cause slots to be blocked if a request borrows a slot and is itself * long lived. */ + // totalSlotsPool and borrowableSlotsPool may be the same Semaphore instance, so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") public SlotReservation allowSlotBorrowing() throws InterruptedException { if (borrowableSlotsPool == null) { return null; diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java index 42531d5fd4a1..2392d30eb460 100644 --- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java +++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java @@ -270,7 +270,9 @@ public int read() { * @param charset to be used to decode resulting bytes after %-decoding * @param map place all parameters in this map */ - @SuppressWarnings({"fallthrough", "resource"}) + // checking which of the two stream references currentStream points at, so identity comparison + // is intentional + @SuppressWarnings({"fallthrough", "resource", "ReferenceEquality"}) static long parseFormDataContent( final InputStream postContent, final long maxLen, diff --git a/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java index e031ade99381..467a61dc5a20 100644 --- a/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/ConjunctionSolrSpellChecker.java @@ -45,6 +45,9 @@ public class ConjunctionSolrSpellChecker extends SolrSpellChecker { private List checkers = new ArrayList<>(); private boolean initialized = false; + // Analyzer does not override equals(); all checkers must share the same Analyzer instance, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public void addChecker(SolrSpellChecker checker) { if (initialized) { throw new IllegalStateException("Need to add checkers before calling init()"); diff --git a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java index 2300f0a8dca4..22e9fbad555d 100644 --- a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.lang.invoke.MethodHandles; +import java.nio.charset.Charset; import java.util.List; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -122,7 +123,8 @@ private void loadExternalFileDictionary(SolrCore core, SolrIndexSearcher searche dictionary = new PlainTextDictionary( new InputStreamReader( - core.getResourceLoader().openResource(sourceLocation), characterEncoding)); + core.getResourceLoader().openResource(sourceLocation), + Charset.forName(characterEncoding))); } } diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java index 76183c7f5a5b..0f83fcbdae43 100644 --- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java +++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java @@ -176,6 +176,8 @@ public DirectUpdateHandler2(SolrCore core) { } } + // identity comparison detects whether the previous handler's UpdateLog instance is being reused + @SuppressWarnings("ReferenceEquality") public DirectUpdateHandler2(SolrCore core, UpdateHandler updateHandler) { super(core, updateHandler.getUpdateLog(), false); solrCoreState = core.getSolrCoreState(); diff --git a/solr/core/src/java/org/apache/solr/update/MemOutputStream.java b/solr/core/src/java/org/apache/solr/update/MemOutputStream.java index 345d35bb193c..714eb238c4ea 100644 --- a/solr/core/src/java/org/apache/solr/update/MemOutputStream.java +++ b/solr/core/src/java/org/apache/solr/update/MemOutputStream.java @@ -31,6 +31,8 @@ public MemOutputStream(byte[] tempBuffer) { super(null, tempBuffer, 0); } + // identity comparison checks whether arr is our own internal buffer, so we can steal it + @SuppressWarnings("ReferenceEquality") @Override public void flush(byte[] arr, int offset, int len) throws IOException { if (arr == buf && offset == 0 && len == buf.length) { diff --git a/solr/core/src/java/org/apache/solr/update/PeerSync.java b/solr/core/src/java/org/apache/solr/update/PeerSync.java index 7d69b4de9c61..5719106287a9 100644 --- a/solr/core/src/java/org/apache/solr/update/PeerSync.java +++ b/solr/core/src/java/org/apache/solr/update/PeerSync.java @@ -455,6 +455,9 @@ private boolean connectTimeoutExceptionInChain(Throwable exception) { } } + // MissedUpdatesRequest.ALREADY_IN_SYNC/UNABLE_TO_SYNC/EMPTY are unique sentinels, so identity + // comparison against them is intentional + @SuppressWarnings("ReferenceEquality") private boolean handleVersions(ShardResponse srsp) { // we retrieved the last N updates from the replica @SuppressWarnings({"unchecked"}) @@ -861,6 +864,9 @@ public static class MissedUpdatesFinder extends MissedUpdatesFinderBase { this.nUpdates = nUpdates; } + // MissedUpdatesRequest.EMPTY is a unique sentinel, so identity comparison against it is + // intentional + @SuppressWarnings("ReferenceEquality") public MissedUpdatesRequest find(List otherVersions, Object updateFrom) { otherVersions.sort(absComparator); if (debug) { diff --git a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java index 272e610718b9..c65d5b063724 100644 --- a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java +++ b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java @@ -217,6 +217,9 @@ public PeerSync.PeerSyncResult sync(List startingVersions) { } } + // MissedUpdatesRequest.ALREADY_IN_SYNC/UNABLE_TO_SYNC are unique sentinels, so identity + // comparison against them is intentional + @SuppressWarnings("ReferenceEquality") private boolean doSync(List ourUpdates, long ourLowThreshold, long ourHighThreshold) { // get leader's recent versions and fingerprint // note: by getting leader's versions later, we guarantee that leader's versions always super @@ -246,6 +249,9 @@ private boolean doSync(List ourUpdates, long ourLowThreshold, long ourHigh return false; } + // MissedUpdatesRequest.EMPTY is a unique sentinel, so identity comparison against it is + // intentional + @SuppressWarnings("ReferenceEquality") private MissedUpdatesRequest buildMissedUpdatesRequest(NamedList rsp) { // we retrieved the last N updates from the replica @SuppressWarnings({"unchecked"}) @@ -430,6 +436,9 @@ public static class MissedUpdatesFinder extends PeerSync.MissedUpdatesFinderBase this.nUpdates = nUpdates; } + // MissedUpdatesRequest.EMPTY is a unique sentinel, so identity comparison against it is + // intentional + @SuppressWarnings("ReferenceEquality") public MissedUpdatesRequest find(List leaderVersions, Object updateFrom) { leaderVersions.sort(absComparator); log.debug("{} sorted versions from {} = {}", logPrefix, updateFrom, leaderVersions); diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java index 8c6729628460..c0d26576f6d9 100644 --- a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java +++ b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java @@ -194,6 +194,8 @@ public SolrIndexConfig(ConfigNode cfg, SolrIndexConfig def) { true); } + // InfoStream.NO_OUTPUT is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") @Override public void writeMap(EntryWriter ew) throws IOException { ew.put("useCompoundFile", useCompoundFile) diff --git a/solr/core/src/java/org/apache/solr/update/UpdateLog.java b/solr/core/src/java/org/apache/solr/update/UpdateLog.java index 17fd8477b277..f11abef1f1b2 100644 --- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java +++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java @@ -734,6 +734,8 @@ public boolean existOldBufferLog() { /* Takes over ownership of the log, keeping it until no longer needed and then decrementing its reference and dropping it. */ + // checking whether oldLog is the very same instance as the current tlog is intentional + @SuppressWarnings("ReferenceEquality") protected synchronized void addOldLog(TransactionLog oldLog, boolean removeOld) { if (oldLog == null) return; @@ -1546,6 +1548,8 @@ public void copyOverOldUpdates(long commitVersion) { * @param commitVersion any updates that have version larger than the commitVersion will be copied * over */ + // checking whether prevTlog is the very same instance as oldTlog is intentional + @SuppressWarnings("ReferenceEquality") public void copyOverOldUpdates(long commitVersion, TransactionLog oldTlog) { copyOverOldUpdatesCounter.inc(); @@ -1701,7 +1705,8 @@ public void close(boolean committed) { close(committed, false); } - @SuppressWarnings("try") + // checking whether log is the very same instance as prevTlog/tlog is intentional + @SuppressWarnings({"try", "ReferenceEquality"}) public void close(boolean committed, boolean deleteOnClose) { try (Closeable c = releaseTlogDir) { recoveryExecutor.shutdown(); // no new tasks 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 fb4a9de1d8ad..4fdaf40effc6 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,9 @@ public AllValuesOrNoneFieldMutatingUpdateProcessor( */ protected abstract Object mutateValue(final Object srcVal); + // SKIP_FIELD_VALUE_LIST_SINGLETON and DELETE_VALUE_SINGLETON are unique sentinels, so identity + // comparison against them is intentional + @SuppressWarnings("ReferenceEquality") @Override protected final SolrInputField mutate(final SolrInputField srcField) { Collection vals = srcField.getValues(); diff --git a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java index 3cdb07069802..26346e29437f 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java +++ b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java @@ -383,6 +383,9 @@ && isDerivedFromDoc( * false is returned. A false return indicates that this update can be re-tried as a full * atomic update. Returns true if the in-place update succeeds. */ + // RealTimeGetComponent.DELETED is a unique sentinel, so identity comparison against it is + // intentional + @SuppressWarnings("ReferenceEquality") public boolean doInPlaceUpdateMerge(AddUpdateCommand cmd, Set updatedFields) throws IOException { SolrInputDocument inputDoc = cmd.getSolrInputDocument(); diff --git a/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessor.java index 48ecc0f7eedc..c2b77b1c52de 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessor.java +++ b/solr/core/src/java/org/apache/solr/update/processor/DocBasedVersionConstraintsProcessor.java @@ -188,6 +188,9 @@ private void validateUserVersions( } } + // RealTimeGetComponent.DELETED is a unique sentinel, so identity comparison against it is + // intentional + @SuppressWarnings("ReferenceEquality") private DocFoundAndOldUserAndSolrVersions getOldUserVersionsFromFieldCache( BytesRef indexedDocId) { SolrInputDocument oldDoc = diff --git a/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessor.java index 8593294b6f2f..6e0485d62e45 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessor.java +++ b/solr/core/src/java/org/apache/solr/update/processor/FieldMutatingUpdateProcessor.java @@ -132,6 +132,9 @@ public interface FieldNameSelector { * @return Either a new FieldNameSelector or one of the input selectors if the combination lends * itself to optimization. */ + // SELECT_ALL_FIELDS and SELECT_NO_FIELDS are unique sentinels, so identity comparison against + // them is intentional + @SuppressWarnings("ReferenceEquality") public static FieldNameSelector wrap( final FieldNameSelector includes, final FieldNameSelector excludes) { diff --git a/solr/core/src/java/org/apache/solr/update/processor/FieldValueMutatingUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/FieldValueMutatingUpdateProcessor.java index 1d81d6d84ed5..bdd8e458d17b 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/FieldValueMutatingUpdateProcessor.java +++ b/solr/core/src/java/org/apache/solr/update/processor/FieldValueMutatingUpdateProcessor.java @@ -56,6 +56,9 @@ public FieldValueMutatingUpdateProcessor( */ protected abstract Object mutateValue(final Object src); + // DELETE_VALUE_SINGLETON is a unique sentinel, and mutateValue returns the same instance when + // the value is unchanged, so identity comparisons are intentional + @SuppressWarnings("ReferenceEquality") @Override protected final SolrInputField mutate(final SolrInputField src) { Collection values = src.getValues(); diff --git a/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java index b93d2ef25278..9f59d84c7b20 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactory.java @@ -191,6 +191,9 @@ boolean isSkipUpdateIfMissing() { return this.skipUpdateIfMissing; } + // RealTimeGetComponent.DELETED is a unique sentinel, so identity comparison against it is + // intentional + @SuppressWarnings("ReferenceEquality") boolean doesDocumentExist(BytesRef indexedDocId) { assert null != indexedDocId; diff --git a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java index c408cfc33322..399ca385a02c 100644 --- a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java +++ b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java @@ -1585,6 +1585,8 @@ public void testGroupingOnDateField() throws Exception { + "]}}"); } + // groupComparator may be the very same instance as sortComparator; identity check is intentional + @SuppressWarnings("ReferenceEquality") @Test public void testRandomGrouping() throws Exception { /* diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java index 2e190f60f89a..bee5e966f4fb 100644 --- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java @@ -55,6 +55,8 @@ private void createCollection(String collection) throws IOException, SolrServerE } } + // Comparing JettySolrRunner instances by identity is intentional: skip the exact same runner + @SuppressWarnings("ReferenceEquality") @Test public void testSimpleSliceLeaderElection() throws Exception { String collection = "collection1"; diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java index 7aed2e27d3d4..883af88f3142 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java @@ -380,7 +380,7 @@ public void testSetHighestTerms() throws Exception { private void waitFor(T expected, Supplier supplier) throws InterruptedException { TimeOut timeOut = new TimeOut(10, TimeUnit.SECONDS, new TimeSource.CurrentTimeSource()); while (!timeOut.hasTimedOut()) { - if (expected == supplier.get()) return; + if (Objects.equals(expected, supplier.get())) return; Thread.sleep(100); } assertEquals(expected, supplier.get()); 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 70db545fced4..d2c295af6739 100644 --- a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java +++ b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java @@ -127,7 +127,7 @@ public void testReplicationHandler() throws Exception { new BackupAPIImpl() { final BackupStatusChecker backupStatus = new BackupStatusChecker(coreClient); - /** no solrj API for ReplicationHandler */ + // no solrj API for ReplicationHandler private SolrRequest makeReplicationReq(SolrParams p) { return new GenericSolrRequest( GenericSolrRequest.METHOD.POST, @@ -137,10 +137,8 @@ private SolrRequest makeReplicationReq(SolrParams p) { .setRequiresCollection(true); } - /** - * Override default backup impl to hit ReplicationHandler, and then poll that same handler - * until success - */ + // 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); 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 101ee2a09b39..35c2d9a421ce 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 @@ -278,6 +278,9 @@ public InputStream getStream() { return rsp; } + // checks whether the given reqHandlers is the container-level handler bag instance, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") private SolrQueryResponse invoke( PluginBag reqHandlers, String path, diff --git a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java index 597e20445441..44690a5dd702 100644 --- a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java +++ b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java @@ -740,6 +740,8 @@ public QParser createParser( } @Test + // asserting that the core got a different schema instance after reload is intentional + @SuppressWarnings("ReferenceEquality") public void testSchemaPlugins() throws Exception { String COLLECTION_NAME = "testSchemaLoadingColl"; System.setProperty("managed.schema.mutable", "true"); diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java index 9bb95fc52a5a..dc58da73485f 100644 --- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java +++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java @@ -20,6 +20,7 @@ import static org.apache.solr.common.util.Utils.toJSONString; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; @@ -150,7 +151,10 @@ public void testManagedSynonyms() throws Exception { "/response/result[@name='response'][@numFound='1']", "/response/result[@name='response']/doc/str[@name='id'][.='5150']"); assertQ( - "/select?q=" + newFieldName + ":" + URLEncoder.encode(multiTermOrigin, "UTF-8"), + "/select?q=" + + newFieldName + + ":" + + URLEncoder.encode(multiTermOrigin, StandardCharsets.UTF_8), "/response/lst[@name='responseHeader']/int[@name='status'] = '0'", "/response/result[@name='response'][@numFound='1']", "/response/result[@name='response']/doc/str[@name='id'][.='040']"); @@ -168,7 +172,7 @@ public void testManagedSynonyms() throws Exception { assertJPut(endpoint, toJSONString(syns), "/responseHeader/status==0"); assertJQ( - endpoint + "/" + URLEncoder.encode(multiTermSynonym, "UTF-8"), + endpoint + "/" + URLEncoder.encode(multiTermSynonym, StandardCharsets.UTF_8), "/" + multiTermSynonym + "==['" + multiTermOrigin + "']"); // should not match as the synonym mapping between mad and angry does not @@ -184,7 +188,7 @@ public void testManagedSynonyms() throws Exception { "/select?q=" + newFieldName + ":(" - + URLEncoder.encode(multiTermSynonym, "UTF-8") + + URLEncoder.encode(multiTermSynonym, StandardCharsets.UTF_8) + ")&sow=false", "/response/lst[@name='responseHeader']/int[@name='status'] = '0'", "/response/result[@name='response'][@numFound='0']"); @@ -203,7 +207,7 @@ public void testManagedSynonyms() throws Exception { "/select?q=" + newFieldName + ":(" - + URLEncoder.encode(multiTermSynonym, "UTF-8") + + URLEncoder.encode(multiTermSynonym, StandardCharsets.UTF_8) + ")&sow=false", "/response/lst[@name='responseHeader']/int[@name='status'] = '0'", "/response/result[@name='response'][@numFound='1']", diff --git a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java index e4cb21568900..c08ce0a276ba 100644 --- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java +++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java @@ -63,6 +63,8 @@ private SuspendingZkClient(String zkServerAddress) { .withTimeout(ZK_CLIENT_TIMEOUT, TimeUnit.MILLISECONDS)); } + // comparing Thread instances by identity is intentional + @SuppressWarnings("ReferenceEquality") boolean isSlowpoke() { Thread youKnow; if ((youKnow = slowpoke.get()) != null) { diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java index ee6bd9b3543c..e5783488aa1e 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java @@ -3782,6 +3782,8 @@ public void doTestPrelimSortingDistrib(final boolean extraAgg, final boolean ext * @param extraSubFacet if an extra sub facet should be included, this hits slightly diff code * paths */ + // "same instance" check of shard clients in the single node case is intentional + @SuppressWarnings("ReferenceEquality") public void doTestPrelimSorting( final Client client, final boolean extraAgg, final boolean extraSubFacet) throws Exception { diff --git a/solr/core/src/test/org/apache/solr/search/function/AggValueSourceTest.java b/solr/core/src/test/org/apache/solr/search/function/AggValueSourceTest.java index 5946d4dc955d..ed54e9e3d670 100644 --- a/solr/core/src/test/org/apache/solr/search/function/AggValueSourceTest.java +++ b/solr/core/src/test/org/apache/solr/search/function/AggValueSourceTest.java @@ -44,6 +44,8 @@ static class CustomAggregate extends SimpleAggValueSource { super("customagg", vs); } + // request and searcher must reference the very same core instance, so identity is intentional + @SuppressWarnings("ReferenceEquality") @Override public SlotAcc createSlotAcc(FacetContext fcontext, long numDocs, int numSlots) { // check we can get access to the request and searcher, via the context diff --git a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java index 3e9ee3b70b9b..d5c59a885ea3 100644 --- a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java +++ b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java @@ -351,6 +351,8 @@ public boolean equals(Object other) { return sameClassAs(other) && equalsTo(getClass().cast(other)); } + // docValues is compared by identity, matching System.identityHashCode use in hashCode() + @SuppressWarnings("ReferenceEquality") private boolean equalsTo(RandomQuery other) { return seed == other.seed && docValues == other.docValues && density == other.density; } 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 a589eafdf4c6..1b08a13b2862 100644 --- a/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java +++ b/solr/core/src/test/org/apache/solr/update/TestInPlaceUpdatesStandalone.java @@ -1216,7 +1216,9 @@ public String toString() { * TestInPlaceUpdatesStandalone#HARDCOMMIT} or {@link TestInPlaceUpdatesStandalone#SOFTCOMMIT} * sentinel objects. */ - @SuppressWarnings({"unchecked", "rawtypes"}) + // HARDCOMMIT and SOFTCOMMIT are unique sentinels, so identity comparison against them is + // intentional + @SuppressWarnings({"unchecked", "rawtypes", "ReferenceEquality"}) public void checkReplay(final String valField, Object... commands) throws Exception { HashMap model = new LinkedHashMap<>(); diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index 332646c77147..117ec735850c 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -25,11 +25,11 @@ com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,error com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.gson:gson:2.14.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/licenses/error_prone_annotations-2.47.0.jar.sha1 b/solr/licenses/error_prone_annotations-2.47.0.jar.sha1 deleted file mode 100644 index e575c7fa4442..000000000000 --- a/solr/licenses/error_prone_annotations-2.47.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e64e70c8e2b5a30ce7f1b6c9e3eb7016881e0411 diff --git a/solr/licenses/error_prone_annotations-2.48.0.jar.sha1 b/solr/licenses/error_prone_annotations-2.48.0.jar.sha1 deleted file mode 100644 index 542856c00911..000000000000 --- a/solr/licenses/error_prone_annotations-2.48.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -bbe30942a31d1778c74cb272321267eca82dc708 diff --git a/solr/licenses/error_prone_annotations-2.50.0.jar.sha1 b/solr/licenses/error_prone_annotations-2.50.0.jar.sha1 new file mode 100644 index 000000000000..a82027b404da --- /dev/null +++ b/solr/licenses/error_prone_annotations-2.50.0.jar.sha1 @@ -0,0 +1 @@ +74ba43e49ab1184d41634af2ef0047e82c4064b0 diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile index 37591ad9a800..0003fc7ab696 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java b/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java index 6c2b57b12a9f..f4e71f197059 100644 --- a/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java +++ b/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java @@ -612,9 +612,7 @@ public void processAdd(AddUpdateCommand cmd) throws IOException { super.processAdd(cmd); } - /** - * Using configured NER model, extracts (name, type) pairs from the given source field value - */ + // Using configured NER model, extracts (name, type) pairs from the given source field value private List> extractTypedNamedEntities(Object srcFieldValue) throws IOException { List> entitiesWithType = new ArrayList<>(); diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile index 46d70e5e06b5..751691ea2167 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/cross-dc/gradle.lockfile b/solr/modules/cross-dc/gradle.lockfile index a061223677fa..5a1b0bb5a9e6 100644 --- a/solr/modules/cross-dc/gradle.lockfile +++ b/solr/modules/cross-dc/gradle.lockfile @@ -19,11 +19,11 @@ com.github.luben:zstd-jni:1.5.6-4=jarValidation,runtimeClasspath,runtimeLibs,tes com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/cross-dc/src/java/org/apache/solr/crossdc/update/processor/MirroringUpdateProcessor.java b/solr/modules/cross-dc/src/java/org/apache/solr/crossdc/update/processor/MirroringUpdateProcessor.java index 54ad07e3d243..462686ccdf25 100644 --- a/solr/modules/cross-dc/src/java/org/apache/solr/crossdc/update/processor/MirroringUpdateProcessor.java +++ b/solr/modules/cross-dc/src/java/org/apache/solr/crossdc/update/processor/MirroringUpdateProcessor.java @@ -91,10 +91,8 @@ public class MirroringUpdateProcessor extends UpdateRequestProcessor { private final long maxMirroringDocSizeBytes; - /** - * The distributed processor downstream from us so we can establish if we're running on a leader - * shard - */ + // The distributed processor downstream from us so we can establish if we're running on a leader + // shard // private DistributedUpdateProcessor distProc; /** Distribution phase of the incoming requests */ diff --git a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java index 49de459b288a..28a98d6d7a1e 100644 --- a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java +++ b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java @@ -22,6 +22,7 @@ import java.io.ByteArrayOutputStream; import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -129,7 +130,7 @@ public void testFillProperties_FromZooKeeper() throws Exception { zkProps.setProperty("custom.zk.property", "zk-value"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - OutputStreamWriter writer = new OutputStreamWriter(baos, "UTF-8"); + OutputStreamWriter writer = new OutputStreamWriter(baos, StandardCharsets.UTF_8); zkProps.store(writer, null); writer.close(); byte[] zkData = baos.toByteArray(); @@ -155,7 +156,7 @@ public void testFillProperties_PriorityOrder() throws Exception { zkProps.setProperty(KafkaCrossDcConf.TOPIC_NAME, "zk-topic"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - OutputStreamWriter writer = new OutputStreamWriter(baos, "UTF-8"); + OutputStreamWriter writer = new OutputStreamWriter(baos, StandardCharsets.UTF_8); zkProps.store(writer, null); writer.close(); byte[] zkData = baos.toByteArray(); @@ -318,7 +319,7 @@ public void testFillProperties_ComplexScenario() throws Exception { zkProps.setProperty("zk.only.property", "zk-value"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - OutputStreamWriter writer = new OutputStreamWriter(baos, "UTF-8"); + OutputStreamWriter writer = new OutputStreamWriter(baos, StandardCharsets.UTF_8); zkProps.store(writer, null); writer.close(); byte[] zkData = baos.toByteArray(); diff --git a/solr/modules/cuvs/gradle.lockfile b/solr/modules/cuvs/gradle.lockfile index 09b15e567199..3ec42e564ad0 100644 --- a/solr/modules/cuvs/gradle.lockfile +++ b/solr/modules/cuvs/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile index 48eb7a4218aa..e6750107875b 100644 --- a/solr/modules/extraction/gradle.lockfile +++ b/solr/modules/extraction/gradle.lockfile @@ -20,11 +20,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToTextContentHandler.java b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToTextContentHandler.java index d4255fa2fb18..fd4665434351 100644 --- a/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToTextContentHandler.java +++ b/solr/modules/extraction/src/java/org/apache/solr/handler/extraction/fromtika/ToTextContentHandler.java @@ -78,6 +78,8 @@ public ToTextContentHandler(OutputStream stream) { * @param encoding output encoding * @throws UnsupportedEncodingException if the encoding is unsupported */ + // Constructor signature kept as-is from Tika's ToTextContentHandler public API + @SuppressWarnings("JdkObsolete") public ToTextContentHandler(OutputStream stream, String encoding) throws UnsupportedEncodingException { this(new OutputStreamWriter(stream, encoding)); diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile index f45af13e461d..a2b208d7bd85 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -40,12 +40,11 @@ com.google.cloud:google-cloud-core:2.71.0=compileClasspath,jarValidation,runtime com.google.cloud:google-cloud-nio:0.133.0=jarValidation,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.69.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.14.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.48.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/jwt-auth/gradle.lockfile b/solr/modules/jwt-auth/gradle.lockfile index 18d9b91213e7..c6bba1142e09 100644 --- a/solr/modules/jwt-auth/gradle.lockfile +++ b/solr/modules/jwt-auth/gradle.lockfile @@ -19,11 +19,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=jarValidation,testCompileClasspa com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile index 358e4f45c140..8f55e40e04d4 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/language-models/gradle.lockfile b/solr/modules/language-models/gradle.lockfile index 19c069035e66..a008bd66ab99 100644 --- a/solr/modules/language-models/gradle.lockfile +++ b/solr/modules/language-models/gradle.lockfile @@ -18,11 +18,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,jarValidation com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile index 68df08049e83..2f87a58a124d 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java b/solr/modules/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java index 37362c806425..f028b3f88527 100644 --- a/solr/modules/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java +++ b/solr/modules/ltr/src/java/org/apache/solr/ltr/feature/SolrFeature.java @@ -135,6 +135,9 @@ protected void validate() throws FeatureException { public class SolrFeatureWeight extends FeatureWeight { private final Weight solrQueryWeight; + // Identity check is intentional: getDocSet() returns the cached liveDocSet instance when the + // filters do not narrow the result + @SuppressWarnings("ReferenceEquality") public SolrFeatureWeight( SolrIndexSearcher searcher, SolrQueryRequest request, 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 21cca2288580..32f8a585a2a8 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 @@ -286,6 +286,8 @@ public void normalizeFeaturesInPlace(float[] modelFeatureValues) { } } + // Identity check against the IdentityNormalizer.INSTANCE singleton is intentional + @SuppressWarnings("ReferenceEquality") public Explanation getNormalizerExplanation(Explanation e, int idx) { Normalizer n = norms.get(idx); if (n != IdentityNormalizer.INSTANCE) { diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index 9fef410f7fc2..aca863e798b1 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -20,11 +20,11 @@ com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,error com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.gson:gson:2.14.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index 5175a2958283..193008dd10c5 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/gradle.lockfile @@ -28,11 +28,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile index 14f95aff7d7b..216579e245af 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile index a1c321a48a44..23782bb42de4 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath 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 6ff6ff95a841..b1fb3c9c8b81 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 @@ -55,6 +55,8 @@ static String solrAggMetricId(String metric, String column) { return String.format(Locale.ROOT, "%s(%s)", funcName, column); } + // Calcite convention: identity check against the CONVENTION singleton is intentional + @SuppressWarnings("ReferenceEquality") SolrAggregate( RelOptCluster cluster, RelTraitSet traitSet, 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 d43f1ae4c187..4b156d5dac3d 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 @@ -77,6 +77,8 @@ String toQuery() { private final RexBuilder builder; + // Calcite convention: identity check against the CONVENTION singleton is intentional + @SuppressWarnings("ReferenceEquality") SolrFilter(RelOptCluster cluster, RelTraitSet traitSet, RelNode child, RexNode condition) { super(cluster, traitSet, child, condition); assert getConvention() == SolrRel.CONVENTION; 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 835d4fea03ab..3a01b923c1e9 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 @@ -31,6 +31,8 @@ /** Implementation of {@link org.apache.calcite.rel.core.Project} relational expression in Solr. */ class SolrProject extends Project implements SolrRel { + // Calcite convention: identity check against the CONVENTION singleton is intentional + @SuppressWarnings("ReferenceEquality") SolrProject( RelOptCluster cluster, RelTraitSet traitSet, 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 82799d864a7d..92fde889e731 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 @@ -33,6 +33,8 @@ /** Implementation of {@link org.apache.calcite.rel.core.Sort} relational expression in Solr. */ class SolrSort extends Sort implements SolrRel { + // Calcite convention: identity check against the CONVENTION singleton is intentional + @SuppressWarnings("ReferenceEquality") SolrSort( RelOptCluster cluster, RelTraitSet traitSet, 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 f2ae04e33fb2..0fda477fb3ab 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 @@ -44,6 +44,8 @@ class SolrTableScan extends TableScan implements SolrRel { * @param solrTable Solr table * @param projectRowType Fields and types to project; null to project raw row */ + // Calcite convention: identity check against the CONVENTION singleton is intentional + @SuppressWarnings("ReferenceEquality") SolrTableScan( RelOptCluster cluster, RelTraitSet traitSet, diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile index ff35f05634b2..4c2a4190a464 100644 --- a/solr/server/gradle.lockfile +++ b/solr/server/gradle.lockfile @@ -16,11 +16,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor diff --git a/solr/solr-ref-guide/gradle.lockfile b/solr/solr-ref-guide/gradle.lockfile index 77932f4c2363..546b1dbb8894 100644 --- a/solr/solr-ref-guide/gradle.lockfile +++ b/solr/solr-ref-guide/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj-jetty/gradle.lockfile b/solr/solrj-jetty/gradle.lockfile index cba5860e2501..c26bf20b7ea9 100644 --- a/solr/solrj-jetty/gradle.lockfile +++ b/solr/solrj-jetty/gradle.lockfile @@ -18,11 +18,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,jarValidation com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj-streaming/gradle.lockfile b/solr/solrj-streaming/gradle.lockfile index d14d5df3b8f9..e5dcbd3e66ac 100644 --- a/solr/solrj-streaming/gradle.lockfile +++ b/solr/solrj-streaming/gradle.lockfile @@ -17,11 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java index 57f4f5da259a..b5c2ffc7e57e 100644 --- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java +++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/comp/FieldComparator.java @@ -106,7 +106,9 @@ public Explanation toExplanation(StreamFactory factory) throws IOException { * check only once - we can do that in the constructor of this class, create a lambda, and then execute * that lambda in the compare function. A bit of branch prediction savings right here. */ - @SuppressWarnings({"unchecked"}) + // leftComp == rightComp treats both-null and same-instance as equal, so identity comparison + // is intentional + @SuppressWarnings({"unchecked", "ReferenceEquality"}) private void assignComparator() { if (ComparatorOrder.DESCENDING == order) { comparator = diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java index f17b62afc9a9..551f6482ba29 100644 --- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java +++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/eq/FieldEqualitor.java @@ -75,8 +75,10 @@ public Explanation toExplanation(StreamFactory factory) throws IOException { .withExpression(toExpression(factory).toString()); } + // leftComp == rightComp treats both-null and same-instance as equal, so identity comparison + // is intentional @Override - @SuppressWarnings({"unchecked"}) + @SuppressWarnings({"unchecked", "ReferenceEquality"}) public boolean test(Tuple leftTuple, Tuple rightTuple) { @SuppressWarnings({"rawtypes"}) diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JavabinTupleStreamParser.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JavabinTupleStreamParser.java index 5209d29e4be5..a9cdc4506e39 100644 --- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JavabinTupleStreamParser.java +++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/JavabinTupleStreamParser.java @@ -43,6 +43,8 @@ public JavabinTupleStreamParser(InputStream is, boolean onlyJsonTypes) throws IO this.fis = initRead(is); } + // END_OBJ is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private boolean readTillDocs() throws IOException { if (isObjectType(fis)) { if (tagByte == SOLRDOCLST) { @@ -176,8 +178,9 @@ protected Object readObject(DataInputInputStream dis) throws IOException { } else return super.readObject(dis); } + // END_OBJ is a unique sentinel, so identity comparison against it is intentional @Override - @SuppressWarnings({"unchecked"}) + @SuppressWarnings({"unchecked", "ReferenceEquality"}) public Map next() throws IOException { if (!atDocs) { atDocs = true; diff --git a/solr/solrj-zookeeper/gradle.lockfile b/solr/solrj-zookeeper/gradle.lockfile index b3a2e3cafa01..bb6d5d191e61 100644 --- a/solr/solrj-zookeeper/gradle.lockfile +++ b/solr/solrj-zookeeper/gradle.lockfile @@ -18,11 +18,11 @@ com.github.spotbugs:spotbugs-annotations:4.9.8=compileClasspath com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java index 6438e84bbfce..4efb08274130 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java @@ -349,7 +349,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) if (file.getFileName().toString().equals(ZKNODE_DATA_FILE) && zkClient.exists(zkNode)) { zkClient.setData(zkNode, file); - } else if (file == rootPath) { + } else if (file.equals(rootPath)) { // We are only uploading a single file, preVisitDirectory was never called if (zkClient.exists(zkPath)) { zkClient.setData(zkPath, file); 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 4f0c3bb38366..492284d80873 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 @@ -1267,6 +1267,9 @@ class StateWatcher implements Watcher { collectionPath = DocCollection.getCollectionPath(coll); } + // associatedWatcher != this checks whether this watcher instance has been replaced, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") @Override public void process(WatchedEvent event) { // session events are not change events, and do not remove the watcher @@ -2014,6 +2017,9 @@ public Aliases getAliases() { * modifications, giving up after 30 seconds with a SolrException. The caller should understand * it's possible the aliases has further changed if it examines it. */ + // op.apply returning the same Aliases instance signals no modification is needed, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public void applyModificationAndExportToZk(UnaryOperator op) { // The current aliases hasn't been update()'ed yet -- which is impossible? Any way just // update it first. diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index d6189278eafc..bc65c7b6b681 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -18,20 +18,22 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,jarValidation com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.code.findbugs:jsr305:3.0.2=spotless865458226 -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.code.findbugs:jsr305:3.0.2=spotless865458226,spotless865514924 +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.18.0=spotless865458226 -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.21.1=spotless865514924 +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.googlejavaformat:google-java-format:1.18.1=spotless865458226 -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.guava:failureaccess:1.0.1=spotless865458226 +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,spotless865514924,testAnnotationProcessor +com.google.guava:failureaccess:1.0.1=spotless865458226,spotless865514924 com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava-parent:32.1.1-jre=spotless865458226 com.google.guava:guava:32.1.1-jre=spotless865458226 +com.google.guava:guava:32.1.3-jre=spotless865514924 com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath -com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,spotless865514924,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.j2objc:j2objc-annotations:3.1=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.protobuf:protobuf-java:4.35.1=annotationProcessor,errorprone,testAnnotationProcessor com.j256.simplemagic:simplemagic:1.17=jarValidation,testRuntimeClasspath @@ -118,6 +120,7 @@ org.apache.zookeeper:zookeeper-jute:3.9.5=jarValidation,testCompileClasspath,tes org.apache.zookeeper:zookeeper:3.9.5=jarValidation,testCompileClasspath,testRuntimeClasspath org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.checkerframework:checker-qual:3.33.0=spotless865458226 +org.checkerframework:checker-qual:3.37.0=spotless865514924 org.codehaus.woodstox:stax2-api:4.3.0=jarValidation,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.34=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.34=jarValidation,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java index 752e7131509d..85cd0ab0dc3c 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java @@ -104,6 +104,8 @@ public boolean isEmpty() { return size() == 0; } + // backdoorE is a unique sentinel element, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public E poll(long timeout, TimeUnit unit) throws InterruptedException { E e = queue.poll(timeout, unit); if (e == null) { diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java index bcf5eb6b3c17..fccc4357fcde 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java @@ -290,9 +290,11 @@ private void checkContentType( try { ByteArrayOutputStream body = new ByteArrayOutputStream(); is.transferTo(body); + Charset charset = encoding != null ? Charset.forName(encoding) : FALLBACK_CHARSET; throw new RemoteSolrException( - urlExceptionMessage, httpStatus, prefix + body.toString(exceptionEncoding), null); - } catch (IOException e) { + urlExceptionMessage, httpStatus, prefix + body.toString(charset), null); + // IllegalArgumentException covers an unsupported/invalid charset name from the response + } catch (IOException | IllegalArgumentException e) { throw new RemoteSolrException( urlExceptionMessage, httpStatus, diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java index b67b665a5513..ba216b8bd586 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/CollectionAdminRequest.java @@ -353,7 +353,7 @@ public SolrParams getParams() { } } - /** Specific Collection API call implementations * */ + // Specific Collection API call implementations /** * Returns a SolrRequest for creating a collection diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/request/JavaBinUpdateRequestCodec.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/JavaBinUpdateRequestCodec.java index 6ce10ef381b8..25efca328dd2 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/request/JavaBinUpdateRequestCodec.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/request/JavaBinUpdateRequestCodec.java @@ -215,6 +215,8 @@ public List readIterator(DataInputInputStream fis) throws IOException { return List.of(); // bogus; already processed } + // END_OBJ is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") private void readDocs(DataInputInputStream fis) throws IOException { if (resultNamedList == null) resultNamedList = new NamedList<>(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/ResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/ResponseParser.java index 9884d8a1ef57..76879d662f52 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/ResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/ResponseParser.java @@ -34,6 +34,8 @@ protected ResponseParser() { assert validateContentTypes(); } + // identity check is intentional: getContentTypes() must return the same cached instance + @SuppressWarnings("ReferenceEquality") private boolean validateContentTypes() { Collection contentTypes = getContentTypes(); assert contentTypes == getContentTypes() diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java index a09ac3d2155a..9eb009ea6f45 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.nio.charset.Charset; import java.util.Map; import java.util.Set; import org.apache.solr.client.api.model.SolrJerseyResponse; @@ -68,7 +69,8 @@ public NamedList processResponse(InputStream stream, String encoding) th if (encoding == null) { parsedVal = mapper.readValue(stream, typeParam); } else { - parsedVal = mapper.readValue(new InputStreamReader(stream, encoding), typeParam); + parsedVal = + mapper.readValue(new InputStreamReader(stream, Charset.forName(encoding)), typeParam); } final var result = new SimpleOrderedMap(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java index e1848ba44ff0..ebba888cce05 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java @@ -20,6 +20,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Set; import org.apache.solr.client.solrj.response.ResponseParser; @@ -43,7 +45,8 @@ public NamedList processResponse(InputStream body, String encoding) thro @SuppressWarnings({"rawtypes"}) Map map = null; try (InputStreamReader reader = - new InputStreamReader(body, encoding == null ? "UTF-8" : encoding)) { + new InputStreamReader( + body, encoding == null ? StandardCharsets.UTF_8 : Charset.forName(encoding))) { ObjectBuilder builder = new ObjectBuilder(new JSONParser(reader)); map = (Map) builder.getObject(); } catch (JSONParser.ParseException e) { diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/routing/RequestReplicaListTransformerGenerator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/routing/RequestReplicaListTransformerGenerator.java index 4071dd7527f9..d3bfaf7eee6b 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/routing/RequestReplicaListTransformerGenerator.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/routing/RequestReplicaListTransformerGenerator.java @@ -216,7 +216,7 @@ public void transform(List choices) { if (log.isDebugEnabled()) { log.debug( "Applied sorting preferences to replica list: {}", - choices.stream().map(T::toString).collect(Collectors.joining(",", "[", "]"))); + choices.stream().map(Object::toString).collect(Collectors.joining(",", "[", "]"))); } } } diff --git a/solr/solrj/src/java/org/apache/solr/common/SolrDocument.java b/solr/solrj/src/java/org/apache/solr/common/SolrDocument.java index 53a152cfcd55..20f8a8013087 100644 --- a/solr/solrj/src/java/org/apache/solr/common/SolrDocument.java +++ b/solr/solrj/src/java/org/apache/solr/common/SolrDocument.java @@ -254,7 +254,7 @@ public void visitSelfAndNestedDocs(BiConsumer consumer) { /** Expose a Map interface to the solr field value collection. */ public Map> getFieldValuesMap() { return new Map<>() { - /** Get the field Value */ + /* Get the field Value */ @Override public Collection get(Object key) { return getFieldValues((String) key); @@ -327,7 +327,7 @@ public String toString() { /** Expose a Map interface to the solr fields. This function is useful for JSTL */ public Map getFieldValueMap() { return new Map<>() { - /** Get the field Value */ + /* Get the field Value */ @Override public Object get(Object key) { return getFirstValue((String) key); diff --git a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java index ec414d763134..e06cc4cd7cb3 100644 --- a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java +++ b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java @@ -18,8 +18,8 @@ import java.io.IOException; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Iterator; @@ -458,25 +458,20 @@ public NamedList toNamedList() { * empty. */ public String toQueryString() { - try { - final String charset = StandardCharsets.UTF_8.name(); - final StringBuilder sb = new StringBuilder(128); - boolean first = true; - for (final Iterator it = getParameterNamesIterator(); it.hasNext(); ) { - final String name = it.next(), nameEnc = URLEncoder.encode(name, charset); - for (String val : getParams(name)) { - sb.append(first ? '?' : '&') - .append(nameEnc) - .append('=') - .append(URLEncoder.encode(val, charset)); - first = false; - } + final Charset charset = StandardCharsets.UTF_8; + final StringBuilder sb = new StringBuilder(128); + boolean first = true; + for (final Iterator it = getParameterNamesIterator(); it.hasNext(); ) { + final String name = it.next(), nameEnc = URLEncoder.encode(name, charset); + for (String val : getParams(name)) { + sb.append(first ? '?' : '&') + .append(nameEnc) + .append('=') + .append(URLEncoder.encode(val, charset)); + first = false; } - return sb.toString(); - } catch (UnsupportedEncodingException e) { - // impossible! - throw new AssertionError(e); } + return sb.toString(); } /** diff --git a/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java b/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java index 7598e90fcbb8..287bf8a08cfb 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java @@ -47,6 +47,9 @@ public Object getCommandData() { return commandData; } + // identity check is intentional: returns null only when the root primitive is the passed-in + // default sentinel instance + @SuppressWarnings("ReferenceEquality") public String getStr(String key, String def) { if (ROOT_OBJ.equals(key)) { Object obj = getRootPrimitive(); diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java index ee46e6ddded5..c909d5aed193 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java @@ -24,9 +24,9 @@ import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; -import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -214,12 +214,7 @@ public StringStream(String str, String contentType) { this.str = str; this.contentType = contentType; name = null; - try { - size = (long) str.getBytes(DEFAULT_CHARSET).length; - } catch (UnsupportedEncodingException e) { - // won't happen - throw new RuntimeException(e); - } + size = (long) str.getBytes(StandardCharsets.UTF_8).length; sourceInfo = "string"; } @@ -249,14 +244,16 @@ public static String detect(String str) { @Override public InputStream getStream() throws IOException { - return new ByteArrayInputStream(str.getBytes(DEFAULT_CHARSET)); + return new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8)); } /** If a charset is defined (by the contentType) use that, otherwise use a StringReader */ @Override public Reader getReader() throws IOException { String charset = getCharsetFromContentType(contentType); - return charset == null ? new StringReader(str) : new InputStreamReader(getStream(), charset); + return charset == null + ? new StringReader(str) + : new InputStreamReader(getStream(), Charset.forName(charset)); } } @@ -268,8 +265,8 @@ public Reader getReader() throws IOException { public Reader getReader() throws IOException { String charset = getCharsetFromContentType(getContentType()); return charset == null - ? new InputStreamReader(getStream(), DEFAULT_CHARSET) - : new InputStreamReader(getStream(), charset); + ? new InputStreamReader(getStream(), StandardCharsets.UTF_8) + : new InputStreamReader(getStream(), Charset.forName(charset)); } // ------------------------------------------------------------------ diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java b/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java index f47ff63b9805..8e25ec96371e 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/JavaBinCodec.java @@ -826,6 +826,8 @@ public void writeSolrInputDocument(SolrInputDocument sdoc) throws IOException { } } + // END_OBJ is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public Map readMapIter(DataInputInputStream dis) throws IOException { Map m = newMap(-1); for (; ; ) { @@ -931,6 +933,8 @@ public void writeIterator(Iterator iter) throws IOException { writeTag(END); } + // END_OBJ is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public List readIterator(DataInputInputStream fis) throws IOException { ArrayList l = new ArrayList<>(); while (true) { @@ -1237,6 +1241,8 @@ public void writeFloat(float val) throws IOException { daos.writeFloat(val); } + // END_OBJ is a unique sentinel, so identity comparison against it is intentional + @SuppressWarnings("ReferenceEquality") public boolean writePrimitive(Object val) throws IOException { if (val == null) { daos.writeByte(NULL); diff --git a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java index 982d706590db..5633e34232b4 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java @@ -905,7 +905,7 @@ private static List getReflectData( Class catchAllAnnotation, Function fieldNamer) throws IllegalAccessException { - boolean sameClassLoader = c.getClassLoader() == Utils.class.getClassLoader(); + boolean sameClassLoader = Objects.equals(c.getClassLoader(), Utils.class.getClassLoader()); // we should not cache the class references of objects loaded from packages because they will // not get garbage collected // TODO fix that later diff --git a/solr/solrj/src/java/org/noggit/JSONParser.java b/solr/solrj/src/java/org/noggit/JSONParser.java index 3a7d45e023ff..543098cec0e1 100644 --- a/solr/solrj/src/java/org/noggit/JSONParser.java +++ b/solr/solrj/src/java/org/noggit/JSONParser.java @@ -622,6 +622,8 @@ private int readExpDigits(CharArr arr, int lim) throws IOException { return BIGNUMBER; } + // arr != out is an intentional identity check: only copy when arr is not the shared out buffer + @SuppressWarnings("ReferenceEquality") private void continueNumber(CharArr arr) throws IOException { if (arr != out) arr.write(out); @@ -760,6 +762,8 @@ private void readStringChars2(CharArr arr, int middle) throws IOException { } } + // arr != out is an intentional identity check: only copy when arr is not the shared out buffer + @SuppressWarnings("ReferenceEquality") private void readStringBare(CharArr arr) throws IOException { if (arr != out) { arr.append(out); diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestFastWriter.java b/solr/solrj/src/test/org/apache/solr/common/util/TestFastWriter.java index 382c2093c98f..ad80d26e9550 100644 --- a/solr/solrj/src/test/org/apache/solr/common/util/TestFastWriter.java +++ b/solr/solrj/src/test/org/apache/solr/common/util/TestFastWriter.java @@ -32,6 +32,9 @@ public MemWriter(char[] tempBuffer, Random r) { this.r = r; } + // arr == buf checks whether the flushed array is the writer's own buffer instance so it can + // be stolen, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") @Override public void flush(char[] arr, int offset, int len) throws IOException { if (arr == buf && offset == 0 && len == buf.length) { diff --git a/solr/solrj/src/test/org/noggit/TestJSONParser.java b/solr/solrj/src/test/org/noggit/TestJSONParser.java index 3a6d475256a8..2fc879ee1664 100644 --- a/solr/solrj/src/test/org/noggit/TestJSONParser.java +++ b/solr/solrj/src/test/org/noggit/TestJSONParser.java @@ -396,6 +396,9 @@ public String toString() { }; // match parser states with the expected states + // exp == got matches the unique event sentinel objects (a, A, m, M, N, e), so identity + // comparison is intentional + @SuppressWarnings("ReferenceEquality") public static void parse(JSONParser p, String input, Object[] expected) throws IOException { for (int i = 0; i < expected.length; i++) { int ev = p.nextEvent(); diff --git a/solr/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile index ef8cf04034c1..40fd0e4d8215 100644 --- a/solr/test-framework/gradle.lockfile +++ b/solr/test-framework/gradle.lockfile @@ -19,11 +19,11 @@ com.github.spotbugs:spotbugs-annotations:4.9.8=compileClasspath com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java index ca2c5657de8d..a4cd93cfc7f9 100644 --- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java @@ -893,6 +893,8 @@ public static String compare(Object[] a, Object[] b, int flags, Map handle) { if (a == b) return null; if (a == null || b == null) return ":" + a + "!=" + b; 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 08df42a6c8f3..802a3500a5e3 100644 --- a/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java +++ b/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java @@ -215,6 +215,8 @@ public boolean match(Object expected) { return match(); } + // same-instance fast path (also covers both-null), so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") boolean match() { if (expected == val) { return true; 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 4f4dedd1eec4..92a1d09e6ddb 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -469,6 +469,8 @@ public static void newRandomConfig() { randomizeNumericTypesProperties(); } + // identity check detects self-referential cause chains, so reference comparison is intentional + @SuppressWarnings("ReferenceEquality") public static Throwable getWrappedException(Throwable e) { while (e != null && e.getCause() != e && e.getCause() != null) { e = e.getCause(); @@ -2275,6 +2277,8 @@ public static void copySolrHomeToTemp(Path dstRoot, String collection) throws IO Files.copy(top.resolve("synonyms.txt"), subHome.resolve("synonyms.txt")); } + // same-instance fast path, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public boolean compareSolrDocument(Object expected, Object actual) { if (!(expected instanceof SolrDocument solrDocument1) @@ -2325,6 +2329,8 @@ public boolean compareSolrDocument(Object expected, Object actual) { } } + // same-instance fast path, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public boolean compareSolrDocumentList(Object expected, Object actual) { if (!(expected instanceof SolrDocumentList list1) || !(actual instanceof SolrDocumentList list2)) { @@ -2356,6 +2362,8 @@ public boolean compareSolrDocumentList(Object expected, Object actual) { return true; } + // same-instance fast path, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public boolean compareSolrInputDocument(Object expected, Object actual) { if (!(expected instanceof SolrInputDocument sdoc1) @@ -2430,6 +2438,8 @@ public boolean compareSolrInputDocument(Object expected, Object actual) { } } + // same-instance fast path, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public boolean assertSolrInputFieldEquals(Object expected, Object actual) { if (!(expected instanceof SolrInputField sif1) || !(actual instanceof SolrInputField sif2)) { return false; @@ -2576,6 +2586,9 @@ public static String randomXmlUsableUnicodeString() { return result; } + // waits until the registered searcher is the exact same instance as the newest searcher, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") protected static void waitForWarming(SolrCore core) throws InterruptedException { RefCounted registeredSearcher = core.getRegisteredSearcher(); RefCounted newestSearcher = core.getNewestSearcher(false); diff --git a/solr/test-framework/src/java/org/apache/solr/cluster/placement/Builders.java b/solr/test-framework/src/java/org/apache/solr/cluster/placement/Builders.java index 03cc95228387..89c65e191a0f 100644 --- a/solr/test-framework/src/java/org/apache/solr/cluster/placement/Builders.java +++ b/solr/test-framework/src/java/org/apache/solr/cluster/placement/Builders.java @@ -515,6 +515,9 @@ public ShardBuilder setLeader(ReplicaBuilder leaderReplicaBuilder) { return this; } + // leaderReplicaBuilder is expected to be one of the builder instances in replicaBuilders, so + // identity comparison is intentional + @SuppressWarnings("ReferenceEquality") public Shard build(SolrCollection collection) { ClusterAbstractionsForTest.ShardImpl shard = new ClusterAbstractionsForTest.ShardImpl(shardName, collection, Shard.ShardState.ACTIVE); diff --git a/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java b/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java index 653a001ff1d6..76b74e842204 100644 --- a/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java +++ b/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java @@ -553,6 +553,8 @@ private void retryOnPortBindFailure(int portRetryTime, int port) throws Exceptio * @param ioe An IOException that might wrap a BindException * @return A bind exception if present otherwise ioe */ + // guarding against a self-referential cause chain, so identity comparison is intentional + @SuppressWarnings("ReferenceEquality") Exception lookForBindException(IOException ioe) { Exception e = ioe; while (e.getCause() != null && !(e == e.getCause()) && !(e instanceof BindException)) { diff --git a/solr/test-framework/src/java/org/apache/solr/util/RevertDefaultThreadHandlerRule.java b/solr/test-framework/src/java/org/apache/solr/util/RevertDefaultThreadHandlerRule.java index 89778e80ae93..4912629e80dd 100644 --- a/solr/test-framework/src/java/org/apache/solr/util/RevertDefaultThreadHandlerRule.java +++ b/solr/test-framework/src/java/org/apache/solr/util/RevertDefaultThreadHandlerRule.java @@ -30,6 +30,9 @@ public final class RevertDefaultThreadHandlerRule implements TestRule { @Override public Statement apply(Statement s, Description d) { return new StatementAdapter(s) { + // detects whether ZK replaced the default handler instance, so identity comparison is + // intentional + @SuppressWarnings("ReferenceEquality") @Override protected void before() throws Throwable { if (!applied.getAndSet(true)) { diff --git a/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java b/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java index 9a62ecb2afba..88850be9180f 100644 --- a/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java +++ b/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java @@ -319,19 +319,19 @@ private static byte[] fillData(byte[] data) { /** SPI Used to init all instances */ private static final SecureRandomSpi NOT_SECURE_SPI = new SecureRandomSpi() { - /** returns a new byte[] filled with static data */ + // returns a new byte[] filled with static data @Override public byte[] engineGenerateSeed(int numBytes) { return fillData(new byte[numBytes]); } - /** fills the byte[] with static data */ + // fills the byte[] with static data @Override public void engineNextBytes(byte[] bytes) { fillData(bytes); } - /** NOOP */ + // NOOP @Override public void engineSetSeed(byte[] seed) { /* NOOP */ diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index fec92697f635..77700da2b6f1 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/gradle.lockfile @@ -16,11 +16,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=annotationProcessor,errorprone,solrCore,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,solrCore,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,solrCore,testAnnotationProcessor com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,solrCore,testAnnotationProcessor com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,solrCore,testAnnotationProcessor From 49b7c2b02ecb18b9a691411941df275f5a88c738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Thu, 2 Jul 2026 23:27:16 +0200 Subject: [PATCH 2/8] Add PR#4604 link to changelog entry --- ...orprone-2.50.0.yml => PR#4604-update-google-errorprone.yml} | 3 +++ 1 file changed, 3 insertions(+) rename changelog/unreleased/{update-google-errorprone-2.50.0.yml => PR#4604-update-google-errorprone.yml} (79%) diff --git a/changelog/unreleased/update-google-errorprone-2.50.0.yml b/changelog/unreleased/PR#4604-update-google-errorprone.yml similarity index 79% rename from changelog/unreleased/update-google-errorprone-2.50.0.yml rename to changelog/unreleased/PR#4604-update-google-errorprone.yml index d942aabcc96b..c78a1e897f0b 100644 --- a/changelog/unreleased/update-google-errorprone-2.50.0.yml +++ b/changelog/unreleased/PR#4604-update-google-errorprone.yml @@ -3,3 +3,6 @@ title: Update com.google.errorprone to 2.50.0 and fix/suppress new bug patterns type: dependency_update authors: - name: Jan Høydahl +links: +- name: PR#4604 + url: https://github.com/apache/solr/pull/4604 From 41ba2102134298bec64f1149b25941f1698ba28f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Fri, 3 Jul 2026 00:08:54 +0200 Subject: [PATCH 3/8] ClassLoader identity (not equals) determines whether it is safe to cache reflective metadata Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- solr/solrj/src/java/org/apache/solr/common/util/Utils.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java index 5633e34232b4..acbbdac41d72 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/Utils.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/Utils.java @@ -905,7 +905,9 @@ private static List getReflectData( Class catchAllAnnotation, Function fieldNamer) throws IllegalAccessException { - boolean sameClassLoader = Objects.equals(c.getClassLoader(), Utils.class.getClassLoader()); + // ClassLoader identity (not equals) determines whether it is safe to cache reflective metadata. + @SuppressWarnings("ReferenceEquality") + boolean sameClassLoader = c.getClassLoader() == Utils.class.getClassLoader(); // we should not cache the class references of objects loaded from packages because they will // not get garbage collected // TODO fix that later From 282d84b5285e559ebfc9708f63469463fed5d4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Fri, 3 Jul 2026 00:21:02 +0200 Subject: [PATCH 4/8] Handle IllegalArgumentException from Charset.forName for client-supplied charset names Error Prone's fixes replaced String-based charset APIs (which throw the checked UnsupportedEncodingException) with Charset.forName(), which throws unchecked IllegalArgumentException. Since the charset name typically comes from a Content-Type header, an invalid name would now escape as a runtime exception instead of being handled as an I/O error. Add ContentStreamBase.charsetForName() which converts the unchecked exceptions back to UnsupportedEncodingException, restoring the pre-upgrade behavior, and use it at all call sites introduced on this branch. HttpSolrClient already catches IllegalArgumentException explicitly and is left unchanged. --- .../DefaultSampleDocumentsLoader.java | 5 ++--- .../apache/solr/handler/loader/XMLLoader.java | 6 +++-- .../response/TextQueryResponseWriter.java | 7 +++--- .../solr/spelling/FileBasedSpellChecker.java | 4 ++-- .../json/JacksonDataBindResponseParser.java | 5 +++-- .../response/json/JsonMapResponseParser.java | 7 ++++-- .../solr/common/util/ContentStreamBase.java | 22 +++++++++++++++++-- 7 files changed, 40 insertions(+), 16 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java index 7aeb0e963082..0b0251154f13 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java @@ -25,7 +25,6 @@ import java.io.Reader; import java.io.StringReader; import java.lang.invoke.MethodHandles; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; @@ -140,7 +139,7 @@ protected List loadCsvDocs( throws IOException { ContentStream stream; if (params.get(SEPARATOR) == null) { - String csvStr = new String(streamBytes, Charset.forName(charset)); + String csvStr = new String(streamBytes, ContentStreamBase.charsetForName(charset)); char sep = detectTSV(csvStr); ModifiableSolrParams modifiableSolrParams = new ModifiableSolrParams(params); modifiableSolrParams.set(SEPARATOR, String.valueOf(sep)); @@ -200,7 +199,7 @@ protected List loadJsonDocs( String jsonStr = new String( readAllBytes(stream), - charset != null ? Charset.forName(charset) : StandardCharsets.UTF_8); + charset != null ? ContentStreamBase.charsetForName(charset) : StandardCharsets.UTF_8); String[] lines = jsonStr.split("\n"); if (lines.length > 1) { for (String line : lines) { diff --git a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java index 23068f02087c..0a561d805dd4 100644 --- a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java @@ -23,7 +23,6 @@ import java.io.IOException; import java.io.InputStream; import java.lang.invoke.MethodHandles; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; @@ -137,7 +136,10 @@ private InputStream getStream(ContentStream cs, String charset) throws IOExcepti log.trace( "body: {}", new String( - body, (charset == null) ? StandardCharsets.UTF_8 : Charset.forName(charset))); + body, + (charset == null) + ? StandardCharsets.UTF_8 + : ContentStreamBase.charsetForName(charset))); } return new ByteArrayInputStream(body); } diff --git a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java index dac0c17219c0..71b67d4b3b41 100644 --- a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java @@ -21,8 +21,8 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.StringWriter; +import java.io.UnsupportedEncodingException; import java.io.Writer; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.FastWriter; @@ -64,12 +64,13 @@ default void write( writer.flush(); } - private static Writer buildWriter(OutputStream outputStream, String charset) { + private static Writer buildWriter(OutputStream outputStream, String charset) + throws UnsupportedEncodingException { // note: OutputStreamWriter has an internal buffer; flush is needed Writer writer = (charset == null) ? new OutputStreamWriter(outputStream, StandardCharsets.UTF_8) - : new OutputStreamWriter(outputStream, Charset.forName(charset)); + : new OutputStreamWriter(outputStream, ContentStreamBase.charsetForName(charset)); return new FastWriter(writer); // note: buffered; therefore we need to call flush() } diff --git a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java index 22e9fbad555d..aeedb5145fb9 100644 --- a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java @@ -19,7 +19,6 @@ import java.io.IOException; import java.io.InputStreamReader; import java.lang.invoke.MethodHandles; -import java.nio.charset.Charset; import java.util.List; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -34,6 +33,7 @@ import org.apache.lucene.search.spell.PlainTextDictionary; import org.apache.lucene.store.ByteBuffersDirectory; import org.apache.lucene.store.Directory; +import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; import org.apache.solr.schema.FieldType; @@ -124,7 +124,7 @@ private void loadExternalFileDictionary(SolrCore core, SolrIndexSearcher searche new PlainTextDictionary( new InputStreamReader( core.getResourceLoader().openResource(sourceLocation), - Charset.forName(characterEncoding))); + ContentStreamBase.charsetForName(characterEncoding))); } } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java index 9eb009ea6f45..b244b295afb5 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java @@ -20,12 +20,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.nio.charset.Charset; import java.util.Map; import java.util.Set; import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.solrj.request.json.JacksonContentWriter; import org.apache.solr.client.solrj.response.ResponseParser; +import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.SimpleOrderedMap; @@ -70,7 +70,8 @@ public NamedList processResponse(InputStream stream, String encoding) th parsedVal = mapper.readValue(stream, typeParam); } else { parsedVal = - mapper.readValue(new InputStreamReader(stream, Charset.forName(encoding)), typeParam); + mapper.readValue( + new InputStreamReader(stream, ContentStreamBase.charsetForName(encoding)), typeParam); } final var result = new SimpleOrderedMap(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java index ebba888cce05..8a0d6f271149 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java @@ -20,12 +20,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Set; import org.apache.solr.client.solrj.response.ResponseParser; import org.apache.solr.common.SolrException; +import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.noggit.JSONParser; import org.noggit.ObjectBuilder; @@ -46,7 +46,10 @@ public NamedList processResponse(InputStream body, String encoding) thro Map map = null; try (InputStreamReader reader = new InputStreamReader( - body, encoding == null ? StandardCharsets.UTF_8 : Charset.forName(encoding))) { + body, + encoding == null + ? StandardCharsets.UTF_8 + : ContentStreamBase.charsetForName(encoding))) { ObjectBuilder builder = new ObjectBuilder(new JSONParser(reader)); map = (Map) builder.getObject(); } catch (JSONParser.ParseException e) { diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java index c909d5aed193..e2a96b70029f 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java @@ -24,6 +24,7 @@ import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; +import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.nio.charset.Charset; @@ -77,6 +78,23 @@ public static String getCharsetFromContentType(String contentType) { return null; } + /** + * Resolves a charset name (typically from a Content-Type header) to a {@link Charset}. Unlike + * {@link Charset#forName(String)}, an illegal or unsupported name results in a checked {@link + * UnsupportedEncodingException}, matching the behavior of the legacy {@code String}-based JDK + * charset APIs, so callers can treat a bad charset as an I/O error. + */ + public static Charset charsetForName(String charsetName) throws UnsupportedEncodingException { + try { + return Charset.forName(charsetName); + } catch (IllegalArgumentException e) { + UnsupportedEncodingException uee = + new UnsupportedEncodingException("Unsupported charset: " + charsetName); + uee.initCause(e); + throw uee; + } + } + protected String attemptToDetermineContentType() { String type = null; if (name != null) { @@ -253,7 +271,7 @@ public Reader getReader() throws IOException { String charset = getCharsetFromContentType(contentType); return charset == null ? new StringReader(str) - : new InputStreamReader(getStream(), Charset.forName(charset)); + : new InputStreamReader(getStream(), charsetForName(charset)); } } @@ -266,7 +284,7 @@ public Reader getReader() throws IOException { String charset = getCharsetFromContentType(getContentType()); return charset == null ? new InputStreamReader(getStream(), StandardCharsets.UTF_8) - : new InputStreamReader(getStream(), Charset.forName(charset)); + : new InputStreamReader(getStream(), charsetForName(charset)); } // ------------------------------------------------------------------ From 65a43bf3cd39c6e521cd53565c7e714dbf4438d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Fri, 3 Jul 2026 13:27:12 +0200 Subject: [PATCH 5/8] Move real fixes out to separate PRs; suppress findings with TODO links Per review feedback, behavior-changing fixes are split into their own PRs so this PR only carries the mechanical Error Prone 2.50.0 compliance work: - Reference-equality bug fixes (ZkMaintenanceUtils, HttpShardHandler, ZkShardTermsTest) moved to https://github.com/apache/solr/pull/4605 - Charset API modernization (JdkObsolete findings) moved to https://github.com/apache/solr/pull/4606 The affected sites revert to the code on main, with @SuppressWarnings and a TODO comment pointing at the PR that carries the real fix; the suppressions are dropped when those PRs merge and this branch rebases. --- .../handler/component/HttpShardHandler.java | 5 +- .../DefaultSampleDocumentsLoader.java | 12 +++-- .../apache/solr/handler/loader/XMLLoader.java | 10 ++-- .../response/TextQueryResponseWriter.java | 5 +- .../solr/spelling/FileBasedSpellChecker.java | 7 +-- .../apache/solr/cloud/ZkShardTermsTest.java | 5 +- .../TestManagedSynonymGraphFilterFactory.java | 15 +++--- .../solr/crossdc/common/ConfUtilTest.java | 16 +++++-- .../solr/common/cloud/ZkMaintenanceUtils.java | 5 +- .../client/solrj/impl/HttpSolrClient.java | 9 ++-- .../json/JacksonDataBindResponseParser.java | 8 ++-- .../response/json/JsonMapResponseParser.java | 12 ++--- .../apache/solr/common/params/SolrParams.java | 34 +++++++++----- .../solr/common/util/ContentStreamBase.java | 47 +++++++++---------- 14 files changed, 107 insertions(+), 83 deletions(-) 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 da2847210809..1c1ac8ec5adf 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 @@ -496,7 +496,10 @@ public void prepDistributed(ResponseBuilder rb) { ReplicaSource replicaSource; if (zkController != null) { - boolean onlyNrt = Boolean.TRUE.equals(req.getContext().get(ONLY_NRT_REPLICAS)); + // TODO: comparing a Boolean by reference is a genuine bug, fixed in + // https://github.com/apache/solr/pull/4605; remove this suppression when that PR merges + @SuppressWarnings("ReferenceEquality") + boolean onlyNrt = Boolean.TRUE == req.getContext().get(ONLY_NRT_REPLICAS); replicaSource = new CloudReplicaSource.Builder() diff --git a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java index 0b0251154f13..78c243886e8b 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java @@ -134,12 +134,15 @@ public SampleDocuments parseDocsFromStream( return new SampleDocuments(docs, contentType, fileSource); } + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") protected List loadCsvDocs( SolrParams params, String source, byte[] streamBytes, String charset, final int maxDocsToLoad) throws IOException { ContentStream stream; if (params.get(SEPARATOR) == null) { - String csvStr = new String(streamBytes, ContentStreamBase.charsetForName(charset)); + String csvStr = new String(streamBytes, charset); char sep = detectTSV(csvStr); ModifiableSolrParams modifiableSolrParams = new ModifiableSolrParams(params); modifiableSolrParams.set(SEPARATOR, String.valueOf(sep)); @@ -176,7 +179,9 @@ protected List loadJsonLines( return docs.stream().map(JsonLoader::buildDoc).collect(Collectors.toList()); } - @SuppressWarnings("unchecked") + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove the + // JdkObsolete suppression when that PR merges + @SuppressWarnings({"unchecked", "JdkObsolete"}) protected List loadJsonDocs( ContentStreamBase.ByteArrayStream stream, final int maxDocsToLoad) throws IOException { Object json; @@ -198,8 +203,7 @@ protected List loadJsonDocs( String charset = ContentStreamBase.getCharsetFromContentType(stream.getContentType()); String jsonStr = new String( - readAllBytes(stream), - charset != null ? ContentStreamBase.charsetForName(charset) : StandardCharsets.UTF_8); + readAllBytes(stream), charset != null ? charset : ContentStreamBase.DEFAULT_CHARSET); String[] lines = jsonStr.split("\n"); if (lines.length > 1) { for (String line : lines) { diff --git a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java index 0a561d805dd4..5f34244018f7 100644 --- a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java @@ -23,7 +23,6 @@ import java.io.IOException; import java.io.InputStream; import java.lang.invoke.MethodHandles; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -126,6 +125,9 @@ public void load( } } + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") private InputStream getStream(ContentStream cs, String charset) throws IOException { if (log.isTraceEnabled()) { try (InputStream is = cs.getStream()) { @@ -135,11 +137,7 @@ private InputStream getStream(ContentStream cs, String charset) throws IOExcepti if (log.isTraceEnabled()) { log.trace( "body: {}", - new String( - body, - (charset == null) - ? StandardCharsets.UTF_8 - : ContentStreamBase.charsetForName(charset))); + new String(body, (charset == null) ? ContentStreamBase.DEFAULT_CHARSET : charset)); } return new ByteArrayInputStream(body); } diff --git a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java index 71b67d4b3b41..e5a0ef0ba0ab 100644 --- a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java @@ -64,13 +64,16 @@ default void write( writer.flush(); } + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") private static Writer buildWriter(OutputStream outputStream, String charset) throws UnsupportedEncodingException { // note: OutputStreamWriter has an internal buffer; flush is needed Writer writer = (charset == null) ? new OutputStreamWriter(outputStream, StandardCharsets.UTF_8) - : new OutputStreamWriter(outputStream, ContentStreamBase.charsetForName(charset)); + : new OutputStreamWriter(outputStream, charset); return new FastWriter(writer); // note: buffered; therefore we need to call flush() } diff --git a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java index aeedb5145fb9..418c88719688 100644 --- a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java @@ -33,7 +33,6 @@ import org.apache.lucene.search.spell.PlainTextDictionary; import org.apache.lucene.store.ByteBuffersDirectory; import org.apache.lucene.store.Directory; -import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; import org.apache.solr.schema.FieldType; @@ -79,6 +78,9 @@ protected IndexReader determineReader(IndexReader reader) { return null; } + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") private void loadExternalFileDictionary(SolrCore core, SolrIndexSearcher searcher) { try { IndexSchema schema = null == searcher ? core.getLatestSchema() : searcher.getSchema(); @@ -123,8 +125,7 @@ private void loadExternalFileDictionary(SolrCore core, SolrIndexSearcher searche dictionary = new PlainTextDictionary( new InputStreamReader( - core.getResourceLoader().openResource(sourceLocation), - ContentStreamBase.charsetForName(characterEncoding))); + core.getResourceLoader().openResource(sourceLocation), characterEncoding)); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java index 883af88f3142..44e3f724078d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java @@ -377,10 +377,13 @@ public void testSetHighestTerms() throws Exception { replica3Terms.close(); } + // TODO: comparing boxed values by reference is a genuine bug, fixed in + // https://github.com/apache/solr/pull/4605; remove this suppression when that PR merges + @SuppressWarnings("ReferenceEquality") private void waitFor(T expected, Supplier supplier) throws InterruptedException { TimeOut timeOut = new TimeOut(10, TimeUnit.SECONDS, new TimeSource.CurrentTimeSource()); while (!timeOut.hasTimedOut()) { - if (Objects.equals(expected, supplier.get())) return; + if (expected == supplier.get()) return; Thread.sleep(100); } assertEquals(expected, supplier.get()); diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java index dc58da73485f..01ea80abeb42 100644 --- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java +++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java @@ -20,7 +20,6 @@ import static org.apache.solr.common.util.Utils.toJSONString; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; @@ -59,6 +58,9 @@ public void after() throws Exception { } @Test + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public void testManagedSynonyms() throws Exception { // this endpoint depends on at least one field type containing the following // declaration in the schema-rest.xml: @@ -151,10 +153,7 @@ public void testManagedSynonyms() throws Exception { "/response/result[@name='response'][@numFound='1']", "/response/result[@name='response']/doc/str[@name='id'][.='5150']"); assertQ( - "/select?q=" - + newFieldName - + ":" - + URLEncoder.encode(multiTermOrigin, StandardCharsets.UTF_8), + "/select?q=" + newFieldName + ":" + URLEncoder.encode(multiTermOrigin, "UTF-8"), "/response/lst[@name='responseHeader']/int[@name='status'] = '0'", "/response/result[@name='response'][@numFound='1']", "/response/result[@name='response']/doc/str[@name='id'][.='040']"); @@ -172,7 +171,7 @@ public void testManagedSynonyms() throws Exception { assertJPut(endpoint, toJSONString(syns), "/responseHeader/status==0"); assertJQ( - endpoint + "/" + URLEncoder.encode(multiTermSynonym, StandardCharsets.UTF_8), + endpoint + "/" + URLEncoder.encode(multiTermSynonym, "UTF-8"), "/" + multiTermSynonym + "==['" + multiTermOrigin + "']"); // should not match as the synonym mapping between mad and angry does not @@ -188,7 +187,7 @@ public void testManagedSynonyms() throws Exception { "/select?q=" + newFieldName + ":(" - + URLEncoder.encode(multiTermSynonym, StandardCharsets.UTF_8) + + URLEncoder.encode(multiTermSynonym, "UTF-8") + ")&sow=false", "/response/lst[@name='responseHeader']/int[@name='status'] = '0'", "/response/result[@name='response'][@numFound='0']"); @@ -207,7 +206,7 @@ public void testManagedSynonyms() throws Exception { "/select?q=" + newFieldName + ":(" - + URLEncoder.encode(multiTermSynonym, StandardCharsets.UTF_8) + + URLEncoder.encode(multiTermSynonym, "UTF-8") + ")&sow=false", "/response/lst[@name='responseHeader']/int[@name='status'] = '0'", "/response/result[@name='response'][@numFound='1']", diff --git a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java index 28a98d6d7a1e..75b7731b1fc9 100644 --- a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java +++ b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java @@ -22,7 +22,6 @@ import java.io.ByteArrayOutputStream; import java.io.OutputStreamWriter; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -120,6 +119,9 @@ public void testFillProperties_WithMixedCaseKafkaPrefix() { } @Test + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public void testFillProperties_FromZooKeeper() throws Exception { Map properties = new HashMap<>(); @@ -130,7 +132,7 @@ public void testFillProperties_FromZooKeeper() throws Exception { zkProps.setProperty("custom.zk.property", "zk-value"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - OutputStreamWriter writer = new OutputStreamWriter(baos, StandardCharsets.UTF_8); + OutputStreamWriter writer = new OutputStreamWriter(baos, "UTF-8"); zkProps.store(writer, null); writer.close(); byte[] zkData = baos.toByteArray(); @@ -147,6 +149,9 @@ public void testFillProperties_FromZooKeeper() throws Exception { } @Test + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public void testFillProperties_PriorityOrder() throws Exception { Map properties = new HashMap<>(); @@ -156,7 +161,7 @@ public void testFillProperties_PriorityOrder() throws Exception { zkProps.setProperty(KafkaCrossDcConf.TOPIC_NAME, "zk-topic"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - OutputStreamWriter writer = new OutputStreamWriter(baos, StandardCharsets.UTF_8); + OutputStreamWriter writer = new OutputStreamWriter(baos, "UTF-8"); zkProps.store(writer, null); writer.close(); byte[] zkData = baos.toByteArray(); @@ -308,6 +313,9 @@ public void testFillProperties_SecurityProperties() throws Exception { } @Test + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public void testFillProperties_ComplexScenario() throws Exception { Map properties = new HashMap<>(); @@ -319,7 +327,7 @@ public void testFillProperties_ComplexScenario() throws Exception { zkProps.setProperty("zk.only.property", "zk-value"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); - OutputStreamWriter writer = new OutputStreamWriter(baos, StandardCharsets.UTF_8); + OutputStreamWriter writer = new OutputStreamWriter(baos, "UTF-8"); zkProps.store(writer, null); writer.close(); byte[] zkData = baos.toByteArray(); diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java index 4efb08274130..8c4b34f6c294 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java @@ -332,6 +332,9 @@ public static void uploadToZK( rootPath, new SimpleFileVisitor() { @Override + // TODO: `file == rootPath` is a genuine bug (Path compared by reference), fixed in + // https://github.com/apache/solr/pull/4605; remove this suppression when that PR merges + @SuppressWarnings("ReferenceEquality") public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { String filename = file.getFileName().toString(); @@ -349,7 +352,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) if (file.getFileName().toString().equals(ZKNODE_DATA_FILE) && zkClient.exists(zkNode)) { zkClient.setData(zkNode, file); - } else if (file.equals(rootPath)) { + } else if (file == rootPath) { // We are only uploading a single file, preVisitDirectory was never called if (zkClient.exists(zkPath)) { zkClient.setData(zkPath, file); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java index fccc4357fcde..630ed4710c8d 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java @@ -268,6 +268,9 @@ protected boolean wantStream(final ResponseParser processor) { * Validates that the content type in the response can be processed by the Response Parser. Throws * a {@code RemoteSolrException} if not. */ + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") private void checkContentType( ResponseParser processor, InputStream is, @@ -290,11 +293,9 @@ private void checkContentType( try { ByteArrayOutputStream body = new ByteArrayOutputStream(); is.transferTo(body); - Charset charset = encoding != null ? Charset.forName(encoding) : FALLBACK_CHARSET; throw new RemoteSolrException( - urlExceptionMessage, httpStatus, prefix + body.toString(charset), null); - // IllegalArgumentException covers an unsupported/invalid charset name from the response - } catch (IOException | IllegalArgumentException e) { + urlExceptionMessage, httpStatus, prefix + body.toString(exceptionEncoding), null); + } catch (IOException e) { throw new RemoteSolrException( urlExceptionMessage, httpStatus, diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java index b244b295afb5..b66ef97df991 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java @@ -25,7 +25,6 @@ import org.apache.solr.client.api.model.SolrJerseyResponse; import org.apache.solr.client.solrj.request.json.JacksonContentWriter; import org.apache.solr.client.solrj.response.ResponseParser; -import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.SimpleOrderedMap; @@ -61,6 +60,9 @@ public Set getContentTypes() { * Parse the Json {@code stream} to the expected Java type, then, converts to a {@link NamedList}. */ @Override + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public NamedList processResponse(InputStream stream, String encoding) throws IOException { // TODO generalize to CBOR, Smile, ... var mapper = JacksonContentWriter.DEFAULT_MAPPER; @@ -69,9 +71,7 @@ public NamedList processResponse(InputStream stream, String encoding) th if (encoding == null) { parsedVal = mapper.readValue(stream, typeParam); } else { - parsedVal = - mapper.readValue( - new InputStreamReader(stream, ContentStreamBase.charsetForName(encoding)), typeParam); + parsedVal = mapper.readValue(new InputStreamReader(stream, encoding), typeParam); } final var result = new SimpleOrderedMap(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java index 8a0d6f271149..1b05fd7fbb4a 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java @@ -20,12 +20,10 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Set; import org.apache.solr.client.solrj.response.ResponseParser; import org.apache.solr.common.SolrException; -import org.apache.solr.common.util.ContentStreamBase; import org.apache.solr.common.util.NamedList; import org.noggit.JSONParser; import org.noggit.ObjectBuilder; @@ -40,16 +38,14 @@ public String getWriterType() { } @Override - @SuppressWarnings({"unchecked"}) + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove the + // JdkObsolete suppression when that PR merges + @SuppressWarnings({"unchecked", "JdkObsolete"}) public NamedList processResponse(InputStream body, String encoding) throws IOException { @SuppressWarnings({"rawtypes"}) Map map = null; try (InputStreamReader reader = - new InputStreamReader( - body, - encoding == null - ? StandardCharsets.UTF_8 - : ContentStreamBase.charsetForName(encoding))) { + new InputStreamReader(body, encoding == null ? "UTF-8" : encoding)) { ObjectBuilder builder = new ObjectBuilder(new JSONParser(reader)); map = (Map) builder.getObject(); } catch (JSONParser.ParseException e) { diff --git a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java index e06cc4cd7cb3..de3fb23b0b85 100644 --- a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java +++ b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java @@ -18,8 +18,8 @@ import java.io.IOException; import java.io.Serializable; +import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Iterator; @@ -457,21 +457,29 @@ public NamedList toNamedList() { * Returns this SolrParams as a proper URL encoded string, starting with {@code "?"}, if not * empty. */ + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public String toQueryString() { - final Charset charset = StandardCharsets.UTF_8; - final StringBuilder sb = new StringBuilder(128); - boolean first = true; - for (final Iterator it = getParameterNamesIterator(); it.hasNext(); ) { - final String name = it.next(), nameEnc = URLEncoder.encode(name, charset); - for (String val : getParams(name)) { - sb.append(first ? '?' : '&') - .append(nameEnc) - .append('=') - .append(URLEncoder.encode(val, charset)); - first = false; + try { + final String charset = StandardCharsets.UTF_8.name(); + final StringBuilder sb = new StringBuilder(128); + boolean first = true; + for (final Iterator it = getParameterNamesIterator(); it.hasNext(); ) { + final String name = it.next(), nameEnc = URLEncoder.encode(name, charset); + for (String val : getParams(name)) { + sb.append(first ? '?' : '&') + .append(nameEnc) + .append('=') + .append(URLEncoder.encode(val, charset)); + first = false; + } } + return sb.toString(); + } catch (UnsupportedEncodingException e) { + // impossible! + throw new AssertionError(e); } - return sb.toString(); } /** diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java index e2a96b70029f..eb01655b5bc7 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java @@ -27,7 +27,6 @@ import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -78,23 +77,6 @@ public static String getCharsetFromContentType(String contentType) { return null; } - /** - * Resolves a charset name (typically from a Content-Type header) to a {@link Charset}. Unlike - * {@link Charset#forName(String)}, an illegal or unsupported name results in a checked {@link - * UnsupportedEncodingException}, matching the behavior of the legacy {@code String}-based JDK - * charset APIs, so callers can treat a bad charset as an I/O error. - */ - public static Charset charsetForName(String charsetName) throws UnsupportedEncodingException { - try { - return Charset.forName(charsetName); - } catch (IllegalArgumentException e) { - UnsupportedEncodingException uee = - new UnsupportedEncodingException("Unsupported charset: " + charsetName); - uee.initCause(e); - throw uee; - } - } - protected String attemptToDetermineContentType() { String type = null; if (name != null) { @@ -228,11 +210,19 @@ public StringStream(String str) { this(str, detect(str)); } + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public StringStream(String str, String contentType) { this.str = str; this.contentType = contentType; name = null; - size = (long) str.getBytes(StandardCharsets.UTF_8).length; + try { + size = (long) str.getBytes(DEFAULT_CHARSET).length; + } catch (UnsupportedEncodingException e) { + // won't happen + throw new RuntimeException(e); + } sourceInfo = "string"; } @@ -261,17 +251,21 @@ public static String detect(String str) { } @Override + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public InputStream getStream() throws IOException { - return new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8)); + return new ByteArrayInputStream(str.getBytes(DEFAULT_CHARSET)); } /** If a charset is defined (by the contentType) use that, otherwise use a StringReader */ @Override + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public Reader getReader() throws IOException { String charset = getCharsetFromContentType(contentType); - return charset == null - ? new StringReader(str) - : new InputStreamReader(getStream(), charsetForName(charset)); + return charset == null ? new StringReader(str) : new InputStreamReader(getStream(), charset); } } @@ -280,11 +274,14 @@ public Reader getReader() throws IOException { * "utf-8". */ @Override + // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this + // suppression when that PR merges + @SuppressWarnings("JdkObsolete") public Reader getReader() throws IOException { String charset = getCharsetFromContentType(getContentType()); return charset == null - ? new InputStreamReader(getStream(), StandardCharsets.UTF_8) - : new InputStreamReader(getStream(), charsetForName(charset)); + ? new InputStreamReader(getStream(), DEFAULT_CHARSET) + : new InputStreamReader(getStream(), charset); } // ------------------------------------------------------------------ From 796405a20759e6485a883bf55ebe9d404c37719f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Fri, 3 Jul 2026 23:42:47 +0200 Subject: [PATCH 6/8] Change changelog type to "other" --- changelog/unreleased/PR#4604-update-google-errorprone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/changelog/unreleased/PR#4604-update-google-errorprone.yml b/changelog/unreleased/PR#4604-update-google-errorprone.yml index c78a1e897f0b..27c4368717d4 100644 --- a/changelog/unreleased/PR#4604-update-google-errorprone.yml +++ b/changelog/unreleased/PR#4604-update-google-errorprone.yml @@ -1,6 +1,6 @@ # See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc -title: Update com.google.errorprone to 2.50.0 and fix/suppress new bug patterns (ReferenceEquality, JdkObsolete, NotJavadoc, TypeParameterQualifier) -type: dependency_update +title: Update com.google.errorprone to 2.50.0 and suppress new bug patterns (ReferenceEquality, JdkObsolete, NotJavadoc, TypeParameterQualifier) +type: other authors: - name: Jan Høydahl links: From 068a1c921e35c8945c4972b891379af37cb629f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Fri, 3 Jul 2026 23:50:54 +0200 Subject: [PATCH 7/8] Remove obsolete TODO suppressions now that #4605 and #4606 are merged --- .../designer/DefaultSampleDocumentsLoader.java | 7 +------ .../org/apache/solr/handler/loader/XMLLoader.java | 3 --- .../solr/response/TextQueryResponseWriter.java | 3 --- .../apache/solr/spelling/FileBasedSpellChecker.java | 3 --- .../test/org/apache/solr/cloud/ZkShardTermsTest.java | 3 --- .../TestManagedSynonymGraphFilterFactory.java | 3 --- .../org/apache/solr/crossdc/common/ConfUtilTest.java | 9 --------- .../apache/solr/common/cloud/ZkMaintenanceUtils.java | 3 --- .../solr/client/solrj/impl/HttpSolrClient.java | 3 --- .../response/json/JacksonDataBindResponseParser.java | 3 --- .../solrj/response/json/JsonMapResponseParser.java | 4 +--- .../org/apache/solr/common/params/SolrParams.java | 3 --- .../apache/solr/common/util/ContentStreamBase.java | 12 ------------ 13 files changed, 2 insertions(+), 57 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java index 4bff9844c6ae..fa796fc0709c 100644 --- a/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/designer/DefaultSampleDocumentsLoader.java @@ -135,9 +135,6 @@ public SampleDocuments parseDocsFromStream( return new SampleDocuments(docs, contentType, fileSource); } - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") protected List loadCsvDocs( SolrParams params, String source, byte[] streamBytes, String charset, final int maxDocsToLoad) throws IOException { @@ -180,9 +177,7 @@ protected List loadJsonLines( return docs.stream().map(JsonLoader::buildDoc).collect(Collectors.toList()); } - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove the - // JdkObsolete suppression when that PR merges - @SuppressWarnings({"unchecked", "JdkObsolete"}) + @SuppressWarnings("unchecked") protected List loadJsonDocs( ContentStreamBase.ByteArrayStream stream, final int maxDocsToLoad) throws IOException { Object json; diff --git a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java index a195b24b4184..a6490299d5ac 100644 --- a/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java +++ b/solr/core/src/java/org/apache/solr/handler/loader/XMLLoader.java @@ -127,9 +127,6 @@ public void load( } } - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") private InputStream getStream(ContentStream cs, String charset) throws IOException { if (log.isTraceEnabled()) { try (InputStream is = cs.getStream()) { diff --git a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java index 84d10b8357a7..34b464864a27 100644 --- a/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java +++ b/solr/core/src/java/org/apache/solr/response/TextQueryResponseWriter.java @@ -65,9 +65,6 @@ default void write( writer.flush(); } - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") private static Writer buildWriter(OutputStream outputStream, String charset) throws UnsupportedEncodingException { // note: OutputStreamWriter has an internal buffer; flush is needed diff --git a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java index 9182a88a50e8..e3bf30127da1 100644 --- a/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java +++ b/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java @@ -79,9 +79,6 @@ protected IndexReader determineReader(IndexReader reader) { return null; } - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") private void loadExternalFileDictionary(SolrCore core, SolrIndexSearcher searcher) { try { IndexSchema schema = null == searcher ? core.getLatestSchema() : searcher.getSchema(); diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java index 97ce312ed6fc..883af88f3142 100644 --- a/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/ZkShardTermsTest.java @@ -377,9 +377,6 @@ public void testSetHighestTerms() throws Exception { replica3Terms.close(); } - // TODO: comparing boxed values by reference is a genuine bug, fixed in - // https://github.com/apache/solr/pull/4605; remove this suppression when that PR merges - @SuppressWarnings("ReferenceEquality") private void waitFor(T expected, Supplier supplier) throws InterruptedException { TimeOut timeOut = new TimeOut(10, TimeUnit.SECONDS, new TimeSource.CurrentTimeSource()); while (!timeOut.hasTimedOut()) { diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java index 47181123a6c5..dc58da73485f 100644 --- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java +++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymGraphFilterFactory.java @@ -59,9 +59,6 @@ public void after() throws Exception { } @Test - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public void testManagedSynonyms() throws Exception { // this endpoint depends on at least one field type containing the following // declaration in the schema-rest.xml: diff --git a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java index 38f2106f5715..28a98d6d7a1e 100644 --- a/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java +++ b/solr/modules/cross-dc/src/test/org/apache/solr/crossdc/common/ConfUtilTest.java @@ -120,9 +120,6 @@ public void testFillProperties_WithMixedCaseKafkaPrefix() { } @Test - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public void testFillProperties_FromZooKeeper() throws Exception { Map properties = new HashMap<>(); @@ -150,9 +147,6 @@ public void testFillProperties_FromZooKeeper() throws Exception { } @Test - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public void testFillProperties_PriorityOrder() throws Exception { Map properties = new HashMap<>(); @@ -314,9 +308,6 @@ public void testFillProperties_SecurityProperties() throws Exception { } @Test - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public void testFillProperties_ComplexScenario() throws Exception { Map properties = new HashMap<>(); diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java index e4b6f24c19cd..4efb08274130 100644 --- a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java +++ b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java @@ -332,9 +332,6 @@ public static void uploadToZK( rootPath, new SimpleFileVisitor() { @Override - // TODO: `file == rootPath` is a genuine bug (Path compared by reference), fixed in - // https://github.com/apache/solr/pull/4605; remove this suppression when that PR merges - @SuppressWarnings("ReferenceEquality") public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { String filename = file.getFileName().toString(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java index 93e15385b946..fccc4357fcde 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java @@ -268,9 +268,6 @@ protected boolean wantStream(final ResponseParser processor) { * Validates that the content type in the response can be processed by the Response Parser. Throws * a {@code RemoteSolrException} if not. */ - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") private void checkContentType( ResponseParser processor, InputStream is, diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java index 57236af174ab..9e91af8416b6 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JacksonDataBindResponseParser.java @@ -61,9 +61,6 @@ public Set getContentTypes() { * Parse the Json {@code stream} to the expected Java type, then, converts to a {@link NamedList}. */ @Override - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public NamedList processResponse(InputStream stream, String encoding) throws IOException { // TODO generalize to CBOR, Smile, ... var mapper = JacksonContentWriter.DEFAULT_MAPPER; diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java index fe1527361d84..590a4b1e1b41 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/response/json/JsonMapResponseParser.java @@ -40,9 +40,7 @@ public String getWriterType() { } @Override - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove the - // JdkObsolete suppression when that PR merges - @SuppressWarnings({"unchecked", "JdkObsolete"}) + @SuppressWarnings("unchecked") public NamedList processResponse(InputStream body, String encoding) throws IOException { @SuppressWarnings({"rawtypes"}) Map map = null; diff --git a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java index 2e169c1bf99e..e06cc4cd7cb3 100644 --- a/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java +++ b/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java @@ -457,9 +457,6 @@ public NamedList toNamedList() { * Returns this SolrParams as a proper URL encoded string, starting with {@code "?"}, if not * empty. */ - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public String toQueryString() { final Charset charset = StandardCharsets.UTF_8; final StringBuilder sb = new StringBuilder(128); diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java index 071daa6a0074..bd87e049b8a7 100644 --- a/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java +++ b/solr/solrj/src/java/org/apache/solr/common/util/ContentStreamBase.java @@ -209,9 +209,6 @@ public StringStream(String str) { this(str, detect(str)); } - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public StringStream(String str, String contentType) { this.str = str; this.contentType = contentType; @@ -245,18 +242,12 @@ public static String detect(String str) { } @Override - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public InputStream getStream() throws IOException { return new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8)); } /** If a charset is defined (by the contentType) use that, otherwise use a StringReader */ @Override - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public Reader getReader() throws IOException { String charset = getCharsetFromContentType(contentType); return charset == null @@ -270,9 +261,6 @@ public Reader getReader() throws IOException { * "utf-8". */ @Override - // TODO: charset APIs modernized in https://github.com/apache/solr/pull/4606; remove this - // suppression when that PR merges - @SuppressWarnings("JdkObsolete") public Reader getReader() throws IOException { String charset = getCharsetFromContentType(getContentType()); return charset == null From 204b13fd72ee6e55d6130b2ad2b3ab94052a97c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20H=C3=B8ydahl?= Date: Sat, 4 Jul 2026 00:20:05 +0200 Subject: [PATCH 8/8] Lockfiles after merge main --- solr/api/gradle.lockfile | 11 +++++------ solr/benchmark/gradle.lockfile | 11 +++++------ solr/core/gradle.lockfile | 11 +++++------ solr/cross-dc-manager/gradle.lockfile | 11 +++++------ solr/modules/analysis-extras/gradle.lockfile | 11 +++++------ solr/modules/clustering/gradle.lockfile | 11 +++++------ solr/modules/cross-dc/gradle.lockfile | 11 +++++------ solr/modules/cuvs/gradle.lockfile | 11 +++++------ solr/modules/extraction/gradle.lockfile | 11 +++++------ solr/modules/gcs-repository/gradle.lockfile | 11 +++++------ solr/modules/jwt-auth/gradle.lockfile | 11 +++++------ solr/modules/langid/gradle.lockfile | 11 +++++------ solr/modules/language-models/gradle.lockfile | 11 +++++------ solr/modules/ltr/gradle.lockfile | 11 +++++------ solr/modules/opentelemetry/gradle.lockfile | 11 +++++------ solr/modules/s3-repository/gradle.lockfile | 11 +++++------ solr/modules/scripting/gradle.lockfile | 11 +++++------ solr/modules/sql/gradle.lockfile | 11 +++++------ solr/server/gradle.lockfile | 11 +++++------ solr/solr-ref-guide/gradle.lockfile | 11 +++++------ solr/solrj-jetty/gradle.lockfile | 11 +++++------ solr/solrj-streaming/gradle.lockfile | 11 +++++------ solr/solrj-zookeeper/gradle.lockfile | 11 +++++------ solr/solrj/gradle.lockfile | 11 +++++------ solr/test-framework/gradle.lockfile | 11 +++++------ solr/webapp/gradle.lockfile | 11 +++++------ 26 files changed, 130 insertions(+), 156 deletions(-) diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile index 1cc3f448d9b5..b36811a79eef 100644 --- a/solr/api/gradle.lockfile +++ b/solr/api/gradle.lockfile @@ -21,12 +21,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=jarValidation,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/benchmark/gradle.lockfile b/solr/benchmark/gradle.lockfile index 070a606d39bc..215931aa5aa1 100644 --- a/solr/benchmark/gradle.lockfile +++ b/solr/benchmark/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/core/gradle.lockfile b/solr/core/gradle.lockfile index 1562fcbdc472..8ed2e6d7a888 100644 --- a/solr/core/gradle.lockfile +++ b/solr/core/gradle.lockfile @@ -20,12 +20,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,compileClasspat com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index 829aa69a750e..8dac15d39e94 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -25,12 +25,11 @@ com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,error com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.gson:gson:2.14.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile index 63202b0698ab..d021c29cbc33 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile index b63437fa85cd..7c918f3b5b81 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/cross-dc/gradle.lockfile b/solr/modules/cross-dc/gradle.lockfile index c6d796ef1929..e3d4a2df55eb 100644 --- a/solr/modules/cross-dc/gradle.lockfile +++ b/solr/modules/cross-dc/gradle.lockfile @@ -19,12 +19,11 @@ com.github.luben:zstd-jni:1.5.6-4=jarValidation,runtimeClasspath,runtimeLibs,tes com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/cuvs/gradle.lockfile b/solr/modules/cuvs/gradle.lockfile index 34348e92f07b..4b38d844d271 100644 --- a/solr/modules/cuvs/gradle.lockfile +++ b/solr/modules/cuvs/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile index 01bc856b3b10..4e82cacd1eba 100644 --- a/solr/modules/extraction/gradle.lockfile +++ b/solr/modules/extraction/gradle.lockfile @@ -20,12 +20,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile index 0c315061638a..d78035d4a77b 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -40,12 +40,11 @@ com.google.cloud:google-cloud-core:2.71.0=compileClasspath,jarValidation,runtime com.google.cloud:google-cloud-nio:0.133.0=jarValidation,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.69.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath com.google.code.gson:gson:2.14.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.48.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/jwt-auth/gradle.lockfile b/solr/modules/jwt-auth/gradle.lockfile index 84a22cf5fd34..7c14e19f88cc 100644 --- a/solr/modules/jwt-auth/gradle.lockfile +++ b/solr/modules/jwt-auth/gradle.lockfile @@ -19,12 +19,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=jarValidation,testCompileClasspa com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile index 2502ddfff7ac..c187f32cc25d 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/language-models/gradle.lockfile b/solr/modules/language-models/gradle.lockfile index 38034aa07eb4..c4052b3c5e09 100644 --- a/solr/modules/language-models/gradle.lockfile +++ b/solr/modules/language-models/gradle.lockfile @@ -18,12 +18,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,jarValidation com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile index 61fb4d30a835..3d7bbb269e27 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index 02eab7c04c66..561d08c34c54 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -20,12 +20,11 @@ com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,error com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.gson:gson:2.14.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index 0ada32f8497f..e13e33f220fb 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/gradle.lockfile @@ -28,12 +28,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile index d9082b39a6e8..63457d56810a 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile index 33bace48ff61..144c3f1a14e5 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/server/gradle.lockfile b/solr/server/gradle.lockfile index 91f9319929af..eb5d553837bf 100644 --- a/solr/server/gradle.lockfile +++ b/solr/server/gradle.lockfile @@ -16,12 +16,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=jarValidation,runtimeClasspath,solrCore -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,runtimeClasspath,solrCore,testAnnotationProcessor diff --git a/solr/solr-ref-guide/gradle.lockfile b/solr/solr-ref-guide/gradle.lockfile index 8390c0489471..d97255aa6bc2 100644 --- a/solr/solr-ref-guide/gradle.lockfile +++ b/solr/solr-ref-guide/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj-jetty/gradle.lockfile b/solr/solrj-jetty/gradle.lockfile index ee98b0ed66b0..8700b29b8477 100644 --- a/solr/solrj-jetty/gradle.lockfile +++ b/solr/solrj-jetty/gradle.lockfile @@ -18,12 +18,11 @@ com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,jarValidation com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=jarValidation,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj-streaming/gradle.lockfile b/solr/solrj-streaming/gradle.lockfile index 90e6aabecd3f..a5a3f43a64f2 100644 --- a/solr/solrj-streaming/gradle.lockfile +++ b/solr/solrj-streaming/gradle.lockfile @@ -17,12 +17,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=jarValidation,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/solrj-zookeeper/gradle.lockfile b/solr/solrj-zookeeper/gradle.lockfile index a2cfa3717501..64c59c5875b5 100644 --- a/solr/solrj-zookeeper/gradle.lockfile +++ b/solr/solrj-zookeeper/gradle.lockfile @@ -18,12 +18,11 @@ com.github.spotbugs:spotbugs-annotations:4.10.2=compileClasspath com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index 8fd70e35ffe7..d55d226ecf2e 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -19,14 +19,13 @@ com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,error com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor com.google.code.findbugs:jsr305:3.0.2=spotless865458226 -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.18.0=spotless865458226 -com.google.errorprone:error_prone_annotations:2.47.0=jarValidation,testCompileClasspath,testRuntimeClasspath -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.googlejavaformat:google-java-format:1.18.1=spotless865458226 -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.1=spotless865458226 com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava-parent:32.1.1-jre=spotless865458226 diff --git a/solr/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile index 79fc06523465..88b5af1a3f65 100644 --- a/solr/test-framework/gradle.lockfile +++ b/solr/test-framework/gradle.lockfile @@ -19,12 +19,11 @@ com.github.spotbugs:spotbugs-annotations:4.10.2=compileClasspath com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=compileClasspath,compileClasspathCopy,jarValidation,runtimeClasspath,runtimeClasspathCopy,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:guava:33.6.0-jre=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,compileClasspathCopy,errorprone,jarValidation,runtimeClasspath,runtimeClasspathCopy,testAnnotationProcessor,testCompileClasspath,testCompileClasspathCopy,testRuntimeClasspath,testRuntimeClasspathCopy diff --git a/solr/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index 5a024c3cdc60..6170e4fa571f 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/gradle.lockfile @@ -16,12 +16,11 @@ com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_annotations:2.47.0=solrCore -com.google.errorprone:error_prone_annotations:2.49.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor -com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,solrCore,testAnnotationProcessor +com.google.errorprone:error_prone_check_api:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.35.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,solrCore,testAnnotationProcessor com.google.guava:guava:33.6.0-jre=annotationProcessor,errorprone,solrCore,testAnnotationProcessor com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,solrCore,testAnnotationProcessor