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

nastra pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new 2f05390e07 Build: Ban Preconditions.checkState with %d placeholder 
(#16407)
2f05390e07 is described below

commit 2f05390e0730200866f52a7e8585480bd6c4596e
Author: Yuya Ebihara <[email protected]>
AuthorDate: Thu May 21 16:34:00 2026 +0900

    Build: Ban Preconditions.checkState with %d placeholder (#16407)
---
 .baseline/checkstyle/checkstyle.xml                                 | 6 ++++++
 api/src/main/java/org/apache/iceberg/PartitionStatistics.java       | 2 +-
 core/src/main/java/org/apache/iceberg/PartitionStatsHandler.java    | 2 +-
 .../main/java/org/apache/iceberg/encryption/AesGcmInputFile.java    | 2 +-
 .../main/java/org/apache/iceberg/encryption/AesGcmInputStream.java  | 2 +-
 .../apache/iceberg/flink/maintenance/operator/BaseCoordinator.java  | 2 +-
 .../iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java       | 4 ++--
 .../apache/iceberg/flink/maintenance/operator/BaseCoordinator.java  | 2 +-
 .../iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java       | 4 ++--
 .../apache/iceberg/flink/maintenance/operator/BaseCoordinator.java  | 2 +-
 .../iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java       | 4 ++--
 11 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/.baseline/checkstyle/checkstyle.xml 
b/.baseline/checkstyle/checkstyle.xml
index f94848450a..5760ef6363 100644
--- a/.baseline/checkstyle/checkstyle.xml
+++ b/.baseline/checkstyle/checkstyle.xml
@@ -88,6 +88,12 @@
         <property name="format" 
value="Preconditions\.checkArgument\([^;]+%d[^;]+\);"/>
         <property name="message" value="Preconditions.checkArgument does not 
support %d. use %s instead"/>
     </module>
+    <module name="RegexpMultiline">
+        <property name="fileExtensions" value="java"/>
+        <property name="matchAcrossLines" value="true"/>
+        <property name="format" 
value="Preconditions\.checkState\([^;]+%d[^;]+\);"/>
+        <property name="message" value="Preconditions.checkState does not 
support %d. use %s instead"/>
+    </module>
     <module name="RegexpMultiline">
         <property name="format" 
value="^\s*import\s+static\s+(?!\Qorg.assertj.core.api.Assertions.\E).*\.assertThatThrownBy;"/>
         <property name="message" value="assertThatThrownBy() should be 
statically imported from org.assertj.core.api.Assertions"/>
diff --git a/api/src/main/java/org/apache/iceberg/PartitionStatistics.java 
b/api/src/main/java/org/apache/iceberg/PartitionStatistics.java
index b965f32161..bfff812e39 100644
--- a/api/src/main/java/org/apache/iceberg/PartitionStatistics.java
+++ b/api/src/main/java/org/apache/iceberg/PartitionStatistics.java
@@ -58,7 +58,7 @@ public interface PartitionStatistics extends StructLike {
 
   static Schema schema(Types.StructType unifiedPartitionType, int 
formatVersion) {
     Preconditions.checkState(!unifiedPartitionType.fields().isEmpty(), "Table 
must be partitioned");
-    Preconditions.checkState(formatVersion > 0, "Invalid format version: %d", 
formatVersion);
+    Preconditions.checkState(formatVersion > 0, "Invalid format version: %s", 
formatVersion);
 
     if (formatVersion <= 2) {
       return v2Schema(unifiedPartitionType);
diff --git a/core/src/main/java/org/apache/iceberg/PartitionStatsHandler.java 
b/core/src/main/java/org/apache/iceberg/PartitionStatsHandler.java
index 9420095f94..a3e298d72b 100644
--- a/core/src/main/java/org/apache/iceberg/PartitionStatsHandler.java
+++ b/core/src/main/java/org/apache/iceberg/PartitionStatsHandler.java
@@ -186,7 +186,7 @@ public class PartitionStatsHandler {
     Preconditions.checkState(!unifiedPartitionType.fields().isEmpty(), "Table 
must be partitioned");
     Preconditions.checkState(
         formatVersion > 0 && formatVersion <= 
TableMetadata.SUPPORTED_TABLE_FORMAT_VERSION,
-        "Invalid format version: %d",
+        "Invalid format version: %s",
         formatVersion);
 
     if (formatVersion <= 2) {
diff --git 
a/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputFile.java 
b/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputFile.java
index 8678a6e336..f2d8a02a30 100644
--- a/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputFile.java
+++ b/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputFile.java
@@ -69,7 +69,7 @@ public class AesGcmInputFile implements InputFile {
     long ciphertextLength = encryptedLength();
     Preconditions.checkState(
         ciphertextLength >= Ciphers.MIN_STREAM_LENGTH,
-        "Invalid encrypted stream: %d is shorter than the minimum possible 
stream length",
+        "Invalid encrypted stream: %s is shorter than the minimum possible 
stream length",
         ciphertextLength);
     return new AesGcmInputStream(sourceFile.newStream(), ciphertextLength, 
dataKey, fileAADPrefix);
   }
diff --git 
a/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputStream.java 
b/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputStream.java
index 1f52ab3682..e5917a2fc5 100644
--- a/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputStream.java
+++ b/core/src/main/java/org/apache/iceberg/encryption/AesGcmInputStream.java
@@ -79,7 +79,7 @@ public class AesGcmInputStream extends SeekableInputStream {
     int plainBlockSize = ByteBuffer.wrap(headerBytes, 4, 
4).order(ByteOrder.LITTLE_ENDIAN).getInt();
     Preconditions.checkState(
         plainBlockSize == Ciphers.PLAIN_BLOCK_SIZE,
-        "Invalid GCM stream: block size %d != %d",
+        "Invalid GCM stream: block size %s != %s",
         plainBlockSize,
         Ciphers.PLAIN_BLOCK_SIZE);
   }
diff --git 
a/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
 
b/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
index 21e9ca43f3..0ea8eb3c5b 100644
--- 
a/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
+++ 
b/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
@@ -226,7 +226,7 @@ abstract class BaseCoordinator implements 
OperatorCoordinator {
       int attemptNumber = gateway.getExecution().getAttemptNumber();
       Preconditions.checkState(
           !gateways.containsKey(attemptNumber),
-          "Coordinator of %s already has a subtask gateway for (#%d)",
+          "Coordinator of %s already has a subtask gateway for (#%s)",
           operatorName,
           attemptNumber);
       LOG.debug("Coordinator of {} registers gateway for attempt {}", 
operatorName, attemptNumber);
diff --git 
a/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
 
b/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
index 2dcc75b7f6..3c33fe7674 100644
--- 
a/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
+++ 
b/flink/v1.20/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
@@ -457,7 +457,7 @@ class DataStatisticsCoordinator implements 
OperatorCoordinator {
       int attemptNumber = gateway.getExecution().getAttemptNumber();
       Preconditions.checkState(
           !gateways[subtaskIndex].containsKey(attemptNumber),
-          "Coordinator of %s already has a subtask gateway for %d (#%d)",
+          "Coordinator of %s already has a subtask gateway for %s (#%s)",
           operatorName,
           subtaskIndex,
           attemptNumber);
@@ -481,7 +481,7 @@ class DataStatisticsCoordinator implements 
OperatorCoordinator {
     private OperatorCoordinator.SubtaskGateway getSubtaskGateway(int 
subtaskIndex) {
       Preconditions.checkState(
           !gateways[subtaskIndex].isEmpty(),
-          "Coordinator of %s subtask %d is not ready yet to receive events",
+          "Coordinator of %s subtask %s is not ready yet to receive events",
           operatorName,
           subtaskIndex);
       return Iterables.getOnlyElement(gateways[subtaskIndex].values());
diff --git 
a/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
 
b/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
index 21e9ca43f3..0ea8eb3c5b 100644
--- 
a/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
+++ 
b/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
@@ -226,7 +226,7 @@ abstract class BaseCoordinator implements 
OperatorCoordinator {
       int attemptNumber = gateway.getExecution().getAttemptNumber();
       Preconditions.checkState(
           !gateways.containsKey(attemptNumber),
-          "Coordinator of %s already has a subtask gateway for (#%d)",
+          "Coordinator of %s already has a subtask gateway for (#%s)",
           operatorName,
           attemptNumber);
       LOG.debug("Coordinator of {} registers gateway for attempt {}", 
operatorName, attemptNumber);
diff --git 
a/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
 
b/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
index 2dcc75b7f6..3c33fe7674 100644
--- 
a/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
+++ 
b/flink/v2.0/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
@@ -457,7 +457,7 @@ class DataStatisticsCoordinator implements 
OperatorCoordinator {
       int attemptNumber = gateway.getExecution().getAttemptNumber();
       Preconditions.checkState(
           !gateways[subtaskIndex].containsKey(attemptNumber),
-          "Coordinator of %s already has a subtask gateway for %d (#%d)",
+          "Coordinator of %s already has a subtask gateway for %s (#%s)",
           operatorName,
           subtaskIndex,
           attemptNumber);
@@ -481,7 +481,7 @@ class DataStatisticsCoordinator implements 
OperatorCoordinator {
     private OperatorCoordinator.SubtaskGateway getSubtaskGateway(int 
subtaskIndex) {
       Preconditions.checkState(
           !gateways[subtaskIndex].isEmpty(),
-          "Coordinator of %s subtask %d is not ready yet to receive events",
+          "Coordinator of %s subtask %s is not ready yet to receive events",
           operatorName,
           subtaskIndex);
       return Iterables.getOnlyElement(gateways[subtaskIndex].values());
diff --git 
a/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
 
b/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
index 21e9ca43f3..0ea8eb3c5b 100644
--- 
a/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
+++ 
b/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/maintenance/operator/BaseCoordinator.java
@@ -226,7 +226,7 @@ abstract class BaseCoordinator implements 
OperatorCoordinator {
       int attemptNumber = gateway.getExecution().getAttemptNumber();
       Preconditions.checkState(
           !gateways.containsKey(attemptNumber),
-          "Coordinator of %s already has a subtask gateway for (#%d)",
+          "Coordinator of %s already has a subtask gateway for (#%s)",
           operatorName,
           attemptNumber);
       LOG.debug("Coordinator of {} registers gateway for attempt {}", 
operatorName, attemptNumber);
diff --git 
a/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
 
b/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
index 2dcc75b7f6..3c33fe7674 100644
--- 
a/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
+++ 
b/flink/v2.1/flink/src/main/java/org/apache/iceberg/flink/sink/shuffle/DataStatisticsCoordinator.java
@@ -457,7 +457,7 @@ class DataStatisticsCoordinator implements 
OperatorCoordinator {
       int attemptNumber = gateway.getExecution().getAttemptNumber();
       Preconditions.checkState(
           !gateways[subtaskIndex].containsKey(attemptNumber),
-          "Coordinator of %s already has a subtask gateway for %d (#%d)",
+          "Coordinator of %s already has a subtask gateway for %s (#%s)",
           operatorName,
           subtaskIndex,
           attemptNumber);
@@ -481,7 +481,7 @@ class DataStatisticsCoordinator implements 
OperatorCoordinator {
     private OperatorCoordinator.SubtaskGateway getSubtaskGateway(int 
subtaskIndex) {
       Preconditions.checkState(
           !gateways[subtaskIndex].isEmpty(),
-          "Coordinator of %s subtask %d is not ready yet to receive events",
+          "Coordinator of %s subtask %s is not ready yet to receive events",
           operatorName,
           subtaskIndex);
       return Iterables.getOnlyElement(gateways[subtaskIndex].values());

Reply via email to