You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2014/04/17 23:33:24 UTC
svn commit: r1588375 -
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/hadoopbackport/JarFinder.java
Author: tedyu
Date: Thu Apr 17 21:33:24 2014
New Revision: 1588375
URL: http://svn.apache.org/r1588375
Log:
HBASE-11012 InputStream is not properly closed in two methods of JarFinder
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/hadoopbackport/JarFinder.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/hadoopbackport/JarFinder.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/hadoopbackport/JarFinder.java?rev=1588375&r1=1588374&r2=1588375&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/hadoopbackport/JarFinder.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/hadoopbackport/JarFinder.java Thu Apr 17 21:33:24 2014
@@ -41,17 +41,24 @@ import java.util.zip.ZipOutputStream;
*/
public class JarFinder {
- private static void copyToZipStream(InputStream is, ZipEntry entry,
+ private static void copyToZipStream(File file, ZipEntry entry,
ZipOutputStream zos) throws IOException {
- zos.putNextEntry(entry);
- byte[] arr = new byte[4096];
- int read = is.read(arr);
- while (read > -1) {
- zos.write(arr, 0, read);
- read = is.read(arr);
+ InputStream is = new FileInputStream(file);
+ try {
+ zos.putNextEntry(entry);
+ byte[] arr = new byte[4096];
+ int read = is.read(arr);
+ while (read > -1) {
+ zos.write(arr, 0, read);
+ read = is.read(arr);
+ }
+ } finally {
+ try {
+ is.close();
+ } finally {
+ zos.closeEntry();
+ }
}
- is.close();
- zos.closeEntry();
}
public static void jarDir(File dir, String relativePath, ZipOutputStream zos)
@@ -68,8 +75,7 @@ public class JarFinder {
new Manifest().write(new BufferedOutputStream(zos));
zos.closeEntry();
} else {
- InputStream is = new FileInputStream(manifestFile);
- copyToZipStream(is, manifestEntry, zos);
+ copyToZipStream(manifestFile, manifestEntry, zos);
}
zos.closeEntry();
zipDir(dir, relativePath, zos, true);
@@ -96,8 +102,7 @@ public class JarFinder {
String path = relativePath + f.getName();
if (!path.equals(JarFile.MANIFEST_NAME)) {
ZipEntry anEntry = new ZipEntry(path);
- InputStream is = new FileInputStream(f);
- copyToZipStream(is, anEntry, zos);
+ copyToZipStream(f, anEntry, zos);
}
}
}