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

stevel pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.3 by this push:
     new adab0babc74 HADOOP-18809. S3A prefetch read/write file operations 
should guard channel close (#5853)
adab0babc74 is described below

commit adab0babc74e609ddc93921643474477393bb817
Author: Viraj Jasani <vjas...@apache.org>
AuthorDate: Tue Jul 18 07:16:12 2023 -0600

    HADOOP-18809. S3A prefetch read/write file operations should guard channel 
close (#5853)
    
    Contributed by Viraj Jasani
---
 .../fs/impl/prefetch/SingleFilePerBlockCache.java      | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/impl/prefetch/SingleFilePerBlockCache.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/impl/prefetch/SingleFilePerBlockCache.java
index a84a79eb778..6aacb4d7c84 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/impl/prefetch/SingleFilePerBlockCache.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/impl/prefetch/SingleFilePerBlockCache.java
@@ -271,12 +271,12 @@ public class SingleFilePerBlockCache implements 
BlockCache {
   protected int readFile(Path path, ByteBuffer buffer) throws IOException {
     int numBytesRead = 0;
     int numBytes;
-    FileChannel channel = FileChannel.open(path, StandardOpenOption.READ);
-    while ((numBytes = channel.read(buffer)) > 0) {
-      numBytesRead += numBytes;
+    try (FileChannel channel = FileChannel.open(path, 
StandardOpenOption.READ)) {
+      while ((numBytes = channel.read(buffer)) > 0) {
+        numBytesRead += numBytes;
+      }
+      buffer.limit(buffer.position());
     }
-    buffer.limit(buffer.position());
-    channel.close();
     return numBytesRead;
   }
 
@@ -460,11 +460,11 @@ public class SingleFilePerBlockCache implements 
BlockCache {
 
   protected void writeFile(Path path, ByteBuffer buffer) throws IOException {
     buffer.rewind();
-    WritableByteChannel writeChannel = Files.newByteChannel(path, 
CREATE_OPTIONS);
-    while (buffer.hasRemaining()) {
-      writeChannel.write(buffer);
+    try (WritableByteChannel writeChannel = Files.newByteChannel(path, 
CREATE_OPTIONS)) {
+      while (buffer.hasRemaining()) {
+        writeChannel.write(buffer);
+      }
     }
-    writeChannel.close();
   }
 
   /**


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to