HADOOP-9681. FileUtil.unTarUsingJava() should close the InputStream upon finishing. Contributed by Chuan Liu.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1499069 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Chris Nauroth 2013-07-02 19:22:17 +00:00
parent 70e9e58ff3
commit 3628553736
2 changed files with 18 additions and 10 deletions

View File

@ -784,6 +784,9 @@ Release 2.1.0-beta - 2013-07-02
HADOOP-9678. TestRPC#testStopsAllThreads intermittently fails on Windows.
(Ivan Mitic via cnauroth)
HADOOP-9681. FileUtil.unTarUsingJava() should close the InputStream upon
finishing. (Chuan Liu via cnauroth)
HADOOP-9665. Fixed BlockDecompressorStream#decompress to return -1 rather
than throw EOF at end of file. (Zhijie Shen via acmurthy)

View File

@ -662,6 +662,8 @@ private static void unTarUsingTar(File inFile, File untarDir,
private static void unTarUsingJava(File inFile, File untarDir,
boolean gzipped) throws IOException {
InputStream inputStream = null;
TarArchiveInputStream tis = null;
try {
if (gzipped) {
inputStream = new BufferedInputStream(new GZIPInputStream(
new FileInputStream(inFile)));
@ -669,12 +671,15 @@ private static void unTarUsingJava(File inFile, File untarDir,
inputStream = new BufferedInputStream(new FileInputStream(inFile));
}
TarArchiveInputStream tis = new TarArchiveInputStream(inputStream);
tis = new TarArchiveInputStream(inputStream);
for (TarArchiveEntry entry = tis.getNextTarEntry(); entry != null;) {
unpackEntries(tis, entry, untarDir);
entry = tis.getNextTarEntry();
}
} finally {
IOUtils.cleanup(LOG, tis, inputStream);
}
}
private static void unpackEntries(TarArchiveInputStream tis,