Forráskód Böngészése

HDFS-11229. HDFS-11056 failed to close meta file. Contributed by Wei-Chiu Chuang.

(cherry picked from commit 292bd78b4494ba1a1073b32b3f89d95e72f3204d)
Wei-Chiu Chuang 8 éve
szülő
commit
fa3b2bee61

+ 4 - 3
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java

@@ -1186,9 +1186,10 @@ class FsDatasetImpl implements FsDatasetSpi<FsVolumeImpl> {
     int offsetInChecksum = BlockMetadataHeader.getHeaderSize() +
         (int)(onDiskLen / bytesPerChecksum * checksumSize);
     byte[] lastChecksum = new byte[checksumSize];
-    RandomAccessFile raf = new RandomAccessFile(metaFile, "r");
-    raf.seek(offsetInChecksum);
-    raf.read(lastChecksum, 0, checksumSize);
+    try (RandomAccessFile raf = new RandomAccessFile(metaFile, "r")) {
+      raf.seek(offsetInChecksum);
+      raf.read(lastChecksum, 0, checksumSize);
+    }
     return lastChecksum;
   }