nastra commented on code in PR #6353:
URL: https://github.com/apache/iceberg/pull/6353#discussion_r1042500106


##########
parquet/src/main/java/org/apache/iceberg/parquet/ParquetReader.java:
##########
@@ -68,7 +72,7 @@ public ParquetReader(
 
   private ReadConf<T> init() {
     if (conf == null) {
-      ReadConf<T> readConf =
+      try (ReadConf<T> readConf =

Review Comment:
   ```suggestion
         try (ReadConf<T> readConf =
             new ReadConf<>(
                 input,
                 options,
                 expectedSchema,
                 filter,
                 readerFunc,
                 null,
                 nameMapping,
                 reuseContainers,
                 caseSensitive,
                 null)) {
           this.conf = readConf.copy();
         }
   ```



##########
parquet/src/main/java/org/apache/iceberg/parquet/ParquetReader.java:
##########
@@ -79,9 +83,11 @@ private ReadConf<T> init() {
               nameMapping,
               reuseContainers,
               caseSensitive,
-              null);
-      this.conf = readConf.copy();
-      return readConf;
+              null)) {
+        this.conf = readConf.copy();
+      } catch (IOException e) {
+        LOG.warn("Failed to close ReadConf", e);

Review Comment:
   The contract of `AutoCloseable` is slightly different. It says
   
   > While this interface method is declared to throw Exception, implementers 
are strongly encouraged to declare concrete implementations of the close method 
to throw more specific exceptions, or to throw no exception at all if the close 
operation cannot fail.
   
   So we don't have to throw any exception in `ReadConf.close()`. We can add 
the try-catch + logging to `ReadConf.close()` directly (because I'm not sure 
there's value to propagate that exception in this particular case). See the 
suggestions I've made. I think this is cleaner, because then you don't have to 
use a `try-with-resources` + `catch` to mention that the underlying 
`ParquetFileReader` failed to be closed.



##########
parquet/src/main/java/org/apache/iceberg/parquet/ReadConf.java:
##########
@@ -257,4 +257,11 @@ private List<Map<ColumnPath, ColumnChunkMetaData>> 
getColumnChunkMetadataForRowG
     }
     return listBuilder.build();
   }
+
+  @Override

Review Comment:
   ```suggestion
     @Override
     public void close() {
       if (reader != null) {
         try {
           reader.close();
         } catch (IOException e) {
           LOG.warn("Failed to close ReadConf", e);
         }
       }
     }
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to