From a342c876a0cc4384d2df78839f5202e1c201b677 Mon Sep 17 00:00:00 2001 From: SolrBot Date: Wed, 2 Sep 2026 23:14:59 +0000 Subject: [PATCH 1/5] Update Error Prone to v2.50.0 --- gradle/libs.versions.toml | 2 +- solr/api/gradle.lockfile | 8 ++++---- solr/benchmark/gradle.lockfile | 8 ++++---- solr/core/gradle.lockfile | 8 ++++---- solr/cross-dc-manager/gradle.lockfile | 8 ++++---- solr/modules/analysis-extras/gradle.lockfile | 8 ++++---- solr/modules/clustering/gradle.lockfile | 8 ++++---- solr/modules/cross-dc/gradle.lockfile | 8 ++++---- solr/modules/cuvs/gradle.lockfile | 8 ++++---- solr/modules/extraction/gradle.lockfile | 8 ++++---- solr/modules/gcs-repository/gradle.lockfile | 8 ++++---- solr/modules/jwt-auth/gradle.lockfile | 8 ++++---- solr/modules/langid/gradle.lockfile | 8 ++++---- solr/modules/language-models/gradle.lockfile | 8 ++++---- solr/modules/ltr/gradle.lockfile | 8 ++++---- solr/modules/opentelemetry/gradle.lockfile | 8 ++++---- solr/modules/s3-repository/gradle.lockfile | 8 ++++---- solr/modules/scripting/gradle.lockfile | 8 ++++---- solr/modules/sql/gradle.lockfile | 8 ++++---- solr/server/gradle.lockfile | 8 ++++---- solr/solr-ref-guide/gradle.lockfile | 8 ++++---- solr/solrj-jetty/gradle.lockfile | 8 ++++---- solr/solrj-streaming/gradle.lockfile | 8 ++++---- solr/solrj-zookeeper/gradle.lockfile | 8 ++++---- solr/solrj/gradle.lockfile | 8 ++++---- solr/test-framework/gradle.lockfile | 8 ++++---- solr/webapp/gradle.lockfile | 8 ++++---- 27 files changed, 105 insertions(+), 105 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 27f3856e3ff..6b942e22e5a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -99,7 +99,7 @@ google-api-grpc-proto = "2.75.0" # @keep for version alignment google-autovalue = "1.11.1" google-cloud-bom = "0.268.0" -google-errorprone = "2.41.0" +google-errorprone = "2.50.0" # @keep for version alignment google-gson = "2.14.0" google-guava = "33.7.1-jre" diff --git a/solr/api/gradle.lockfile b/solr/api/gradle.lockfile index 12addaf6b82..21e4ad6f572 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_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.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_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.7.1-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 6efbf09d61f..7d537ba705b 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_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.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_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.7.1-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 1ba057e6010..ae79bf6cb4c 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,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_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,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_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,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.7.1-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index 79e18051748..e7f4ddaafe5 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -23,11 +23,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_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.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_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.7.1-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 235a8594be7..5d2073519d0 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_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.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_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.7.1-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 6805293d44a..1f48c17dc79 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_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.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_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.7.1-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 c66f4b097fa..adc7fc8b678 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-10=jarValidation,runtimeClasspath,runtimeLibs,te 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_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.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_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.7.1-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 e62d4f23979..9918580000a 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_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.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_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.7.1-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 40fd886cdca..be3c21c0149 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_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.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_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.7.1-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 ee670fe7324..049b7d689b4 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -40,11 +40,11 @@ com.google.cloud:google-cloud-core:2.74.0=compileClasspath,jarValidation,runtime com.google.cloud:google-cloud-nio:0.136.0=jarValidation,testCompileClasspath,testRuntimeClasspath com.google.cloud:google-cloud-storage:2.72.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_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.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_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.7.1-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 acdb4e22107..4b2df65c7d9 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_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.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_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.7.1-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 cb10126f629..f0fe7652bc3 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_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.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_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.7.1-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 b710cb47830..30cff458954 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_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.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_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.7.1-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 69ec5ff7600..ebcb462a4b1 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_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.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_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.7.1-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 391274fdbfa..2b4ee796954 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/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_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.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_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.7.1-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 4ad00b42c80..bfe9e95610b 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/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_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.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_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.7.1-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 22ad3c839cf..ec10baf4e8f 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_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.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_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.7.1-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 55b71dbbeee..82673614124 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_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.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_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.7.1-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 b76e86b7a89..4086feee710 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_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.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_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.7.1-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 c07281d16cd..110c44f1131 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_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.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_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.7.1-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 ab7a4556e4a..f73618cdef5 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_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.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_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.7.1-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 9a3c0a9cba3..9c8038cd0e7 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_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.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_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.7.1-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 3aa75d271f8..6bc5794cca5 100644 --- a/solr/solrj-zookeeper/gradle.lockfile +++ b/solr/solrj-zookeeper/gradle.lockfile @@ -18,11 +18,11 @@ com.github.spotbugs:spotbugs-annotations:4.10.4=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_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.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_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.7.1-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/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index ef914c21dd0..075cdca0ea1 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/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_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.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_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.7.1-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/test-framework/gradle.lockfile b/solr/test-framework/gradle.lockfile index fe7a9b5ac07..309368d720e 100644 --- a/solr/test-framework/gradle.lockfile +++ b/solr/test-framework/gradle.lockfile @@ -19,11 +19,11 @@ com.github.spotbugs:spotbugs-annotations:4.10.4=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_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.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_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.7.1-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/webapp/gradle.lockfile b/solr/webapp/gradle.lockfile index ca453a10dda..d0833bbe87a 100644 --- a/solr/webapp/gradle.lockfile +++ b/solr/webapp/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_annotation:2.50.0=annotationProcessor,errorprone,testAnnotationProcessor com.google.errorprone:error_prone_annotations:2.50.0=annotationProcessor,errorprone,jarValidation,solrCore,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_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,solrCore,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:guava:33.7.1-jre=annotationProcessor,errorprone,jarValidation,solrCore,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,solrCore,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath From 930634c119ad0ae57d5016989f45a94a0661fb68 Mon Sep 17 00:00:00 2001 From: SolrBot Date: Wed, 2 Sep 2026 23:15:41 +0000 Subject: [PATCH 2/5] Add changelog entry for PR#4847 --- .../unreleased/PR#4847-update-error-prone-to-v2-50-0.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 changelog/unreleased/PR#4847-update-error-prone-to-v2-50-0.yml diff --git a/changelog/unreleased/PR#4847-update-error-prone-to-v2-50-0.yml b/changelog/unreleased/PR#4847-update-error-prone-to-v2-50-0.yml new file mode 100644 index 00000000000..0b5f3ad02de --- /dev/null +++ b/changelog/unreleased/PR#4847-update-error-prone-to-v2-50-0.yml @@ -0,0 +1,7 @@ +title: Update Error Prone to v2.50.0 +type: dependency_update +authors: +- name: solrbot +links: +- name: PR#4847 + url: https://github.com/apache/solr/pull/4847 From ecec2bd6e9f866b9361973102685b15905eae5c5 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Thu, 3 Sep 2026 10:22:02 -0400 Subject: [PATCH 3/5] Skip our noggit code, it's not "really" ours... --- gradle/validation/error-prone.gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle index 3ca5341ef0f..676168f6257 100644 --- a/gradle/validation/error-prone.gradle +++ b/gradle/validation/error-prone.gradle @@ -589,11 +589,12 @@ allprojects {prj -> } } -// Exclude generated OpenAPI sources in solrj from Error Prone checks. +// Exclude generated OpenAPI sources and the vendored noggit JSON parser (org.noggit, not our +// code/conventions) in solrj from Error Prone checks. configure(project(":solr:solrj")) { plugins.withId(libs.plugins.ltgt.errorprone.get().pluginId) { tasks.withType(JavaCompile) { - options.errorprone.excludedPaths = ".*/build/generated/.*" + options.errorprone.excludedPaths = ".*/build/generated/.*|.*/org/noggit/.*" } } } From 0743dd4ecd651638dbcc52a1b8e7aba4e2a754a2 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Thu, 3 Sep 2026 13:13:12 -0400 Subject: [PATCH 4/5] Fix Error Prone 2.50.0 findings: NotJavadoc, TypeParameterQualifier, dead code Error Prone 2.50.0 (PR #4847) flags several categories of real issues across the codebase, fixed here (ReferenceEquality suppressions are handled separately in the next commit): - NotJavadoc: /** */ comments attached to methods inside local/anonymous classes, or stacked duplicate /** */ blocks, converted to regular comments or merged as appropriate. - TypeParameterQualifier: T::toString replaced with Object::toString in RequestReplicaListTransformerGenerator, since a generic type parameter used as an unbound method reference qualifier is erased to Object anyway. - A latent bug in CommandOperation.getStr(String, String) where the ROOT_OBJ branch returned null instead of the default value when the underlying object was null, inconsistent with the sibling branch and the single-arg overload. - Excluded vendored Tika sources and noggit from Error Prone checks, matching existing precedent for other vendored/generated code. Co-Authored-By: Claude Sonnet 5 --- gradle/validation/error-prone.gradle | 10 ++++++++++ solr/core/src/java/org/apache/solr/cloud/Overseer.java | 3 --- .../org/apache/solr/handler/ReplicationHandler.java | 2 +- .../org/apache/solr/handler/component/StatsField.java | 4 ++-- .../java/org/apache/solr/schema/CurrencyFieldType.java | 2 +- .../core/src/java/org/apache/solr/search/DocSlice.java | 2 +- .../org/apache/solr/search/IntervalsQParserPlugin.java | 8 ++++---- .../java/org/apache/solr/search/SortedIntDocSet.java | 2 +- .../src/java/org/apache/solr/search/TopDocsSlice.java | 2 +- .../solr/search/function/DualDoubleFunction.java | 5 ++--- .../src/test/org/apache/solr/TestGroupingSearch.java | 2 ++ .../solr/cloud/LeaderElectionIntegrationTest.java | 1 + .../apache/solr/handler/TestStressThreadBackup.java | 4 ++-- .../org/apache/solr/search/facet/TestJsonFacets.java | 1 + ...nNLPExtractNamedEntitiesUpdateProcessorFactory.java | 2 +- .../java/org/apache/solr/ltr/feature/SolrFeature.java | 2 ++ .../org/apache/solr/handler/sql/SolrAggregate.java | 1 + .../java/org/apache/solr/handler/sql/SolrProject.java | 1 + .../src/java/org/apache/solr/handler/sql/SolrSort.java | 1 + .../org/apache/solr/handler/sql/SolrTableScan.java | 1 + .../client/solrj/request/CollectionAdminRequest.java | 2 +- .../RequestReplicaListTransformerGenerator.java | 2 +- .../src/java/org/apache/solr/common/SolrDocument.java | 4 ++-- .../org/apache/solr/common/util/CommandOperation.java | 2 +- .../src/java/org/apache/solr/SolrTestCaseJ4.java | 10 ++++------ .../src/java/org/apache/solr/util/SSLTestConfig.java | 6 +++--- 26 files changed, 48 insertions(+), 34 deletions(-) diff --git a/gradle/validation/error-prone.gradle b/gradle/validation/error-prone.gradle index 676168f6257..6d105ea8ba1 100644 --- a/gradle/validation/error-prone.gradle +++ b/gradle/validation/error-prone.gradle @@ -607,3 +607,13 @@ configure(project(":solr:core")) { } } } + +// Exclude vendored Tika sources (copied in to eliminate the Tika dependency) in +// solr:modules:extraction from Error Prone checks. +configure(project(":solr:modules:extraction")) { + plugins.withId(libs.plugins.ltgt.errorprone.get().pluginId) { + tasks.withType(JavaCompile) { + options.errorprone.excludedPaths = ".*/org/apache/solr/handler/extraction/fromtika/.*" + } + } +} 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 cc8e65537c5..9d35afb7161 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,6 @@ public synchronized void start(String id) { assert ObjectReleaseTracker.track(this); } - /** Start {@link ClusterSingleton} plugins when we become the leader. */ - - /** Stop {@link ClusterSingleton} plugins when we lose leadership. */ public Stats getStats() { return stats; } 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 7e429de374e..1aecd6e7c3e 100644 --- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java @@ -1493,7 +1493,7 @@ 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 */ 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 2d01cb4baee..89e2e27d430 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 percentiles */ @Override boolean parseParams(StatsField sf) { try { 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 375d3804db1..bce3ecf0638 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/search/DocSlice.java b/solr/core/src/java/org/apache/solr/search/DocSlice.java index f0c63a1b269..3773d4d2f95 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/IntervalsQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/IntervalsQParserPlugin.java index 02d696d87b3..ba794d570e1 100644 --- a/solr/core/src/java/org/apache/solr/search/IntervalsQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/IntervalsQParserPlugin.java @@ -455,7 +455,7 @@ private IntervalsSource applyFilter( }; } - /** + /* * Resolves the field referenced by an optional {@code use_field} rule parameter, falling back * to the query's default field when absent. Throws BAD_REQUEST if {@code useField} names a * field that doesn't exist in the schema. @@ -473,9 +473,9 @@ private Analyzer resolveAnalyzer( return resolveFieldType(analyzerName, ruleName).getQueryAnalyzer(); } - /** - * Resolves the analyzer to use for normalizing prefix/wildcard/fuzzy term text. Unlike {@link - * #resolveAnalyzer}, this uses the field type's multi-term analyzer rather than its regular + /* + * Resolves the analyzer to use for normalizing prefix/wildcard/fuzzy term text. Unlike + * resolveAnalyzer, this uses the field type's multi-term analyzer rather than its regular * query analyzer, since the term text here is a single already-tokenized value, not free text * to be tokenized. */ 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 1880d290bef..7bcbf13ae66 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/TopDocsSlice.java b/solr/core/src/java/org/apache/solr/search/TopDocsSlice.java index daf37a20cf5..97be34fbe1c 100644 --- a/solr/core/src/java/org/apache/solr/search/TopDocsSlice.java +++ b/solr/core/src/java/org/apache/solr/search/TopDocsSlice.java @@ -102,7 +102,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/function/DualDoubleFunction.java b/solr/core/src/java/org/apache/solr/search/function/DualDoubleFunction.java index 1d2371dbd33..94d87d97891 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,9 +64,8 @@ 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 + /* + * True if and only if all of the wrapped FunctionValues exists for the specified doc */ @Override public boolean exists(int doc) throws IOException { diff --git a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java index 4ae2b55becb..d55d4ba8756 100644 --- a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java +++ b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java @@ -1725,6 +1725,8 @@ public void testRandomGrouping() throws Exception { // now sort the groups // if sort != group.sort, we need to find the max doc by "sort" + // Identity check: groupComparator may deliberately be set to the same instance as + // sortComparator above. if (groupComparator != sortComparator) { for (Grp grp : groups.values()) grp.setMaxDoc(sortComparator); } 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 2e190f60f89..a0f1984931d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java @@ -126,6 +126,7 @@ public void testSimpleSliceLeaderElection() throws Exception { // kill everyone but the first leader that should have reconnected by now for (JettySolrRunner jetty2 : cluster.getJettySolrRunners()) { + // Identity check: skip the one instance we want to keep running. if (jetty != jetty2) { jetty2.stop(); } 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 70db545fced..4bf2f4aac7a 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,7 +137,7 @@ private SolrRequest makeReplicationReq(SolrParams p) { .setRequiresCollection(true); } - /** + /* * Override default backup impl to hit ReplicationHandler, and then poll that same handler * until success */ 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 a061d6ea7b2..ceb086fae81 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 @@ -3799,6 +3799,7 @@ public void doTestPrelimSorting( // (which will affect some assertions) final SolrClient shardA = clients.get(0); final SolrClient shardB = clients.get(clients.size() - 1); + // Identity check: same client instance means a single-node setup. final int numShardsWithData = (shardA == shardB) ? 1 : 2; // for simplicity, each foo_s "term" exists on each shard in the same number of docs as it's 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 6c2b57b12a9..19f84b0b472 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,7 +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 */ private List> extractTypedNamedEntities(Object srcFieldValue) 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 37362c80642..e199fa95e60 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 @@ -189,6 +189,8 @@ public SolrFeatureWeight( } DocSet filtersDocSet = searcher.getDocSet(filterQueries); // execute + // getDocSet() returns the live docs instance itself when there's nothing to filter; + // identity comparison detects that no-op case. if (filtersDocSet != searcher.getLiveDocSet()) { filterDocSetQuery = filtersDocSet.makeQuery(); } 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 1e3c2f7e226..c2720c82a9e 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 @@ -64,6 +64,7 @@ static String solrAggMetricId(String metric, String column) { List groupSets, List aggCalls) { super(cluster, traitSet, hints, child, groupSet, groupSets, aggCalls); + // Conventions are singletons (see SolrRel.CONVENTION); identity comparison is intentional. assert getConvention() == SolrRel.CONVENTION; assert getConvention() == child.getConvention(); } 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 87ac4633b8a..a731cd1997f 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 @@ -37,6 +37,7 @@ class SolrProject extends Project implements SolrRel { List projects, RelDataType rowType) { super(cluster, traitSet, input, projects, rowType); + // Conventions are singletons (see SolrRel.CONVENTION); identity comparison is intentional. assert getConvention() == SolrRel.CONVENTION; assert getConvention() == input.getConvention(); } 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 f5fb75d9d48..de924f8d9e5 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 @@ -42,6 +42,7 @@ class SolrSort extends Sort implements SolrRel { RexNode fetch) { super(cluster, traitSet, child, collation, offset, fetch); + // Conventions are singletons (see SolrRel.CONVENTION); identity comparison is intentional. assert getConvention() == SolrRel.CONVENTION; assert getConvention() == child.getConvention(); } 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 f2ae04e33fb..d7481e055d0 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 @@ -55,6 +55,7 @@ class SolrTableScan extends TableScan implements SolrRel { this.projectRowType = projectRowType; assert solrTable != null; + // Conventions are singletons (see SolrRel.CONVENTION); identity comparison is intentional. assert getConvention() == SolrRel.CONVENTION; } 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 ac7af67427c..acc54f5859a 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 @@ -357,7 +357,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/routing/RequestReplicaListTransformerGenerator.java b/solr/solrj/src/java/org/apache/solr/client/solrj/routing/RequestReplicaListTransformerGenerator.java index 4071dd7527f..d3bfaf7eee6 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 e363352fe6a..ed071a416ff 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/util/CommandOperation.java b/solr/solrj/src/java/org/apache/solr/common/util/CommandOperation.java index 39dac664d18..91e4da4a2bc 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 @@ -48,7 +48,7 @@ public Object getCommandData() { public String getStr(String key, String def) { if (ROOT_OBJ.equals(key)) { Object obj = getRootPrimitive(); - return obj == def ? null : String.valueOf(obj); + return obj == null ? def : String.valueOf(obj); } Object o = getMapVal(key); return o == null ? def : String.valueOf(o); 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 295f595bf1c..8bd9e8c5a62 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -2253,8 +2253,9 @@ public static void copyMinConf(Path dstRoot, String propertiesContent, String so // Creates a consistent configuration, _including_ solr.xml at dstRoot. Creates collection1/conf // and copies the stock files in there. - /** Copies the test collection1 config into {@code dstRoot}/{@code collection}/conf */ /** + * Copies the test collection1 config into {@code dstRoot}/{@code collection}/conf + * * @deprecated Use a basic config plus whatever is needed, or the default config, instead of * copying the full collection1 test config. */ @@ -2530,8 +2531,6 @@ private void randomizeCloudSolrClient() { * directly * * @param url the base URL for a Solr node. Should not contain a core or collection name. - */ - /** * @deprecated Prefer an existing client, e.g. from a {@link * org.apache.solr.util.SolrClientTestRule} or {@link * org.apache.solr.embedded.JettySolrRunner#getSolrClient()}. @@ -2541,8 +2540,9 @@ public static HttpJettySolrClient getHttpSolrClient(String url) { return new HttpJettySolrClient.Builder(url).build(); } - /** Create a basic HttpSolrClient pointed at the specified replica */ /** + * Create a basic HttpSolrClient pointed at the specified replica + * * @deprecated Prefer an existing client, e.g. from a {@link * org.apache.solr.util.SolrClientTestRule} or {@link * org.apache.solr.embedded.JettySolrRunner#getSolrClient()}. @@ -2560,8 +2560,6 @@ public static HttpJettySolrClient getHttpSolrClient(Replica replica) { * @param url the base URL of a Solr node. Should not include a collection or core name. * @param defaultCoreName the name of a core that the created client should default to when making * core-aware requests - */ - /** * @deprecated Prefer an existing client, e.g. from a {@link * org.apache.solr.util.SolrClientTestRule} or {@link * org.apache.solr.embedded.JettySolrRunner#getSolrClient()}. 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 9a62ecb2afb..034b7e38e06 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 */ From 3c713f109fde8b367f2ed4150ae66497cb9ebaed Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Thu, 3 Sep 2026 13:13:27 -0400 Subject: [PATCH 5/5] Suppress Error Prone ReferenceEquality findings across the codebase Error Prone 2.50.0's ReferenceEquality check is a purely syntactic heuristic: it flags any == / != between two objects of a type that overrides equals(), regardless of whether the comparison is actually a deliberate identity check. It cannot distinguish that from a genuine missed-.equals() bug. Every occurrence suppressed here was individually reviewed and is a legitimate identity comparison: sentinel objects, "same instance means no-op" idioms, singleton comparisons (e.g. Calcite Convention, an IdentityNormalizer instance), heavyweight resource identity (SolrCore, Thread, JettySolrRunner), or identity semantics already documented via System.identityHashCode() in the corresponding hashCode(). Each suppression is scoped to the smallest enclosing method or constructor and, where the reasoning wasn't already evident from context, annotated with a short comment explaining why identity (not value) equality is correct there. This is broken out as its own commit since the sheer number of suppressions may warrant a different overall approach (e.g. a targeted excludedPaths/allowlist) rather than suppressing case-by-case. Co-Authored-By: Claude Sonnet 5 --- .../src/java/org/apache/solr/cli/ExportTool.java | 2 ++ .../solr/cloud/DistributedClusterStateUpdater.java | 4 ++++ .../src/java/org/apache/solr/cloud/LockTree.java | 2 ++ .../org/apache/solr/cloud/ReplicateFromLeader.java | 3 +++ .../cloud/api/collections/CategoryRoutedAlias.java | 2 ++ .../api/collections/DimensionalRoutedAlias.java | 2 ++ .../solr/cloud/api/collections/TimeRoutedAlias.java | 2 ++ .../apache/solr/cloud/overseer/ZkStateWriter.java | 6 ++++++ .../apache/solr/cloud/overseer/ZkWriteCommand.java | 2 ++ .../apache/solr/core/CachingDirectoryFactory.java | 4 ++++ .../src/java/org/apache/solr/core/CoreContainer.java | 1 + .../src/java/org/apache/solr/core/PluginBag.java | 5 ++++- .../core/src/java/org/apache/solr/core/SolrCore.java | 6 ++++++ .../src/java/org/apache/solr/core/SolrPaths.java | 2 ++ .../org/apache/solr/core/SolrResourceLoader.java | 9 +++++++++ .../org/apache/solr/handler/ReplicationHandler.java | 4 ++++ .../apache/solr/handler/admin/CoreAdminHandler.java | 2 ++ .../solr/handler/admin/IndexSizeEstimator.java | 2 ++ .../solr/handler/admin/SecurityConfHandler.java | 4 ++++ .../solr/handler/admin/SystemInfoProvider.java | 2 ++ .../solr/handler/component/RealTimeGetComponent.java | 4 ++++ .../solr/handler/component/ResponseBuilder.java | 2 ++ .../apache/solr/handler/component/SearchHandler.java | 3 +++ .../solr/handler/component/TermsComponent.java | 2 ++ .../apache/solr/handler/loader/JavabinLoader.java | 2 ++ .../java/org/apache/solr/handler/tagger/TagLL.java | 4 ++++ .../java/org/apache/solr/legacy/BBoxStrategy.java | 3 +++ .../java/org/apache/solr/logging/jul/JulWatcher.java | 3 +++ .../apache/solr/logging/log4j2/Log4j2Watcher.java | 2 ++ .../DualRegistryAttributedLongCounter.java | 2 ++ .../instruments/DualRegistryAttributedLongTimer.java | 2 ++ .../DualRegistryAttributedLongUpDownCounter.java | 2 ++ .../java/org/apache/solr/pkg/PackageListeners.java | 2 ++ .../org/apache/solr/pkg/PackagePluginHolder.java | 2 ++ .../org/apache/solr/response/TextResponseWriter.java | 1 + .../transform/RawValueTransformerFactory.java | 2 ++ .../response/transform/ValueSourceAugmenter.java | 2 ++ .../src/java/org/apache/solr/schema/BBoxField.java | 1 + .../src/java/org/apache/solr/schema/IndexSchema.java | 1 + .../apache/solr/schema/LatLonPointSpatialField.java | 3 +++ .../java/org/apache/solr/schema/SchemaManager.java | 2 ++ .../java/org/apache/solr/search/CaffeineCache.java | 1 + .../apache/solr/search/CollapsingQParserPlugin.java | 12 ++++++++++-- .../apache/solr/search/DocValuesIteratorCache.java | 1 + .../apache/solr/search/ExtendedDismaxQParser.java | 1 + .../apache/solr/search/GraphTermsQParserPlugin.java | 5 +++++ .../src/java/org/apache/solr/search/JoinQuery.java | 3 +++ .../java/org/apache/solr/search/QueryResultKey.java | 1 + .../org/apache/solr/search/SolrIndexSearcher.java | 2 ++ .../solr/search/facet/FacetFieldProcessor.java | 3 +++ .../org/apache/solr/search/facet/RelatednessAgg.java | 2 ++ .../java/org/apache/solr/search/facet/SlotAcc.java | 3 +++ .../apache/solr/search/facet/UnInvertedField.java | 2 ++ .../apache/solr/security/AllowListUrlChecker.java | 2 ++ .../solr/security/PKIAuthenticationPlugin.java | 2 ++ .../java/org/apache/solr/servlet/HttpSolrCall.java | 2 ++ .../org/apache/solr/servlet/RequestRateLimiter.java | 4 ++++ .../org/apache/solr/servlet/SolrRequestParsers.java | 6 +++++- .../solr/spelling/ConjunctionSolrSpellChecker.java | 1 + .../org/apache/solr/update/DirectUpdateHandler2.java | 1 + .../java/org/apache/solr/update/MemOutputStream.java | 3 +++ .../src/java/org/apache/solr/update/PeerSync.java | 6 ++++++ .../org/apache/solr/update/PeerSyncWithLeader.java | 9 +++++++++ .../java/org/apache/solr/update/SolrIndexConfig.java | 3 +++ .../src/java/org/apache/solr/update/UpdateLog.java | 9 ++++++++- .../AllValuesOrNoneFieldMutatingUpdateProcessor.java | 3 +++ .../update/processor/AtomicUpdateDocumentMerger.java | 3 +++ .../DocBasedVersionConstraintsProcessor.java | 2 ++ .../processor/FieldMutatingUpdateProcessor.java | 3 +++ .../processor/FieldValueMutatingUpdateProcessor.java | 3 +++ .../SkipExistingDocumentsProcessorFactory.java | 2 ++ .../src/test/org/apache/solr/TestGroupingSearch.java | 1 + .../solr/cloud/LeaderElectionIntegrationTest.java | 1 + .../apache/solr/handler/admin/TestApiFramework.java | 2 ++ .../src/test/org/apache/solr/pkg/TestPackages.java | 1 + .../solr/schema/TestManagedSchemaThreadSafety.java | 2 ++ .../org/apache/solr/search/facet/TestJsonFacets.java | 1 + .../solr/search/function/AggValueSourceTest.java | 2 ++ .../solr/uninverting/TestFieldCacheSortRandom.java | 2 ++ .../solr/update/TestInPlaceUpdatesStandalone.java | 2 +- .../org/apache/solr/ltr/feature/SolrFeature.java | 1 + .../org/apache/solr/ltr/model/LTRScoringModel.java | 2 ++ .../org/apache/solr/handler/sql/SolrAggregate.java | 1 + .../java/org/apache/solr/handler/sql/SolrFilter.java | 2 ++ .../org/apache/solr/handler/sql/SolrProject.java | 1 + .../java/org/apache/solr/handler/sql/SolrSort.java | 1 + .../org/apache/solr/handler/sql/SolrTableScan.java | 1 + .../solr/client/solrj/io/comp/FieldComparator.java | 2 +- .../solr/client/solrj/io/eq/FieldEqualitor.java | 2 +- .../solrj/io/stream/JavabinTupleStreamParser.java | 7 ++++++- .../org/apache/solr/common/cloud/ZkStateReader.java | 4 ++++ .../solrj/impl/ConcurrentUpdateBaseSolrClient.java | 2 ++ .../solrj/request/JavaBinUpdateRequestCodec.java | 2 ++ .../solr/client/solrj/response/ResponseParser.java | 1 + .../org/apache/solr/common/util/JavaBinCodec.java | 6 ++++++ .../org/apache/solr/common/util/TestFastWriter.java | 2 ++ .../apache/solr/BaseDistributedSearchTestCase.java | 1 + .../src/java/org/apache/solr/JSONTestUtil.java | 1 + .../src/java/org/apache/solr/SolrTestCaseJ4.java | 8 ++++++++ .../org/apache/solr/cluster/placement/Builders.java | 2 ++ .../org/apache/solr/embedded/JettySolrRunner.java | 2 ++ .../solr/util/RevertDefaultThreadHandlerRule.java | 2 ++ 102 files changed, 271 insertions(+), 9 deletions(-) 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 9fb9a23e3d2..e377e37bc99 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) { } } + @SuppressWarnings( + "ReferenceEquality") // EOFDOC is a unique sentinel; identity check is intentional 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 3c4c152bdcf..9a8e249ca3c 100644 --- a/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java +++ b/solr/core/src/java/org/apache/solr/cloud/DistributedClusterStateUpdater.java @@ -755,6 +755,8 @@ public boolean isCollectionCreation() { } @Override + @SuppressWarnings( + "ReferenceEquality") // NO_OP is a unique sentinel; identity check is intentional public void computeUpdates(ClusterState clusterState, SolrZkClient client) { boolean hasJsonUpdates = false; List perReplicaStateOps = new ArrayList<>(); @@ -912,6 +914,8 @@ public boolean isCollectionCreation() { } @Override + @SuppressWarnings( + "ReferenceEquality") // NO_OP is a unique sentinel; identity check is intentional 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 6bb432abd8e..c99eae37e9c 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; } + @SuppressWarnings( + "ReferenceEquality") // releasing only the exact lock instance held, by identity boolean unlock(LockImpl lockObject) { if (--refCount > 0) { return false; 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 a6998fe38cb..7458f3938d0 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,9 @@ public ReplicateFromLeader(CoreContainer cc, String coreName) { * @param switchTransactionLog if true, ReplicationHandler will rotate the transaction log once * the replication is done */ + @SuppressWarnings( + "ReferenceEquality") // IndexFetchResult constants are singletons; identity check is + // intentional 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 c787fdc80ce..b618d529f80 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 @@ -80,6 +80,8 @@ public class CategoryRoutedAlias extends RoutedAlias { } @Override + @SuppressWarnings( + "ReferenceEquality") // Aliases is replaced wholesale, so identity means "possibly changed" public boolean updateParsedCollectionAliases(ZkStateReader zkStateReader, boolean contextualize) { final Aliases aliases = zkStateReader.getAliases(); // note: might be different from last request 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 0b2cb49678c..b752d098153 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 @@ -212,6 +212,8 @@ protected String getHeadCollectionIfOrdered(AddUpdateCommand cmd) { * @return A list of actions across the DRA. */ @Override + @SuppressWarnings( + "ReferenceEquality") // RoutedAlias dimension identity, not equality, is what matters here protected List calculateActions(String targetCol) { String[] routeValues = SEP_MATCHER.split(targetCol); // remove the alias name to avoid all manner of off by one errors... 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 8139956116e..4df16b611d2 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 @@ -264,6 +264,8 @@ private static void checkMillis(Instant date) { } @Override + @SuppressWarnings( + "ReferenceEquality") // Aliases is replaced wholesale, so identity means "possibly changed" 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 8059a2b16b6..1f12b9ad5f2 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 */ + @SuppressWarnings( + "ReferenceEquality") // NO_OP is a unique sentinel; identity check is intentional public ClusterState enqueueUpdate( ClusterState prevState, List cmds, ZkWriteCallback callback) throws IllegalStateException, Exception { @@ -189,6 +191,8 @@ public ClusterState enqueueUpdate( return clusterState; } + @SuppressWarnings( + "ReferenceEquality") // NO_OP is a unique sentinel; identity check is intentional private boolean isNoOps(List cmds) { for (ZkWriteCommand cmd : cmds) { if (cmd != NO_OP) return false; @@ -229,6 +233,8 @@ public ClusterState writePendingUpdates() throws KeeperException, InterruptedExc * @throws KeeperException if any ZooKeeper operation results in an error * @throws InterruptedException if the current thread is interrupted */ + @SuppressWarnings( + "ReferenceEquality") // detecting "same map instance passed back in" means "flush all" 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 f2d5466f760..a671aa3f749 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 @@ -49,6 +49,8 @@ public ZkWriteCommand(String name, DocCollection collection) { } @Override + @SuppressWarnings( + "ReferenceEquality") // NO_OP is a unique sentinel; identity check is intentional 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 8b943b7dc79..c19cca57557 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,7 @@ 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 + @SuppressWarnings("ReferenceEquality") // CacheValue identity, not equality, is what matters here private boolean closeCacheValue(CacheValue cacheValue, Set deferRemove) { log.debug("looking to close {} {}", cacheValue.path, cacheValue.closeEntries); List listeners = closeListeners.remove(cacheValue.directory); @@ -300,6 +301,7 @@ private static Iterable sorted(Set vals) { return vals.stream().sorted((a, b) -> b.path.compareTo(a.path)).collect(Collectors.toList()); } + @SuppressWarnings("ReferenceEquality") // CacheValue identity, not equality, is what matters here private boolean maybeDeferClose(CacheValue maybeDefer) { assert maybeDefer.deleteOnClose; for (CacheValue maybeChildPath : byPathCache.values()) { @@ -381,6 +383,8 @@ public boolean exists(String path) throws IOException { * java.lang.String, boolean) */ @Override + @SuppressWarnings( + "ReferenceEquality") // same instance back from filterDirectory means "unfiltered" 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 91871cd0d31..3c6feef32d5 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java +++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java @@ -1445,6 +1445,7 @@ public CoreSorter getCoreSorter() { return coreSorter; } + @SuppressWarnings("ReferenceEquality") // SolrCore identity, not equality, is what matters here 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 30bb8435214..27c33f3d3a5 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,10 @@ public T put(String name, T plugin) { return old == null ? null : old.get(); } - @SuppressWarnings({"unchecked"}) + @SuppressWarnings({ + "unchecked", + "ReferenceEquality" // detecting the same plugin instance re-registered vs. a real swap + }) 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 3ee0813f914..86c67c4121c 100644 --- a/solr/core/src/java/org/apache/solr/core/SolrCore.java +++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java @@ -2328,6 +2328,8 @@ public RefCounted getSearcher( * *

This method acquires openSearcherLock - do not call with searchLock held! */ + @SuppressWarnings( + "ReferenceEquality") // schema is only ever replaced wholesale, so identity is correct here public RefCounted openNewSearcher( boolean updateHandlerReopens, boolean realtime) { if (isClosed()) { // catch some errors quicker @@ -2544,6 +2546,8 @@ public RefCounted openNewSearcher( * SolrIndexSearcher}. */ // TODO waitSearcher should be an AtomicReference or something that is a more clear API + @SuppressWarnings( + "ReferenceEquality") // SolrIndexSearcher identity, not equality, is what matters here public RefCounted getSearcher( boolean forceNew, boolean returnSearcher, @@ -2830,6 +2834,8 @@ public boolean isReloaded() { // // onDeckSearchers will also be decremented (it should have been incremented // as a result of opening a new searcher). + @SuppressWarnings( + "ReferenceEquality") // detecting re-registration of the exact same searcher holder 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 dc2c245eada..9a9262872b4 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)}. */ + @SuppressWarnings( + "ReferenceEquality") // ALL_PATHS is a unique sentinel; identity check is intentional 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 206c7995e49..30d3503d7a9 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 */ + @SuppressWarnings( + "ReferenceEquality") // ClassLoader has no value-equality; identity check is intentional synchronized void addToClassLoader(List urls) { URLClassLoader newLoader = addURLsToClassLoader(classLoader, urls); if (newLoader == classLoader) { @@ -483,6 +485,8 @@ 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 */ + @SuppressWarnings( + "ReferenceEquality") // detecting the default `packages` array vs. a caller-supplied one public Class findClass( String cname, Class expectedType, String... subpackages) { if (subpackages == null || subpackages.length == 0 || subpackages == packages) { @@ -694,6 +698,8 @@ public boolean addToCoreAware(T obj) { } } + @SuppressWarnings( + "ReferenceEquality") // detecting whether the same SolrConfig instance is being re-associated protected final void setSolrConfig(SolrConfig config) { if (this.config != null && this.config != config) { throw new IllegalStateException("SolrConfig instance is already associated with this loader"); @@ -701,6 +707,9 @@ protected final void setSolrConfig(SolrConfig config) { this.config = config; } + @SuppressWarnings( + "ReferenceEquality") // detecting whether the same CoreContainer instance is being + // re-associated 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 1aecd6e7c3e..69df5331d44 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,8 @@ static Long getCheckSum(Checksum checksum, Path f) { private volatile IndexFetcher currentIndexFetcher; + @SuppressWarnings( + "ReferenceEquality") // detecting the shared pollingIndexFetcher vs. a one-off, by identity public IndexFetchResult doFetch(SolrParams solrParams, boolean forceReplication) { String leaderUrl = solrParams.get(LEADER_URL, null); if (!indexFetchLock.tryLock()) return IndexFetchResult.LOCK_OBTAIN_FAILED; @@ -1446,6 +1448,8 @@ public void preClose(SolrCore core) { } @Override + @SuppressWarnings( + "ReferenceEquality") // detecting the shared pollingIndexFetcher vs. a one-off public void postClose(SolrCore core) { if (pollingIndexFetcher != null) { pollingIndexFetcher.destroy(); 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 494e3f89841..e1d02565b9b 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,8 @@ public void submitAsyncTask(TaskObject taskObject) throws SolrException { } } + @SuppressWarnings( + "ReferenceEquality") // detecting a cache-computed instance vs. our own taskObject 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 38eb8a464cf..96cc9be3a3b 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,8 @@ private void estimateTermStats( } } + @SuppressWarnings( + "ReferenceEquality") // detecting whether getMergeInstance() returned a new closeable clone 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 0e886bf1b22..353e096d294 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,8 @@ public Collection getApis() { apis.add( new ReqHandlerToApi(this, authcSpecProvider) { @Override + @SuppressWarnings( + "ReferenceEquality") // detecting whether the plugin instance was reloaded public synchronized Map getCommandSchema() { // it is possible that the Authentication plugin is modified since the last call. // invalidate the cached commandSchema @@ -335,6 +337,8 @@ public synchronized Map getCommandSchema() { apis.add( new ApiBag.ReqHandlerToApi(this, authzSpecProvider) { @Override + @SuppressWarnings( + "ReferenceEquality") // detecting whether the plugin instance was reloaded public synchronized Map getCommandSchema() { // it is possible that the Authorization plugin is modified since the last call. // invalidate cached commandSchema 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 f9b39864156..f9accfe106b 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 */ + // Identity against the internal singleton is intentionally stricter than equals(). + @SuppressWarnings("ReferenceEquality") public NodeSystemResponse.Security getSecurityInfo() { NodeSystemResponse.Security info = new NodeSystemResponse.Security(); 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 d251a7bfe4d..d221132c835 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 @@ -643,6 +643,8 @@ private static void removeCopyFieldTargets(SolrDocument solrDoc, IndexSchema sch * * @see #getInputDocumentFromTlog(SolrCore, BytesRef, AtomicLong, Set, Resolution) */ + @SuppressWarnings( + "ReferenceEquality") // DELETED is a unique sentinel; identity check is intentional private static SolrInputDocument getInputDocumentFromTlog( SolrCore core, BytesRef idBytes, @@ -755,6 +757,8 @@ public static SolrInputDocument getInputDocumentFromTlog( * @param resolveStrategy {@link Resolution#DOC} or {@link Resolution#ROOT_WITH_CHILDREN}. * @see Resolution */ + @SuppressWarnings( + "ReferenceEquality") // DELETED is a unique sentinel; identity check is intentional 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 aa85f9a69b4..e22356f5523 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; } + @SuppressWarnings( + "ReferenceEquality") // excluding "me" itself, by identity, from the other components 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 3e7a066841f..76f62bd7ca9 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,9 @@ protected void processComponentsLocal( } /** Distributed request processing (AKA coordinator). */ + @SuppressWarnings( + "ReferenceEquality") // ShardRequest.ALL_SHARDS is a unique sentinel; identity check is + // intentional protected void processComponentsDistrib( SolrQueryRequest req, SolrQueryResponse rsp, 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 36f22d69cdc..3f8694a37ab 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( } } + @SuppressWarnings( + "ReferenceEquality") // TermsEnum.EMPTY is a Lucene sentinel; identity check is intentional private static void collectTermStates( IndexReaderContext topReaderContext, TermStates[] contextArray, Term[] queryTerms) throws IOException { 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 0c8b47003ae..23ad278d491 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 @@ -141,6 +141,8 @@ public void update( } } + @SuppressWarnings( + "ReferenceEquality") // END_OBJ is a unique sentinel; identity check is intentional private void handleMultiStream( SolrQueryRequest req, SolrQueryResponse rsp, 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 a8f3682b479..1431c929f4a 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. */ + @SuppressWarnings( + "ReferenceEquality") // linked-list node identity, not equality, is what matters here public void removeLL() { if (head[0] == this) head[0] = nextTag; if (prevTag != null) { @@ -105,6 +107,8 @@ public void removeLL() { } } + @SuppressWarnings( + "ReferenceEquality") // linked-list node identity, not equality, is what matters here 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 ccbb5b2f8fc..3de20dced77 100644 --- a/solr/core/src/java/org/apache/solr/legacy/BBoxStrategy.java +++ b/solr/core/src/java/org/apache/solr/legacy/BBoxStrategy.java @@ -307,6 +307,9 @@ public DoubleValuesSource makeOverlapRatioValueSource( // } @Override + @SuppressWarnings( + "ReferenceEquality") // SpatialOperation constants are singletons; identity check is + // intentional public Query makeQuery(SpatialArgs args) { Shape shape = args.getShape(); if (!(shape instanceof Rectangle bbox)) 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 9cb3acc0b0c..f9779b30455 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 @@ -84,6 +84,9 @@ public void setLogLevel(String category, String level) { } @Override + @SuppressWarnings( + "ReferenceEquality") // java.util.logging.Logger has no equals() override; identity check is + // intentional 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 51adcf2899b..ec659763989 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 @@ -167,6 +167,8 @@ protected LoggerConfig getLoggerConfig(LoggerContext ctx, String loggerName) { } @Override + @SuppressWarnings( + "ReferenceEquality") // fast-path identity check before the equals() fallback right after it public Collection getAllLoggers() { Logger root = LogManager.getRootLogger(); LoggerContext ctx = (LoggerContext) LogManager.getContext(false); 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 15fc27b85c5..9dbd9f8d2ef 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; + @SuppressWarnings( + "ReferenceEquality") // sanity check that two distinct counter instances were passed in 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 b42d869892c..c1707fffdef 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; + @SuppressWarnings( + "ReferenceEquality") // sanity check that two distinct histogram instances were passed in 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 6cf505fb54e..fc98805b168 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; + @SuppressWarnings( + "ReferenceEquality") // sanity check that two distinct counter instances were passed in 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 7535bb2c7fe..ff57f4775fa 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) { } } + @SuppressWarnings( + "ReferenceEquality") // removing the exact registered listener instance, not an equal one 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 419cb033835..887b7b84dc1 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( } } + @SuppressWarnings( + "ReferenceEquality") // detecting the same package Version instance, not just an equal one 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/TextResponseWriter.java b/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java index 6809e99e936..065255811cd 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,7 @@ public TextResponseWriter(Writer writer, SolrQueryRequest req, SolrQueryResponse * NOTE: strict object equality check against {@link #rawReturnFields}; see javadocs for {@link * #NO_RAW_FIELDS} */ + @SuppressWarnings("ReferenceEquality") // strict object identity is intentional, see javadoc above 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 b165b81e923..2c6b540e6ce 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 @@ -62,6 +62,8 @@ public boolean mayModifyValue() { } @Override + @SuppressWarnings( + "ReferenceEquality") // QueryResponseWriter identity, not equality, is what matters here public DocTransformer create( String display, SolrParams params, 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 e2fe53cf4d5..43c707980f0 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 @@ -143,6 +143,8 @@ public float score() throws IOException { IntObjectHashMap cachedValuesById; @Override + @SuppressWarnings( + "ReferenceEquality") // NULL_SENTINEL is a unique sentinel; identity check is intentional public void transform(SolrDocument doc, int docid, DocIterationInfo docIterationInfo) { Object cacheValue = (cachedValuesById != null) ? cachedValuesById.get(docid) : null; if (cacheValue != 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 4b85573ad73..fbf0e051d03 100644 --- a/solr/core/src/java/org/apache/solr/schema/BBoxField.java +++ b/solr/core/src/java/org/apache/solr/schema/BBoxField.java @@ -75,6 +75,7 @@ protected void init(IndexSchema schema, Map args) { } @Override + @SuppressWarnings("ReferenceEquality") // FieldType identity, not equality, is what matters here public void inform(IndexSchema schema) { this.schema = schema; FieldType numberType = schema.getFieldTypeByName(numberTypeName); 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 3980483fb7e..066c35c3811 100644 --- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java +++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java @@ -2002,6 +2002,7 @@ public IndexSchema deleteCopyFields(Map> copyFields) } /** Informs analyzers used by a fieldType. */ + @SuppressWarnings("ReferenceEquality") // ref comparison is correct here (vs. equals) 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 238666d7165..0a2d4fd38c8 100644 --- a/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java +++ b/solr/core/src/java/org/apache/solr/schema/LatLonPointSpatialField.java @@ -157,6 +157,9 @@ public Field[] createIndexableFields(Shape shape) { } @Override + @SuppressWarnings( + "ReferenceEquality") // SpatialOperation constants are singletons; identity check is + // intentional public Query makeQuery(SpatialArgs args) { if (args.getOperation() != SpatialOperation.Intersects) { throw new UnsupportedSpatialOperation(args.getOperation()); 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 a65eb18df6a..bcafcab8c97 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,8 @@ private OpType(String label) { } } + @SuppressWarnings( + "ReferenceEquality") // detecting a self-referencing exception cause loop, by identity 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 e43acb704cc..60ccc26c7aa 100644 --- a/solr/core/src/java/org/apache/solr/search/CaffeineCache.java +++ b/solr/core/src/java/org/apache/solr/search/CaffeineCache.java @@ -271,6 +271,7 @@ public V computeIfAbsent(K key, IOFunction mappingFuncti } @Override + @SuppressWarnings("ReferenceEquality") // intentional, see the comment below re: Caffeine behavior public V put(K key, V val) { inserts.increment(); V old = cache.asMap().put(key, val); diff --git a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java index 044b9894d97..de683b204d5 100644 --- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java @@ -2997,7 +2997,11 @@ private static class SortFieldsCompare { * Constructs an instance based on the (raw, un-rewritten) SortFields to be used, and an initial * number of expected groups (will grow as needed). */ - @SuppressWarnings({"rawtypes"}) + @SuppressWarnings({ + "rawtypes", + "ReferenceEquality" // SortField.STRING_LAST is a Lucene sentinel; identity check is + // intentional + }) public SortFieldsCompare(SortField[] sorts, int initNumGroups) { this.sorts = sorts; numClauses = sorts.length; @@ -3140,7 +3144,11 @@ public boolean testAndSetNullGroupValues(int contextDoc) throws IOException { * overwrites them (and returns true) if this document is the new group head in accordance with * the SortFields. (otherwise returns false) */ - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ + "unchecked", + "rawtypes", + "ReferenceEquality" // detecting whether the same DocValues instance is still in use + }) private boolean testAndSetGroupValues(Object[] values, int contextDoc) throws IOException { Object[] stash = new Object[numClauses]; int lastCompare = 0; 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 eba8a731881..43167543744 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,7 @@ public DocValuesIteratorCache(SolrIndexSearcher searcher, boolean cache) { } } + @SuppressWarnings("ReferenceEquality") // NONE is a unique sentinel; identity check is intentional 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 4dd2745bf1e..809c0305be3 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,7 @@ private Query getQuery() { } } + @SuppressWarnings("ReferenceEquality") // Analyzer identity, not equality, is what matters here 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 f7bfd3b7dc2..d898bdcce03 100644 --- a/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/GraphTermsQParserPlugin.java @@ -211,6 +211,9 @@ public int hashCode() { } @Override + @SuppressWarnings( + "ReferenceEquality") // id is a unique marker Object created per non-clone construction, so + // identity is the intended equality check (clones share it, independent instances don't) public boolean equals(Object other) { return sameClassAs(other) && id == ((GraphTermsQuery) other).id; } @@ -290,6 +293,8 @@ public boolean isCacheable(LeafReaderContext ctx) { }; } + @SuppressWarnings( + "ReferenceEquality") // TermsEnum.EMPTY is a Lucene sentinel; identity check is intentional 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 09fb728e7f9..fd1d0e7bdfd 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,7 @@ protected class JoinQueryWeight extends ConstantScoreWeight { ResponseBuilder rb; ScoreMode scoreMode; + @SuppressWarnings("ReferenceEquality") // SolrCore identity, not equality, is what matters here public JoinQueryWeight(SolrIndexSearcher searcher, ScoreMode scoreMode, float boost) { super(JoinQuery.this, boost); this.scoreMode = scoreMode; @@ -248,6 +249,8 @@ public DocSet getDocSet() throws IOException { return result; } + @SuppressWarnings( + "ReferenceEquality") // SolrIndexSearcher identity, not equality, is what matters here 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 671da8cda54..e76fb6e5716 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,7 @@ public boolean equals(Object o) { * * @return true if the lists of equivalent other then the ordering */ + @SuppressWarnings("ReferenceEquality") // fast path: takes care of identity and null cases 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 e7786f71d3b..0a5c9c7d2ad 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java +++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java @@ -965,6 +965,8 @@ private BitDocSet makeBitDocSet(DocSet answer) { return new BitDocSet(bs, answer.size()); } + @SuppressWarnings( + "ReferenceEquality") // detecting whether makeBitDocSet had to allocate a new instance 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/facet/FacetFieldProcessor.java b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java index 2dca4a5a35b..13b93c66eab 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,7 @@ private static long applyDefaultOverrequest(long offset, long limit) { /** * Processes the collected data to finds the top slots, and composes it in the response NamedList. */ + @SuppressWarnings("ReferenceEquality") // SlotAcc identity, not equality, is what matters here SimpleOrderedMap findTopSlots( final int numSlots, final int slotCardinality, @@ -578,6 +579,7 @@ private static class Slot { } /** Helper method used solely when looping over buckets to be returned in findTopSlots */ + @SuppressWarnings("ReferenceEquality") // SlotAcc identity, not equality, is what matters here private void fillBucketFromSlot(SimpleOrderedMap target, Slot slot, SlotAcc resortAcc) throws IOException { final int slotOrd = slot.slot; @@ -846,6 +848,7 @@ public void setValues(SimpleOrderedMap bucket, int slotNum) throws IOExc } @Override + @SuppressWarnings("ReferenceEquality") // SlotAcc identity, not equality, is what matters here public SlotAcc registerSweepingAccs(SweepingCountSlotAcc baseSweepingAcc) { final FacetFieldProcessor p = (FacetFieldProcessor) fcontext.processor; int j = 0; 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 f55690bbd55..d35f5f46dec 100644 --- a/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java +++ b/solr/core/src/java/org/apache/solr/search/facet/RelatednessAgg.java @@ -138,6 +138,8 @@ public FunctionValues getValues(Map context, LeafReaderContext r } @Override + @SuppressWarnings( + "ReferenceEquality") // FacetContext identity, not equality, is what matters here public SlotAcc createSlotAcc(FacetContext fcontext, long numDocs, int numSlots) throws IOException { // TODO: Ideally this is where we should check fgQ/bgQ for 'null' and apply defaults... 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 ceba52b6fcb..904a489aab2 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; } + @SuppressWarnings( + "ReferenceEquality") // fast-path: values array is prefilled with defaultValue already public T[] resize(T[] old, T defaultValue) { @SuppressWarnings({"unchecked"}) T[] values = (T[]) Array.newInstance(old.getClass().getComponentType(), getNewSize()); @@ -757,6 +759,7 @@ public ReadOnlyCountSlotAcc add(String key, DocSet docs, int numSlots) { * @param toAcc - the replacement {@link SlotAcc} * @see SweepableSlotAcc#registerSweepingAccs(SweepingCountSlotAcc) */ + @SuppressWarnings("ReferenceEquality") // SlotAcc identity, not equality, is what matters here 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 5ddd4705116..4da65e04bc8 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 + @SuppressWarnings( + "ReferenceEquality") // uifPlaceholder is a unique sentinel; identity check is intentional public static UnInvertedField checkUnInvertedField(String field, SolrIndexSearcher searcher) throws IOException { SolrCache cache = searcher.getFieldValueCache(); 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 039ce146f4d..5c85c4ee776 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,8 @@ 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. */ + @SuppressWarnings( + "ReferenceEquality") // live-nodes set is replaced wholesale, so identity means "unchanged" 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 b069218ee48..6f378c18356 100644 --- a/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/PKIAuthenticationPlugin.java @@ -366,6 +366,8 @@ private Optional getUserFromJettyRequest(Request request) { listenerFactory.setDelegate(() -> listener); } + // Identity against the internal singleton is intentionally stricter than equals(). + @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 3d80367921f..3f6e6f5a6b2 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,8 @@ protected void extractRemotePath(String collectionName) } /** This method processes the request. */ + @SuppressWarnings( + "ReferenceEquality") // detecting whether we're still at the outermost exception, by identity 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 0901a0e2873..bc4bba0ec18 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,8 @@ 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. */ + @SuppressWarnings( + "ReferenceEquality") // detecting whether the pools are the same shared Semaphore instance public SlotReservation handleRequest() throws InterruptedException { if (!rateLimiterConfig.isEnabled) { @@ -135,6 +137,8 @@ public SlotReservation handleRequest() throws InterruptedException { * @lucene.experimental -- Can cause slots to be blocked if a request borrows a slot and is itself * long lived. */ + @SuppressWarnings( + "ReferenceEquality") // detecting whether the pools are the same shared Semaphore instance 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 42531d5fd4a..eb1a80773a7 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,11 @@ 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"}) + @SuppressWarnings({ + "fallthrough", + "resource", + "ReferenceEquality" // currentStream points at keyStream or valueStream; identity is the flag + }) 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 e031ade9938..dc67b47cb17 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,7 @@ public class ConjunctionSolrSpellChecker extends SolrSpellChecker { private List checkers = new ArrayList<>(); private boolean initialized = false; + @SuppressWarnings("ReferenceEquality") // Analyzer identity, not equality, is what matters here 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/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java index 76183c7f5a5..76276228a86 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,7 @@ public DirectUpdateHandler2(SolrCore core) { } } + @SuppressWarnings("ReferenceEquality") // UpdateLog identity, not equality, is what matters here 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 345d35bb193..6619a740d8d 100644 --- a/solr/core/src/java/org/apache/solr/update/MemOutputStream.java +++ b/solr/core/src/java/org/apache/solr/update/MemOutputStream.java @@ -32,6 +32,9 @@ public MemOutputStream(byte[] tempBuffer) { } @Override + @SuppressWarnings( + "ReferenceEquality") // arrays don't override equals(), so identity is the only real + // comparison public void flush(byte[] arr, int offset, int len) throws IOException { if (arr == buf && offset == 0 && len == buf.length) { buffers.add(buf); // steal the buffer 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 7d69b4de9c6..2552b898789 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) { } } + @SuppressWarnings( + "ReferenceEquality") // MissedUpdatesRequest constants are singletons; identity check is + // intentional 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; } + @SuppressWarnings( + "ReferenceEquality") // MissedUpdatesRequest constants are singletons; identity check is + // intentional 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 272e610718b..a77274e9f5e 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) { } } + @SuppressWarnings( + "ReferenceEquality") // MissedUpdatesRequest constants are singletons; identity check is + // intentional 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; } + @SuppressWarnings( + "ReferenceEquality") // MissedUpdatesRequest constants are singletons; identity check is + // intentional 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; } + @SuppressWarnings( + "ReferenceEquality") // MissedUpdatesRequest constants are singletons; identity check is + // intentional 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 b35a9b3651f..70330b89c71 100644 --- a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java +++ b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java @@ -196,6 +196,9 @@ public SolrIndexConfig(ConfigNode cfg, SolrIndexConfig def) { } @Override + @SuppressWarnings( + "ReferenceEquality") // InfoStream.NO_OUTPUT is a Lucene sentinel; identity check is + // intentional public void writeMap(EntryWriter ew) throws IOException { ew.put("useCompoundFile", useCompoundFile) .put("maxBufferedDocs", maxBufferedDocs) 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 17fd8477b27..2b0f202a4bd 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. */ + @SuppressWarnings( + "ReferenceEquality") // TransactionLog identity, not equality, is what matters here 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 */ + @SuppressWarnings( + "ReferenceEquality") // TransactionLog identity, not equality, is what matters here public void copyOverOldUpdates(long commitVersion, TransactionLog oldTlog) { copyOverOldUpdatesCounter.inc(); @@ -1701,7 +1705,10 @@ public void close(boolean committed) { close(committed, false); } - @SuppressWarnings("try") + @SuppressWarnings({ + "try", + "ReferenceEquality" // TransactionLog identity, not equality, is what matters here + }) 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 fb4a9de1d8a..b7436751a2e 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 @@ -74,6 +74,9 @@ public AllValuesOrNoneFieldMutatingUpdateProcessor( protected abstract Object mutateValue(final Object srcVal); @Override + @SuppressWarnings( + "ReferenceEquality") // *_SINGLETON constants are unique sentinels; identity check is + // intentional protected final SolrInputField mutate(final SolrInputField srcField) { Collection vals = srcField.getValues(); if (vals == null || vals.isEmpty()) return srcField; 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 3cdb0706980..5bf1e6b77da 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. */ + @SuppressWarnings( + "ReferenceEquality") // RealTimeGetComponent.DELETED is a unique sentinel; identity check is + // intentional 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 cbec1472649..7a6dbcde04d 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,8 @@ private void validateUserVersions( } } + @SuppressWarnings( + "ReferenceEquality") // DELETED is a unique sentinel; identity check is intentional 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 8593294b6f2..25b0d5a96fa 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. */ + @SuppressWarnings( + "ReferenceEquality") // SELECT_NO_FIELDS/SELECT_ALL_FIELDS are unique sentinels; identity + // check is intentional 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 1d81d6d84ed..4e41bb61f72 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 @@ -57,6 +57,9 @@ public FieldValueMutatingUpdateProcessor( protected abstract Object mutateValue(final Object src); @Override + @SuppressWarnings( + "ReferenceEquality") // DELETE_VALUE_SINGLETON is a unique sentinel; identity check is + // intentional protected final SolrInputField mutate(final SolrInputField src) { Collection values = src.getValues(); if (values == null) return src; // don't mutate 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 b93d2ef2527..59281eb4cb8 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,8 @@ boolean isSkipUpdateIfMissing() { return this.skipUpdateIfMissing; } + @SuppressWarnings( + "ReferenceEquality") // DELETED is a unique sentinel; identity check is intentional 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 d55d4ba8756..c2f82da4989 100644 --- a/solr/core/src/test/org/apache/solr/TestGroupingSearch.java +++ b/solr/core/src/test/org/apache/solr/TestGroupingSearch.java @@ -1585,6 +1585,7 @@ public void testGroupingOnDateField() throws Exception { } @Test + @SuppressWarnings("ReferenceEquality") public void testRandomGrouping() throws Exception { /* * updateJ("{\"add\":{\"doc\":{\"id\":\"77\"}}}", params("commit","true")); 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 a0f1984931d..6b23340af58 100644 --- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java @@ -56,6 +56,7 @@ private void createCollection(String collection) throws IOException, SolrServerE } @Test + @SuppressWarnings("ReferenceEquality") public void testSimpleSliceLeaderElection() throws Exception { String collection = "collection1"; createCollection(collection); 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 101ee2a09b3..e581c574016 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,12 +278,14 @@ public InputStream getStream() { return rsp; } + @SuppressWarnings("ReferenceEquality") private SolrQueryResponse invoke( PluginBag reqHandlers, String path, String fullPath, CoreContainer mockCC) { HashMap parts = new HashMap<>(); + // Identity check: is reqHandlers the container's own handler bag, or a substitute? boolean containerHandlerLookup = mockCC.getRequestHandlers() == reqHandlers; path = path == null ? fullPath : path; Api api = null; 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 597e2044544..b519e2c3d3a 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,7 @@ public QParser createParser( } @Test + @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/schema/TestManagedSchemaThreadSafety.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java index e4cb2156890..4d79661b692 100644 --- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java +++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java @@ -63,9 +63,11 @@ private SuspendingZkClient(String zkServerAddress) { .withTimeout(ZK_CLIENT_TIMEOUT, TimeUnit.MILLISECONDS)); } + @SuppressWarnings("ReferenceEquality") boolean isSlowpoke() { Thread youKnow; if ((youKnow = slowpoke.get()) != null) { + // Thread identity comparison is intentional (and Thread has no meaningful equals()). return youKnow == Thread.currentThread(); } else { return slowpoke.compareAndSet(null, Thread.currentThread()); 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 ceb086fae81..150efb6483c 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 @@ -3784,6 +3784,7 @@ 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 */ + @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 5946d4dc955..57099fcc6a6 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 @@ -45,8 +45,10 @@ static class CustomAggregate extends SimpleAggValueSource { } @Override + @SuppressWarnings("ReferenceEquality") public SlotAcc createSlotAcc(FacetContext fcontext, long numDocs, int numSlots) { // check we can get access to the request and searcher, via the context + // Identity check: verifying request and searcher share the exact same SolrCore instance. if (fcontext.getRequest().getCore() != fcontext.getSearcher().getCore()) { throw new IllegalStateException("Searcher and request out of sync"); } 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 3e9ee3b70b9..060d9d47c1b 100644 --- a/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java +++ b/solr/core/src/test/org/apache/solr/uninverting/TestFieldCacheSortRandom.java @@ -351,7 +351,9 @@ public boolean equals(Object other) { return sameClassAs(other) && equalsTo(getClass().cast(other)); } + @SuppressWarnings("ReferenceEquality") private boolean equalsTo(RandomQuery other) { + // Consistent with hashCode(), which uses System.identityHashCode(docValues) below. 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 a5109562d0d..65b9541d4c2 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,7 @@ public String toString() { * TestInPlaceUpdatesStandalone#HARDCOMMIT} or {@link TestInPlaceUpdatesStandalone#SOFTCOMMIT} * sentinel objects. */ - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({"unchecked", "rawtypes", "ReferenceEquality"}) public void checkReplay(final String valField, Object... commands) throws Exception { HashMap model = new LinkedHashMap<>(); 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 e199fa95e60..ae0f23a0d1f 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,7 @@ protected void validate() throws FeatureException { public class SolrFeatureWeight extends FeatureWeight { private final Weight solrQueryWeight; + @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 21cca228858..33945bb8074 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,8 +286,10 @@ public void normalizeFeaturesInPlace(float[] modelFeatureValues) { } } + @SuppressWarnings("ReferenceEquality") public Explanation getNormalizerExplanation(Explanation e, int idx) { Normalizer n = norms.get(idx); + // IdentityNormalizer.INSTANCE is a singleton; identity comparison is intentional. if (n != IdentityNormalizer.INSTANCE) { return n.explain(e); } 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 c2720c82a9e..c3d3da165cc 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,7 @@ static String solrAggMetricId(String metric, String column) { return String.format(Locale.ROOT, "%s(%s)", funcName, column); } + @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 cbc0cf7dfc0..43a49f8b0e9 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,8 +77,10 @@ String toQuery() { private final RexBuilder builder; + @SuppressWarnings("ReferenceEquality") SolrFilter(RelOptCluster cluster, RelTraitSet traitSet, RelNode child, RexNode condition) { super(cluster, traitSet, child, condition); + // Conventions are singletons (see SolrRel.CONVENTION); identity comparison is intentional. assert getConvention() == SolrRel.CONVENTION; assert getConvention() == child.getConvention(); builder = child.getCluster().getRexBuilder(); 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 a731cd1997f..121f3536c2a 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 @@ -30,6 +30,7 @@ /** Implementation of {@link org.apache.calcite.rel.core.Project} relational expression in Solr. */ class SolrProject extends Project implements SolrRel { + @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 de924f8d9e5..2c0c3ed9d64 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,7 @@ /** Implementation of {@link org.apache.calcite.rel.core.Sort} relational expression in Solr. */ class SolrSort extends Sort implements SolrRel { + @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 d7481e055d0..8217af20f0e 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,7 @@ class SolrTableScan extends TableScan implements SolrRel { * @param solrTable Solr table * @param projectRowType Fields and types to project; null to project raw row */ + @SuppressWarnings("ReferenceEquality") SolrTableScan( RelOptCluster cluster, RelTraitSet traitSet, 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 57f4f5da259..e8085508fe2 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,7 @@ 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"}) + @SuppressWarnings({"unchecked", "ReferenceEquality"}) // fast path: same ref implies equal 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 f17b62afc9a..59a903a4caa 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 @@ -76,7 +76,7 @@ public Explanation toExplanation(StreamFactory factory) throws IOException { } @Override - @SuppressWarnings({"unchecked"}) + @SuppressWarnings({"unchecked", "ReferenceEquality"}) // fast path: same ref implies equal 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 5209d29e4be..e49174bf241 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); } + @SuppressWarnings( + "ReferenceEquality") // END_OBJ is a unique sentinel; identity check is intentional private boolean readTillDocs() throws IOException { if (isObjectType(fis)) { if (tagByte == SOLRDOCLST) { @@ -177,7 +179,10 @@ protected Object readObject(DataInputInputStream dis) throws IOException { } @Override - @SuppressWarnings({"unchecked"}) + @SuppressWarnings({ + "unchecked", + "ReferenceEquality" // END_OBJ is a unique sentinel; identity check is intentional + }) public Map next() throws IOException { if (!atDocs) { atDocs = true; diff --git a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkStateReader.java index 81ddf93b26c..145a448c8ab 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 @@ -1270,6 +1270,8 @@ class StateWatcher implements Watcher { } @Override + @SuppressWarnings( + "ReferenceEquality") // checking identity of the registered watcher, not equality public void process(WatchedEvent event) { // session events are not change events, and do not remove the watcher if (EventType.None.equals(event.getType())) { @@ -2007,6 +2009,8 @@ 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. */ + @SuppressWarnings( + "ReferenceEquality") // op.apply returning the same instance means "no change made" 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/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java index 5baeaec60a9..50ab27f1dc4 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 @@ -141,6 +141,8 @@ public boolean isEmpty() { return size() == 0; } + @SuppressWarnings( + "ReferenceEquality") // backdoorE is a unique sentinel; identity check is intentional 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/request/JavaBinUpdateRequestCodec.java b/solr/solrj/src/java/org/apache/solr/client/solrj/request/JavaBinUpdateRequestCodec.java index 5da32870e04..9f232e48b5f 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 @@ -218,6 +218,8 @@ public List readIterator(DataInputInputStream fis) throws IOException { return List.of(); // bogus; already processed } + @SuppressWarnings( + "ReferenceEquality") // END_OBJ is a unique sentinel; identity check is intentional 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 9884d8a1ef5..47dfdccedee 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,7 @@ protected ResponseParser() { assert validateContentTypes(); } + @SuppressWarnings("ReferenceEquality") // Use of == is intentional here private boolean validateContentTypes() { Collection contentTypes = getContentTypes(); assert contentTypes == getContentTypes() 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 12f7f4cf4bb..f1db025fe4f 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 { } } + @SuppressWarnings( + "ReferenceEquality") // END_OBJ is a unique sentinel; identity check is intentional 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); } + @SuppressWarnings( + "ReferenceEquality") // END_OBJ is a unique sentinel; identity check is intentional 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); } + @SuppressWarnings( + "ReferenceEquality") // END_OBJ is a unique sentinel; identity check is intentional public boolean writePrimitive(Object val) throws IOException { if (val == null) { daos.writeByte(NULL); 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 382c2093c98..71a95f4912b 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 @@ -33,7 +33,9 @@ public MemWriter(char[] tempBuffer, Random r) { } @Override + @SuppressWarnings("ReferenceEquality") public void flush(char[] arr, int offset, int len) throws IOException { + // Identity check: only steal the internal buffer when it's the exact same array instance. if (arr == buf && offset == 0 && len == buf.length) { buffers.add(buf); // steal the buffer buf = new char[r.nextInt(9000) + 1]; 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 11aa4fb83a0..9d2b46aa5bc 100644 --- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java @@ -902,6 +902,7 @@ 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 08df42a6c8f..88bb48b1b1a 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,7 @@ public boolean match(Object expected) { return match(); } + @SuppressWarnings("ReferenceEquality") // fast path: same ref implies equal 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 8bd9e8c5a62..5181a264bf7 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -473,6 +473,8 @@ public static void newRandomConfig() { randomizeNumericTypesProperties(); } + @SuppressWarnings( + "ReferenceEquality") // detecting a self-referencing exception cause loop, by identity public static Throwable getWrappedException(Throwable e) { while (e != null && e.getCause() != e && e.getCause() != null) { e = e.getCause(); @@ -2287,6 +2289,7 @@ public static void copySolrHomeToTemp(Path dstRoot, String collection) throws IO Files.copy(top.resolve("synonyms.txt"), subHome.resolve("synonyms.txt")); } + @SuppressWarnings("ReferenceEquality") // fast path: same ref implies equal public boolean compareSolrDocument(Object expected, Object actual) { if (!(expected instanceof SolrDocument solrDocument1) @@ -2337,6 +2340,7 @@ public boolean compareSolrDocument(Object expected, Object actual) { } } + @SuppressWarnings("ReferenceEquality") // fast path: same ref implies equal public boolean compareSolrDocumentList(Object expected, Object actual) { if (!(expected instanceof SolrDocumentList list1) || !(actual instanceof SolrDocumentList list2)) { @@ -2368,6 +2372,7 @@ public boolean compareSolrDocumentList(Object expected, Object actual) { return true; } + @SuppressWarnings("ReferenceEquality") // fast path: same ref implies equal public boolean compareSolrInputDocument(Object expected, Object actual) { if (!(expected instanceof SolrInputDocument sdoc1) @@ -2442,6 +2447,7 @@ public boolean compareSolrInputDocument(Object expected, Object actual) { } } + @SuppressWarnings("ReferenceEquality") // fast path: same ref implies equal public boolean assertSolrInputFieldEquals(Object expected, Object actual) { if (!(expected instanceof SolrInputField sif1) || !(actual instanceof SolrInputField sif2)) { return false; @@ -2603,6 +2609,8 @@ public static String randomXmlUsableUnicodeString() { return result; } + @SuppressWarnings( + "ReferenceEquality") // SolrIndexSearcher identity, not equality, is what matters here 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 03cc9522838..f363239a565 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,8 @@ public ShardBuilder setLeader(ReplicaBuilder leaderReplicaBuilder) { return this; } + @SuppressWarnings( + "ReferenceEquality") // ReplicaBuilder identity, not equality, is what matters here 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 bd97bf8c690..3e75b62e2e0 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 @@ -588,6 +588,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 */ + @SuppressWarnings( + "ReferenceEquality") // detecting a self-referencing exception cause loop, by identity 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 89778e80ae9..d178473034a 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 @@ -28,6 +28,8 @@ public final class RevertDefaultThreadHandlerRule implements TestRule { private static final AtomicBoolean applied = new AtomicBoolean(); @Override + @SuppressWarnings( + "ReferenceEquality") // UncaughtExceptionHandler identity, not equality, is what matters here public Statement apply(Statement s, Description d) { return new StatementAdapter(s) { @Override