diff --git a/CHANGELOG.md b/CHANGELOG.md index 8599977452207..7404c0f536161 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Implement GRPC Search params `Highlight`and `Sort` ([#19868](https://github.com/opensearch-project/OpenSearch/pull/19868)) - Implement GRPC ConstantScoreQuery, FuzzyQuery, MatchBoolPrefixQuery, MatchPhrasePrefix, PrefixQuery, MatchQuery ([#19854](https://github.com/opensearch-project/OpenSearch/pull/19854)) - Add async periodic flush task support for pull-based ingestion ([#19878](https://github.com/opensearch-project/OpenSearch/pull/19878)) +- [prone] Add `UnusedMethod` ([#19896](https://github.com/opensearch-project/OpenSearch/pull/19896)) ### Changed - Faster `terms` query creation for `keyword` field with index and docValues enabled ([#19350](https://github.com/opensearch-project/OpenSearch/pull/19350)) diff --git a/build.gradle b/build.gradle index a6dc4348bdd6b..e50e3cab0354d 100644 --- a/build.gradle +++ b/build.gradle @@ -59,6 +59,7 @@ plugins { id "org.gradle.test-retry" version "1.6.2" apply false id "test-report-aggregation" id 'jacoco-report-aggregation' + id 'net.ltgt.errorprone' version '4.3.0' apply false } apply from: 'gradle/build-complete.gradle' @@ -71,13 +72,10 @@ apply from: 'gradle/run.gradle' apply from: 'gradle/missing-javadoc.gradle' apply from: 'gradle/code-coverage.gradle' -// Apply FIPS configuration to all projects allprojects { + apply from: "$rootDir/gradle/error-prone.gradle" apply from: "$rootDir/gradle/fips.gradle" -} - -// common maven publishing configuration -allprojects { + // common maven publishing configuration group = 'org.opensearch' version = VersionProperties.getOpenSearch() description = "OpenSearch subproject ${project.path}" diff --git a/gradle/error-prone.gradle b/gradle/error-prone.gradle new file mode 100644 index 0000000000000..17e98190acf6e --- /dev/null +++ b/gradle/error-prone.gradle @@ -0,0 +1,50 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ + +apply plugin: 'net.ltgt.errorprone' + +tasks.withType(JavaCompile).configureEach { + options.errorprone { + disableAllChecks = true // remove once complain + error( + 'UnusedMethod' + ) + errorproneArgs.add( + '-XepExcludedPaths:' + + '.*AggregatorTestCase.java|' + // https://github.com/google/error-prone/issues/5289 + '.*FactoryProvider.java|' + + '.*IT.java|' + // 6+ findings + '.*MockBigArrays.java|' + + '.*MoreTypes.java|' + + '.*OpenSearchNode.java|' + + '.*SnapshotsService.java|' + + '.*Terms.java|' + + '.*Tests.java|' + // 15+ findings + '.*x-content.*' // generated code + ) + } +} + +dependencies { + errorprone('com.google.errorprone:error_prone_core:2.42.0') + errorprone('tech.picnic.error-prone-support:error-prone-contrib:0.25.0') +} + +configurations.configureEach { // remove once in sync (collision resolved) + resolutionStrategy { + force 'com.google.code.findbugs:jsr305:3.0.2' + force 'com.google.errorprone:error_prone_annotations:2.42.0' + force 'com.google.errorprone:error_prone_core:2.42.0' + force 'com.google.guava:guava:33.4.0-jre' + force 'org.checkerframework:checker-qual:3.43.0' + } +} + +repositories { + mavenCentral() +} diff --git a/modules/transport-grpc/licenses/error_prone_annotations-2.24.1.jar.sha1 b/modules/transport-grpc/licenses/error_prone_annotations-2.24.1.jar.sha1 deleted file mode 100644 index 67723f6f51248..0000000000000 --- a/modules/transport-grpc/licenses/error_prone_annotations-2.24.1.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -32b299e45105aa9b0df8279c74dc1edfcf313ff0 \ No newline at end of file diff --git a/modules/transport-grpc/licenses/error_prone_annotations-2.42.0.jar.sha1 b/modules/transport-grpc/licenses/error_prone_annotations-2.42.0.jar.sha1 new file mode 100644 index 0000000000000..eeff4c5acd2bc --- /dev/null +++ b/modules/transport-grpc/licenses/error_prone_annotations-2.42.0.jar.sha1 @@ -0,0 +1 @@ +57a3eddaddd4f2d412e13d3bcefba29b5ebda1b6 \ No newline at end of file diff --git a/modules/transport-grpc/licenses/guava-33.2.1-jre.jar.sha1 b/modules/transport-grpc/licenses/guava-33.2.1-jre.jar.sha1 deleted file mode 100644 index 27d5304e326df..0000000000000 --- a/modules/transport-grpc/licenses/guava-33.2.1-jre.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -818e780da2c66c63bbb6480fef1f3855eeafa3e4 \ No newline at end of file diff --git a/modules/transport-grpc/licenses/guava-33.4.0-jre.jar.sha1 b/modules/transport-grpc/licenses/guava-33.4.0-jre.jar.sha1 new file mode 100644 index 0000000000000..42b66665a578a --- /dev/null +++ b/modules/transport-grpc/licenses/guava-33.4.0-jre.jar.sha1 @@ -0,0 +1 @@ +03fcc0a259f724c7de54a6a55ea7e26d3d5c0cac \ No newline at end of file diff --git a/plugins/arrow-flight-rpc/licenses/error_prone_annotations-2.31.0.jar.sha1 b/plugins/arrow-flight-rpc/licenses/error_prone_annotations-2.31.0.jar.sha1 deleted file mode 100644 index 4872d644799f5..0000000000000 --- a/plugins/arrow-flight-rpc/licenses/error_prone_annotations-2.31.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -c3ba307b915d6d506e98ffbb49e6d2d12edad65b \ No newline at end of file diff --git a/plugins/arrow-flight-rpc/licenses/error_prone_annotations-2.42.0.jar.sha1 b/plugins/arrow-flight-rpc/licenses/error_prone_annotations-2.42.0.jar.sha1 new file mode 100644 index 0000000000000..eeff4c5acd2bc --- /dev/null +++ b/plugins/arrow-flight-rpc/licenses/error_prone_annotations-2.42.0.jar.sha1 @@ -0,0 +1 @@ +57a3eddaddd4f2d412e13d3bcefba29b5ebda1b6 \ No newline at end of file diff --git a/plugins/arrow-flight-rpc/licenses/guava-33.3.1-jre.jar.sha1 b/plugins/arrow-flight-rpc/licenses/guava-33.3.1-jre.jar.sha1 deleted file mode 100644 index ce59350c0d430..0000000000000 --- a/plugins/arrow-flight-rpc/licenses/guava-33.3.1-jre.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -852f8b363da0111e819460021ca693cacca3e8db \ No newline at end of file diff --git a/plugins/arrow-flight-rpc/licenses/guava-33.4.0-jre.jar.sha1 b/plugins/arrow-flight-rpc/licenses/guava-33.4.0-jre.jar.sha1 new file mode 100644 index 0000000000000..42b66665a578a --- /dev/null +++ b/plugins/arrow-flight-rpc/licenses/guava-33.4.0-jre.jar.sha1 @@ -0,0 +1 @@ +03fcc0a259f724c7de54a6a55ea7e26d3d5c0cac \ No newline at end of file diff --git a/plugins/discovery-gce/licenses/guava-33.2.1-jre.jar.sha1 b/plugins/discovery-gce/licenses/guava-33.2.1-jre.jar.sha1 deleted file mode 100644 index 27d5304e326df..0000000000000 --- a/plugins/discovery-gce/licenses/guava-33.2.1-jre.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -818e780da2c66c63bbb6480fef1f3855eeafa3e4 \ No newline at end of file diff --git a/plugins/discovery-gce/licenses/guava-33.4.0-jre.jar.sha1 b/plugins/discovery-gce/licenses/guava-33.4.0-jre.jar.sha1 new file mode 100644 index 0000000000000..42b66665a578a --- /dev/null +++ b/plugins/discovery-gce/licenses/guava-33.4.0-jre.jar.sha1 @@ -0,0 +1 @@ +03fcc0a259f724c7de54a6a55ea7e26d3d5c0cac \ No newline at end of file diff --git a/plugins/ingest-attachment/licenses/guava-33.2.1-jre.jar.sha1 b/plugins/ingest-attachment/licenses/guava-33.2.1-jre.jar.sha1 deleted file mode 100644 index 27d5304e326df..0000000000000 --- a/plugins/ingest-attachment/licenses/guava-33.2.1-jre.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -818e780da2c66c63bbb6480fef1f3855eeafa3e4 \ No newline at end of file diff --git a/plugins/ingest-attachment/licenses/guava-33.4.0-jre.jar.sha1 b/plugins/ingest-attachment/licenses/guava-33.4.0-jre.jar.sha1 new file mode 100644 index 0000000000000..42b66665a578a --- /dev/null +++ b/plugins/ingest-attachment/licenses/guava-33.4.0-jre.jar.sha1 @@ -0,0 +1 @@ +03fcc0a259f724c7de54a6a55ea7e26d3d5c0cac \ No newline at end of file diff --git a/plugins/repository-azure/licenses/guava-33.2.1-jre.jar.sha1 b/plugins/repository-azure/licenses/guava-33.2.1-jre.jar.sha1 deleted file mode 100644 index 27d5304e326df..0000000000000 --- a/plugins/repository-azure/licenses/guava-33.2.1-jre.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -818e780da2c66c63bbb6480fef1f3855eeafa3e4 \ No newline at end of file diff --git a/plugins/repository-azure/licenses/guava-33.4.0-jre.jar.sha1 b/plugins/repository-azure/licenses/guava-33.4.0-jre.jar.sha1 new file mode 100644 index 0000000000000..42b66665a578a --- /dev/null +++ b/plugins/repository-azure/licenses/guava-33.4.0-jre.jar.sha1 @@ -0,0 +1 @@ +03fcc0a259f724c7de54a6a55ea7e26d3d5c0cac \ No newline at end of file diff --git a/plugins/repository-gcs/licenses/checker-qual-3.43.0.jar.sha1 b/plugins/repository-gcs/licenses/checker-qual-3.43.0.jar.sha1 new file mode 100644 index 0000000000000..b1640184e13a6 --- /dev/null +++ b/plugins/repository-gcs/licenses/checker-qual-3.43.0.jar.sha1 @@ -0,0 +1 @@ +9425eee39e56b116d2b998b7c2cebcbd11a3c98b \ No newline at end of file diff --git a/plugins/repository-gcs/licenses/checker-qual-3.49.0.jar.sha1 b/plugins/repository-gcs/licenses/checker-qual-3.49.0.jar.sha1 deleted file mode 100644 index 6d96be486ce3b..0000000000000 --- a/plugins/repository-gcs/licenses/checker-qual-3.49.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -54be36cb42c9b991c109e467e2bfa82af4cda44e \ No newline at end of file diff --git a/plugins/repository-hdfs/licenses/guava-33.2.1-jre.jar.sha1 b/plugins/repository-hdfs/licenses/guava-33.2.1-jre.jar.sha1 deleted file mode 100644 index 27d5304e326df..0000000000000 --- a/plugins/repository-hdfs/licenses/guava-33.2.1-jre.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -818e780da2c66c63bbb6480fef1f3855eeafa3e4 \ No newline at end of file diff --git a/plugins/repository-hdfs/licenses/guava-33.4.0-jre.jar.sha1 b/plugins/repository-hdfs/licenses/guava-33.4.0-jre.jar.sha1 new file mode 100644 index 0000000000000..42b66665a578a --- /dev/null +++ b/plugins/repository-hdfs/licenses/guava-33.4.0-jre.jar.sha1 @@ -0,0 +1 @@ +03fcc0a259f724c7de54a6a55ea7e26d3d5c0cac \ No newline at end of file diff --git a/server/src/main/java/org/opensearch/action/support/broadcast/node/TransportBroadcastByNodeAction.java b/server/src/main/java/org/opensearch/action/support/broadcast/node/TransportBroadcastByNodeAction.java index 379e46377ec66..8eff81939f6f9 100644 --- a/server/src/main/java/org/opensearch/action/support/broadcast/node/TransportBroadcastByNodeAction.java +++ b/server/src/main/java/org/opensearch/action/support/broadcast/node/TransportBroadcastByNodeAction.java @@ -687,8 +687,6 @@ public static final class EmptyResult implements Writeable { private EmptyResult() {} - private EmptyResult(StreamInput in) {} - @Override public void writeTo(StreamOutput out) {} diff --git a/server/src/main/java/org/opensearch/action/support/tasks/TransportTasksAction.java b/server/src/main/java/org/opensearch/action/support/tasks/TransportTasksAction.java index f33d7161660a3..00955c54720de 100644 --- a/server/src/main/java/org/opensearch/action/support/tasks/TransportTasksAction.java +++ b/server/src/main/java/org/opensearch/action/support/tasks/TransportTasksAction.java @@ -440,14 +440,6 @@ private class NodeTasksResponse extends TransportResponse { this.exceptions = exceptions; } - public String getNodeId() { - return nodeId; - } - - public List getExceptions() { - return exceptions; - } - @Override public void writeTo(StreamOutput out) throws IOException { out.writeString(nodeId); diff --git a/server/src/main/java/org/opensearch/common/inject/matcher/Matchers.java b/server/src/main/java/org/opensearch/common/inject/matcher/Matchers.java index e33e7f32ee5de..a0da60c2fdd00 100644 --- a/server/src/main/java/org/opensearch/common/inject/matcher/Matchers.java +++ b/server/src/main/java/org/opensearch/common/inject/matcher/Matchers.java @@ -29,8 +29,6 @@ package org.opensearch.common.inject.matcher; -import org.opensearch.common.SuppressForbidden; - import java.lang.annotation.Annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -72,10 +70,6 @@ public boolean matches(Object o) { public String toString() { return "any()"; } - - public Object readResolve() { - return any(); - } } /** @@ -372,12 +366,6 @@ public int hashCode() { public String toString() { return "inPackage(" + targetPackage.getName() + ")"; } - - @SuppressForbidden(reason = "ClassLoader.getDefinedPackage not available yet") - public Object readResolve() { - // TODO minJava >= 9 : use ClassLoader.getDefinedPackage and remove @SuppressForbidden - return inPackage(Package.getPackage(packageName)); - } } /** diff --git a/server/src/main/java/org/opensearch/common/inject/spi/InjectionPoint.java b/server/src/main/java/org/opensearch/common/inject/spi/InjectionPoint.java index 542cbd780a8b6..8bee89e42e974 100644 --- a/server/src/main/java/org/opensearch/common/inject/spi/InjectionPoint.java +++ b/server/src/main/java/org/opensearch/common/inject/spi/InjectionPoint.java @@ -76,12 +76,6 @@ public final class InjectionPoint { private final Member member; private final List> dependencies; - private InjectionPoint(Member member, List> dependencies, boolean optional) { - this.member = member; - this.dependencies = dependencies; - this.optional = optional; - } - InjectionPoint(TypeLiteral type, Method method) { this.member = method; diff --git a/server/src/main/java/org/opensearch/common/time/JavaDateFormatter.java b/server/src/main/java/org/opensearch/common/time/JavaDateFormatter.java index 033ea280e6172..c561488e71d33 100644 --- a/server/src/main/java/org/opensearch/common/time/JavaDateFormatter.java +++ b/server/src/main/java/org/opensearch/common/time/JavaDateFormatter.java @@ -245,15 +245,6 @@ private JavaDateFormatter( this.canCacheLastParsedFormatter = canCacheLastParsedFormatter; } - private JavaDateFormatter( - String format, - DateTimeFormatter printer, - List roundUpParsers, - List parsers - ) { - this(format, format, wrapFormatter(printer), wrapAllFormatters(roundUpParsers), wrapAllFormatters(parsers), false); - } - private JavaDateFormatter( String format, OpenSearchDateTimePrinter printer, diff --git a/server/src/main/java/org/opensearch/gateway/GatewayMetaState.java b/server/src/main/java/org/opensearch/gateway/GatewayMetaState.java index 1e2f5612ca002..bce7ddf5a3bf1 100644 --- a/server/src/main/java/org/opensearch/gateway/GatewayMetaState.java +++ b/server/src/main/java/org/opensearch/gateway/GatewayMetaState.java @@ -38,10 +38,8 @@ import org.opensearch.ExceptionsHelper; import org.opensearch.OpenSearchException; import org.opensearch.Version; -import org.opensearch.cluster.ClusterChangedEvent; import org.opensearch.cluster.ClusterName; import org.opensearch.cluster.ClusterState; -import org.opensearch.cluster.ClusterStateApplier; import org.opensearch.cluster.coordination.CoordinationMetadata; import org.opensearch.cluster.coordination.CoordinationState.PersistedState; import org.opensearch.cluster.coordination.InMemoryPersistedState; @@ -379,40 +377,6 @@ private static boolean applyPluginUpgraders( return false; } - private static class GatewayClusterApplier implements ClusterStateApplier { - - private static final Logger logger = LogManager.getLogger(GatewayClusterApplier.class); - - private final IncrementalClusterStateWriter incrementalClusterStateWriter; - - private GatewayClusterApplier(IncrementalClusterStateWriter incrementalClusterStateWriter) { - this.incrementalClusterStateWriter = incrementalClusterStateWriter; - } - - @Override - public void applyClusterState(ClusterChangedEvent event) { - if (event.state().blocks().disableStatePersistence()) { - incrementalClusterStateWriter.setIncrementalWrite(false); - return; - } - - try { - // Hack: This is to ensure that non-cluster-manager-eligible Zen2 nodes always store a current term - // that's higher than the last accepted term. - // TODO: can we get rid of this hack? - if (event.state().term() > incrementalClusterStateWriter.getPreviousManifest().getCurrentTerm()) { - incrementalClusterStateWriter.setCurrentTerm(event.state().term()); - } - - incrementalClusterStateWriter.updateClusterState(event.state()); - incrementalClusterStateWriter.setIncrementalWrite(true); - } catch (WriteStateException e) { - logger.warn("Exception occurred when storing new meta data", e); - } - } - - } - @Override public void close() throws IOException { IOUtils.close(persistedStateRegistry); diff --git a/server/src/main/java/org/opensearch/indices/replication/common/ReplicationLuceneIndex.java b/server/src/main/java/org/opensearch/indices/replication/common/ReplicationLuceneIndex.java index cc52d2bafc614..fa90c24c69492 100644 --- a/server/src/main/java/org/opensearch/indices/replication/common/ReplicationLuceneIndex.java +++ b/server/src/main/java/org/opensearch/indices/replication/common/ReplicationLuceneIndex.java @@ -374,10 +374,6 @@ public int size() { return fileMetadataMap.size(); } - public boolean isEmpty() { - return fileMetadataMap.isEmpty(); - } - public void clear() { fileMetadataMap.clear(); complete = false; diff --git a/server/src/main/java/org/opensearch/search/aggregations/InternalAggregations.java b/server/src/main/java/org/opensearch/search/aggregations/InternalAggregations.java index 9d55ee4a04506..54f2a53365774 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/InternalAggregations.java +++ b/server/src/main/java/org/opensearch/search/aggregations/InternalAggregations.java @@ -246,9 +246,5 @@ public void close() throws IOException {} public void reset() throws IOException { size = 0; } - - public long length() { - return size; - } } } diff --git a/server/src/main/java/org/opensearch/search/query/TopDocsCollectorContext.java b/server/src/main/java/org/opensearch/search/query/TopDocsCollectorContext.java index 67ece0f7e778e..186350b14caa3 100644 --- a/server/src/main/java/org/opensearch/search/query/TopDocsCollectorContext.java +++ b/server/src/main/java/org/opensearch/search/query/TopDocsCollectorContext.java @@ -237,22 +237,6 @@ static class CollapsingTopDocsCollectorContext extends TopDocsCollectorContext { private final boolean sortByScore; private final FieldDoc searchAfter; - /** - * Ctr - * @param collapseContext The collapsing context - * @param sortAndFormats The query sort - * @param numHits The number of collapsed top hits to retrieve. - * @param trackMaxScore True if max score should be tracked - */ - private CollapsingTopDocsCollectorContext( - CollapseContext collapseContext, - @Nullable SortAndFormats sortAndFormats, - int numHits, - boolean trackMaxScore - ) { - this(collapseContext, sortAndFormats, numHits, trackMaxScore, null); - } - /** * Ctr * @param collapseContext The collapsing context