From dd149adeace8727864371c5a1484c6534f8b450b Mon Sep 17 00:00:00 2001 From: Tsuyoshi Ozawa Date: Wed, 2 Sep 2015 02:01:51 +0900 Subject: [PATCH] HADOOP-10365. BufferedOutputStream in FileUtil#unpackEntries() should be closed in finally block. Contributed by Kiran Kumar M R and Sanghyun Yun. --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../main/java/org/apache/hadoop/fs/FileUtil.java | 14 +++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 4eef96495bd..70252d6ea17 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1123,6 +1123,9 @@ Release 2.7.2 - UNRELEASED HADOOP-12359. hadoop fs -getmerge doc is wrong. (Jagadesh Kiran N via aajisaka) + HADOOP-10365. BufferedOutputStream in FileUtil#unpackEntries() should be + closed in finally block. (Kiran Kumar M R and Sanghyun Yun via ozawa) + Release 2.7.1 - 2015-07-06 INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java index 8abb4eba1c8..3c0e90da2d9 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java @@ -742,15 +742,15 @@ public class FileUtil { int count; byte data[] = new byte[2048]; - BufferedOutputStream outputStream = new BufferedOutputStream( - new FileOutputStream(outputFile)); + try (BufferedOutputStream outputStream = new BufferedOutputStream( + new FileOutputStream(outputFile));) { - while ((count = tis.read(data)) != -1) { - outputStream.write(data, 0, count); + while ((count = tis.read(data)) != -1) { + outputStream.write(data, 0, count); + } + + outputStream.flush(); } - - outputStream.flush(); - outputStream.close(); } /**