From 2fc8d6f50fcfd5f0767c4d1020718aea3ba20e93 Mon Sep 17 00:00:00 2001 From: Mukund Thakur Date: Tue, 14 Apr 2026 13:55:29 -0500 Subject: [PATCH 1/2] API: Remove unnecessary EOFException FileRange constructor. --- .../java/org/apache/iceberg/io/FileRange.java | 4 +--- .../org/apache/iceberg/parquet/ParquetIO.java | 23 ++++++++----------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/api/src/main/java/org/apache/iceberg/io/FileRange.java b/api/src/main/java/org/apache/iceberg/io/FileRange.java index f6d5d9b41cca..90d5754849ed 100644 --- a/api/src/main/java/org/apache/iceberg/io/FileRange.java +++ b/api/src/main/java/org/apache/iceberg/io/FileRange.java @@ -18,7 +18,6 @@ */ package org.apache.iceberg.io; -import java.io.EOFException; import java.nio.ByteBuffer; import java.util.concurrent.CompletableFuture; import org.apache.iceberg.relocated.com.google.common.base.Preconditions; @@ -28,8 +27,7 @@ public class FileRange { private final long offset; private final int length; - public FileRange(CompletableFuture byteBuffer, long offset, int length) - throws EOFException { + public FileRange(CompletableFuture byteBuffer, long offset, int length) { Preconditions.checkNotNull(byteBuffer, "byteBuffer can't be null"); Preconditions.checkArgument( length() >= 0, "Invalid length: %s in range (must be >= 0)", length); diff --git a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java index 7e0c7f5f3fb5..1c4692ee4be0 100644 --- a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java +++ b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java @@ -18,7 +18,6 @@ */ package org.apache.iceberg.parquet; -import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -181,24 +180,22 @@ public void readVectored(List ranges, ByteBufferAllocator allo delegate.readVectored(delegateRange, allocate::allocate); } + /** + * convert parquet file ranges to iceberg file range. + * + * @param ranges input parquet file range. + * @return iceberg file range list. + */ private static List convertRanges(List ranges) { return ranges.stream() .map( parquetFileRange -> { CompletableFuture future = new CompletableFuture<>(); parquetFileRange.setDataReadFuture(future); - try { - return new FileRange( - parquetFileRange.getDataReadFuture(), - parquetFileRange.getOffset(), - parquetFileRange.getLength()); - } catch (EOFException e) { - throw new RuntimeIOException( - e, - "Failed to create range file for offset: %s and length: %s", - parquetFileRange.getOffset(), - parquetFileRange.getLength()); - } + return new FileRange( + parquetFileRange.getDataReadFuture(), + parquetFileRange.getOffset(), + parquetFileRange.getLength()); }) .collect(Collectors.toList()); } From f3290ce3e04107c335b4b7c0837cdea37e6d9f7f Mon Sep 17 00:00:00 2001 From: Mukund Thakur Date: Tue, 12 May 2026 12:30:18 -0500 Subject: [PATCH 2/2] Review comment --- .../src/main/java/org/apache/iceberg/parquet/ParquetIO.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java index 1c4692ee4be0..ecca4eb0d65a 100644 --- a/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java +++ b/parquet/src/main/java/org/apache/iceberg/parquet/ParquetIO.java @@ -180,12 +180,6 @@ public void readVectored(List ranges, ByteBufferAllocator allo delegate.readVectored(delegateRange, allocate::allocate); } - /** - * convert parquet file ranges to iceberg file range. - * - * @param ranges input parquet file range. - * @return iceberg file range list. - */ private static List convertRanges(List ranges) { return ranges.stream() .map(