From 8840dcd3a38b097fe6539f35834c2752ef361199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E4=BF=9D?= Date: Wed, 29 May 2019 09:02:45 +0800 Subject: [PATCH 1/2] [HBASE-22476] HBase-backup module's class "org.apache.hadoop.hbase.backup.impl.BackupManifest" FSDataInputStream is not close. --- .../java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java index 4c382199f774..7e2472db31c3 100644 --- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java +++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java @@ -438,6 +438,7 @@ public BackupManifest(FileSystem fs, Path backupPath) throws BackupException { long len = subFile.getLen(); byte[] pbBytes = new byte[(int) len]; in.readFully(pbBytes); + in.close(); BackupProtos.BackupImage proto = null; try { proto = BackupProtos.BackupImage.parseFrom(pbBytes); From d6f144765668fc2b45e13aaad5fdcb065b56925c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E4=BF=9D?= Date: Thu, 30 May 2019 11:24:11 +0800 Subject: [PATCH 2/2] [HBASE-22476] HBase-backup module's class "org.apache.hadoop.hbase.backup.impl.BackupManifest" FSDataInputStream is not close. --- .../apache/hadoop/hbase/backup/impl/BackupManifest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java index 7e2472db31c3..049d38bcf172 100644 --- a/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java +++ b/hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/impl/BackupManifest.java @@ -434,11 +434,13 @@ public BackupManifest(FileSystem fs, Path backupPath) throws BackupException { for (FileStatus subFile : subFiles) { if (subFile.getPath().getName().equals(MANIFEST_FILE_NAME)) { // load and set manifest field from file content - FSDataInputStream in = fs.open(subFile.getPath()); long len = subFile.getLen(); byte[] pbBytes = new byte[(int) len]; - in.readFully(pbBytes); - in.close(); + try (FSDataInputStream in = fs.open(subFile.getPath())) { + in.readFully(pbBytes); + } catch (IOException e) { + throw new BackupException(e.getMessage()); + } BackupProtos.BackupImage proto = null; try { proto = BackupProtos.BackupImage.parseFrom(pbBytes);