This is an automated email from the ASF dual-hosted git repository.

kenn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 0fb490f927f [ErrorProne]  Enable EmptyCatch Error Prone check and 
document ignored exceptions (#37754)
0fb490f927f is described below

commit 0fb490f927fbb6c77aca968cf10f9d553192cd40
Author: RadosÅ‚aw Stankiewicz <[email protected]>
AuthorDate: Tue Mar 17 15:12:20 2026 +0100

    [ErrorProne]  Enable EmptyCatch Error Prone check and document ignored 
exceptions (#37754)
---
 buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy | 1 -
 .../apache/beam/examples/twitterstreamgenerator/TwitterConnection.java  | 1 +
 .../java/org/apache/beam/runners/flink/metrics/MetricsAccumulator.java  | 1 +
 .../java/src/main/java/org/apache/beam/runners/prism/PrismExecutor.java | 2 ++
 .../java/org/apache/beam/sdk/extensions/gcp/util/GceMetadataUtil.java   | 1 +
 .../org/apache/beam/sdk/io/aws2/common/AsyncBatchWriteHandlerTest.java  | 1 +
 .../apache/beam/sdk/io/gcp/bigtable/changestreams/dao/DaoFactory.java   | 1 +
 .../src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java     | 1 +
 .../src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.java     | 1 +
 .../main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal.java   | 1 +
 .../src/main/java/org/apache/beam/sdk/io/iceberg/FilterUtils.java       | 1 +
 .../io/rrio/src/main/java/org/apache/beam/io/requestresponse/Call.java  | 2 ++
 .../rrio/src/main/java/org/apache/beam/io/requestresponse/Repeater.java | 1 +
 .../apache/beam/io/requestresponse/EchoGRPCCallerWithSetupTeardown.java | 1 +
 14 files changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy 
b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
index 2705752e26b..9e29dd9fc2a 100644
--- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
@@ -1538,7 +1538,6 @@ class BeamModulePlugin implements Plugin<Project> {
             "ComparableType",
             "DoNotMockAutoValue",
             "EmptyBlockTag",
-            "EmptyCatch",
             "EqualsGetClass",
             "EqualsUnsafeCast",
             "EscapedEntity",
diff --git 
a/examples/java/twitter/src/main/java/org/apache/beam/examples/twitterstreamgenerator/TwitterConnection.java
 
b/examples/java/twitter/src/main/java/org/apache/beam/examples/twitterstreamgenerator/TwitterConnection.java
index 11453cd4785..0e12204deac 100644
--- 
a/examples/java/twitter/src/main/java/org/apache/beam/examples/twitterstreamgenerator/TwitterConnection.java
+++ 
b/examples/java/twitter/src/main/java/org/apache/beam/examples/twitterstreamgenerator/TwitterConnection.java
@@ -73,6 +73,7 @@ class TwitterConnection {
             try {
               queue.offer(status);
             } catch (Exception ignored) {
+              // Ignore exceptions during enqueueing.
             }
           }
 
diff --git 
a/runners/flink/src/main/java/org/apache/beam/runners/flink/metrics/MetricsAccumulator.java
 
b/runners/flink/src/main/java/org/apache/beam/runners/flink/metrics/MetricsAccumulator.java
index 458f7d82e5f..19f864c301d 100644
--- 
a/runners/flink/src/main/java/org/apache/beam/runners/flink/metrics/MetricsAccumulator.java
+++ 
b/runners/flink/src/main/java/org/apache/beam/runners/flink/metrics/MetricsAccumulator.java
@@ -56,6 +56,7 @@ public class MetricsAccumulator implements 
SimpleAccumulator<MetricsContainerSte
     try {
       super.clone();
     } catch (CloneNotSupportedException ignored) {
+      // Ignore CloneNotSupportedException
     }
     MetricsAccumulator metricsAccumulator = new MetricsAccumulator();
     metricsAccumulator.getLocalValue().updateAll(this.getLocalValue());
diff --git 
a/runners/prism/java/src/main/java/org/apache/beam/runners/prism/PrismExecutor.java
 
b/runners/prism/java/src/main/java/org/apache/beam/runners/prism/PrismExecutor.java
index 87551cfc03c..0e13b526b0f 100644
--- 
a/runners/prism/java/src/main/java/org/apache/beam/runners/prism/PrismExecutor.java
+++ 
b/runners/prism/java/src/main/java/org/apache/beam/runners/prism/PrismExecutor.java
@@ -79,6 +79,7 @@ abstract class PrismExecutor {
     try {
       boolean ignored = executorService.awaitTermination(5000L, 
TimeUnit.MILLISECONDS);
     } catch (InterruptedException ignored) {
+      // Ignore InterruptedException during shutdown.
     }
     if (process == null) {
       return;
@@ -90,6 +91,7 @@ abstract class PrismExecutor {
     try {
       process.waitFor();
     } catch (InterruptedException ignored) {
+      // Ignore InterruptedException during shutdown.
     }
   }
 
diff --git 
a/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/util/GceMetadataUtil.java
 
b/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/util/GceMetadataUtil.java
index f9d8e5ac350..aad26a1c30c 100644
--- 
a/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/util/GceMetadataUtil.java
+++ 
b/sdks/java/extensions/google-cloud-platform-core/src/main/java/org/apache/beam/sdk/extensions/gcp/util/GceMetadataUtil.java
@@ -60,6 +60,7 @@ public class GceMetadataUtil {
         }
       }
     } catch (IOException ignored) {
+      LOG.debug("Failed to fetch GCE metadata.", ignored);
     }
 
     // The return value can be an empty string, which may mean it's running on 
a non DataflowRunner.
diff --git 
a/sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/common/AsyncBatchWriteHandlerTest.java
 
b/sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/common/AsyncBatchWriteHandlerTest.java
index 056d856e442..091872a8747 100644
--- 
a/sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/common/AsyncBatchWriteHandlerTest.java
+++ 
b/sdks/java/io/amazon-web-services2/src/test/java/org/apache/beam/sdk/io/aws2/common/AsyncBatchWriteHandlerTest.java
@@ -253,6 +253,7 @@ public class AsyncBatchWriteHandlerTest {
         fun.run();
         return;
       } catch (AssertionError | InterruptedException t) {
+        // Ignore and try again.
       }
     }
     fun.run();
diff --git 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/DaoFactory.java
 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/DaoFactory.java
index c4d83c298c8..1545c8eb86d 100644
--- 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/DaoFactory.java
+++ 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigtable/changestreams/dao/DaoFactory.java
@@ -72,6 +72,7 @@ public class DaoFactory implements Serializable, 
AutoCloseable {
         BigtableChangeStreamAccessor.getOrCreate(changeStreamConfig).close();
       }
     } catch (Exception ignored) {
+      // Ignore exceptions on close.
     }
   }
 
diff --git 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java
 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java
index 5b8eda8d634..197fcab3ab2 100644
--- 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java
+++ 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java
@@ -1540,6 +1540,7 @@ public class FhirIO {
         try {
           statusCode = Integer.parseInt(status.substring(0, 3));
         } catch (IndexOutOfBoundsException | NumberFormatException ignored) {
+          // Ignore parsing exception so we can return the default 404
         }
         return statusCode;
       }
diff --git 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.java
 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.java
index 2736424e8dc..a55de012d38 100644
--- 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.java
+++ 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsub.java
@@ -340,6 +340,7 @@ public class TestPubsub implements TestRule {
       try {
         Thread.sleep(1000);
       } catch (InterruptedException ignored) {
+        // Ignore interrupt and continue polling.
       }
     }
 
diff --git 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal.java
 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal.java
index 1d430ac4a6b..f11ba9555a8 100644
--- 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal.java
+++ 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/pubsub/TestPubsubSignal.java
@@ -323,6 +323,7 @@ public class TestPubsubSignal implements TestRule {
       try {
         Thread.sleep(1000);
       } catch (InterruptedException ignored) {
+        // Ignore interrupt and continue polling.
       }
     }
 
diff --git 
a/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/FilterUtils.java
 
b/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/FilterUtils.java
index 855fcf7d1e1..947c14f2d1d 100644
--- 
a/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/FilterUtils.java
+++ 
b/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/FilterUtils.java
@@ -400,6 +400,7 @@ public class FilterUtils {
         datetime = LocalDateTime.parse(value, formatter);
         return datetime;
       } catch (DateTimeParseException ignored) {
+        // Ignore and try the next formatter.
       }
     }
     return LocalDateTime.of(LocalDate.parse(value), LocalTime.MIN);
diff --git 
a/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Call.java 
b/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Call.java
index 07aa66cbe2f..b515957459b 100644
--- 
a/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Call.java
+++ 
b/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Call.java
@@ -297,6 +297,7 @@ class Call<RequestT, ResponseT> extends 
PTransform<PCollection<RequestT>, Result
       try {
         boolean ignored = executor.awaitTermination(3L, TimeUnit.SECONDS);
       } catch (InterruptedException ignored) {
+        // Ignore the interrupt during teardown.
       }
     }
 
@@ -352,6 +353,7 @@ class Call<RequestT, ResponseT> extends 
PTransform<PCollection<RequestT>, Result
           incIfPresent(sleeperCounter);
           sleeper.sleep(backOff.nextBackOffMillis());
         } catch (InterruptedException ignored) {
+          // Ignore the interrupt and try again.
         }
       }
     }
diff --git 
a/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Repeater.java
 
b/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Repeater.java
index e9a7666d2a1..0627d77fed2 100644
--- 
a/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Repeater.java
+++ 
b/sdks/java/io/rrio/src/main/java/org/apache/beam/io/requestresponse/Repeater.java
@@ -117,6 +117,7 @@ abstract class Repeater<InputT, OutputT> {
         }
         latestError = Optional.of(e);
       } catch (InterruptedException ignored) {
+        // Ignore the interrupt and try again.
       }
       incIfPresent(getBackoffCounter());
       waitFor = getBackOff().nextBackOffMillis();
diff --git 
a/sdks/java/io/rrio/src/test/java/org/apache/beam/io/requestresponse/EchoGRPCCallerWithSetupTeardown.java
 
b/sdks/java/io/rrio/src/test/java/org/apache/beam/io/requestresponse/EchoGRPCCallerWithSetupTeardown.java
index 22e2ff9b1a1..b2c2b634bb0 100644
--- 
a/sdks/java/io/rrio/src/test/java/org/apache/beam/io/requestresponse/EchoGRPCCallerWithSetupTeardown.java
+++ 
b/sdks/java/io/rrio/src/test/java/org/apache/beam/io/requestresponse/EchoGRPCCallerWithSetupTeardown.java
@@ -90,6 +90,7 @@ class EchoGRPCCallerWithSetupTeardown implements 
Caller<EchoRequest, EchoRespons
       try {
         boolean ignored = cachedManagedChannel.awaitTermination(1L, 
TimeUnit.SECONDS);
       } catch (InterruptedException ignored) {
+        // Ignore the InterruptedException on shutdown.
       }
     }
   }

Reply via email to