diff --git a/runners/spark/src/main/java/org/apache/beam/runners/spark/metrics/MetricsAccumulator.java b/runners/spark/src/main/java/org/apache/beam/runners/spark/metrics/MetricsAccumulator.java index dbdfe11a585c..612d71b1aea1 100644 --- a/runners/spark/src/main/java/org/apache/beam/runners/spark/metrics/MetricsAccumulator.java +++ b/runners/spark/src/main/java/org/apache/beam/runners/spark/metrics/MetricsAccumulator.java @@ -17,6 +17,7 @@ */ package org.apache.beam.runners.spark.metrics; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import org.apache.beam.runners.core.metrics.MetricsContainerStepMap; import org.apache.beam.runners.spark.SparkPipelineOptions; @@ -82,6 +83,10 @@ public static void init(SparkPipelineOptions opts, JavaSparkContext jsc) { } } + @SuppressFBWarnings( + value = "MS_EXPOSE_REP", + justification = + "Spark merges only the accumulator instance the driver registered. A copy would collect metrics that nothing reports.") public static MetricsContainerStepMapAccumulator getInstance() { if (instance == null) { throw new IllegalStateException("Metrics accumulator has not been instantiated"); diff --git a/runners/spark/src/main/java/org/apache/beam/runners/spark/structuredstreaming/metrics/MetricsAccumulator.java b/runners/spark/src/main/java/org/apache/beam/runners/spark/structuredstreaming/metrics/MetricsAccumulator.java index 63407b9f14d8..e8cbd895082a 100644 --- a/runners/spark/src/main/java/org/apache/beam/runners/spark/structuredstreaming/metrics/MetricsAccumulator.java +++ b/runners/spark/src/main/java/org/apache/beam/runners/spark/structuredstreaming/metrics/MetricsAccumulator.java @@ -17,6 +17,7 @@ */ package org.apache.beam.runners.spark.structuredstreaming.metrics; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.apache.beam.runners.core.metrics.MetricsContainerStepMap; import org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.annotations.VisibleForTesting; import org.apache.spark.sql.SparkSession; @@ -85,6 +86,10 @@ public MetricsContainerStepMap value() { * Get the {@link MetricsAccumulator} on this driver. If there's no such accumulator yet, it will * be created and registered using the provided {@link SparkSession}. */ + @SuppressFBWarnings( + value = "MS_EXPOSE_REP", + justification = + "Spark merges only the accumulator instance the driver registered. A copy would collect metrics that nothing reports.") public static MetricsAccumulator getInstance(SparkSession session) { MetricsAccumulator current = instance; if (current != null) { diff --git a/sdks/java/build-tools/src/main/resources/beam/spotbugs-filter.xml b/sdks/java/build-tools/src/main/resources/beam/spotbugs-filter.xml index 4393ec6a624e..5f6f368228e5 100644 --- a/sdks/java/build-tools/src/main/resources/beam/spotbugs-filter.xml +++ b/sdks/java/build-tools/src/main/resources/beam/spotbugs-filter.xml @@ -57,7 +57,6 @@ -