You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/10/07 10:22:45 UTC
kylin git commit: KYLIN-2051 Fix potentially ineffective call in
ZipFileUtils class
Repository: kylin
Updated Branches:
refs/heads/master 483e63654 -> 4fae26781
KYLIN-2051 Fix potentially ineffective call in ZipFileUtils class
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/4fae2678
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/4fae2678
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/4fae2678
Branch: refs/heads/master
Commit: 4fae26781af999c7274c176d4bf6e87e28bb9bfe
Parents: 483e636
Author: lidongsjtu <li...@apache.org>
Authored: Fri Oct 7 18:22:39 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Fri Oct 7 18:22:39 2016 +0800
----------------------------------------------------------------------
.../apache/kylin/common/util/ZipFileUtils.java | 57 ++++++++++++--------
1 file changed, 34 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/4fae2678/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
index 401c556..7ee770d 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
@@ -39,32 +39,41 @@ public class ZipFileUtils {
if (!validateZipFilename(zipFilename)) {
throw new RuntimeException("Zipfile must end with .zip");
}
- ZipOutputStream zipFile = new ZipOutputStream(new FileOutputStream(zipFilename));
- compressDirectoryToZipfile(normDir(new File(sourceDir).getParent()), normDir(sourceDir), zipFile);
- IOUtils.closeQuietly(zipFile);
+ ZipOutputStream zipFile = null;
+ try {
+ zipFile = new ZipOutputStream(new FileOutputStream(zipFilename));
+ compressDirectoryToZipfile(normDir(new File(sourceDir).getParent()), normDir(sourceDir), zipFile);
+ } finally {
+ IOUtils.closeQuietly(zipFile);
+ }
}
public static void decompressZipfileToDirectory(String zipFileName, File outputFolder) throws IOException {
+ ZipInputStream zipInputStream = null;
+ try {
+ zipInputStream = new ZipInputStream(new FileInputStream(zipFileName));
+ ZipEntry zipEntry = null;
+ while ((zipEntry = zipInputStream.getNextEntry()) != null) {
+ logger.info("decompressing " + zipEntry.getName() + " is directory:" + zipEntry.isDirectory() + " available: " + zipInputStream.available());
- ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFileName));
- ZipEntry zipEntry = null;
- while ((zipEntry = zipInputStream.getNextEntry()) != null) {
- logger.info("decompressing " + zipEntry.getName() + " is directory:" + zipEntry.isDirectory() + " available: " + zipInputStream.available());
-
- File temp = new File(outputFolder, zipEntry.getName());
- if (zipEntry.isDirectory()) {
- temp.mkdirs();
- } else {
- temp.getParentFile().mkdirs();
- temp.createNewFile();
- temp.setLastModified(zipEntry.getTime());
- FileOutputStream outputStream = new FileOutputStream(temp);
- IOUtils.copy(zipInputStream, outputStream);
- IOUtils.closeQuietly(outputStream);
+ File temp = new File(outputFolder, zipEntry.getName());
+ if (zipEntry.isDirectory()) {
+ temp.mkdirs();
+ } else {
+ temp.getParentFile().mkdirs();
+ temp.createNewFile();
+ temp.setLastModified(zipEntry.getTime());
+ FileOutputStream outputStream = new FileOutputStream(temp);
+ try {
+ IOUtils.copy(zipInputStream, outputStream);
+ } finally {
+ IOUtils.closeQuietly(outputStream);
+ }
+ }
}
+ } finally {
+ IOUtils.closeQuietly(zipInputStream);
}
- IOUtils.closeQuietly(zipInputStream);
-
}
private static void compressDirectoryToZipfile(String rootDir, String sourceDir, ZipOutputStream out) throws IOException {
@@ -75,10 +84,12 @@ public class ZipFileUtils {
ZipEntry entry = new ZipEntry(normDir(StringUtils.isEmpty(rootDir) ? sourceDir : sourceDir.replace(rootDir, "")) + sourceFile.getName());
entry.setTime(sourceFile.lastModified());
out.putNextEntry(entry);
-
FileInputStream in = new FileInputStream(sourceDir + sourceFile.getName());
- IOUtils.copy(in, out);
- IOUtils.closeQuietly(in);
+ try {
+ IOUtils.copy(in, out);
+ } finally {
+ IOUtils.closeQuietly(in);
+ }
}
}
}