Repository: flink
Updated Branches:
  refs/heads/master 9178076db -> 8f6876218


[FLINK-4096] Ensure JarOutputStream is always closed

This closes #2172


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/8f687621
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/8f687621
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/8f687621

Branch: refs/heads/master
Commit: 8f6876218bb1335e95ab04fc608ce21959889e57
Parents: 9178076
Author: Ivan Mushketyk <ivan.mushke...@gmail.com>
Authored: Mon Jun 27 22:30:08 2016 +0100
Committer: zentol <ches...@apache.org>
Committed: Mon Jul 11 11:42:09 2016 +0200

----------------------------------------------------------------------
 .../flink/runtime/util/JarFileCreator.java      | 44 ++++++++++----------
 1 file changed, 22 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/8f687621/flink-runtime/src/main/java/org/apache/flink/runtime/util/JarFileCreator.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime/src/main/java/org/apache/flink/runtime/util/JarFileCreator.java 
b/flink-runtime/src/main/java/org/apache/flink/runtime/util/JarFileCreator.java
index c55a9dc..c877d74 100644
--- 
a/flink-runtime/src/main/java/org/apache/flink/runtime/util/JarFileCreator.java
+++ 
b/flink-runtime/src/main/java/org/apache/flink/runtime/util/JarFileCreator.java
@@ -189,33 +189,33 @@ public class JarFileCreator {
                        this.outputFile.delete();
                }
 
-               final JarOutputStream jos = new JarOutputStream(new 
FileOutputStream(this.outputFile), new Manifest());
-               final Iterator<Class<?>> it = this.classSet.iterator();
-               while (it.hasNext()) {
+               try ( JarOutputStream jos = new JarOutputStream(new 
FileOutputStream(this.outputFile), new Manifest())) {
+                       final Iterator<Class<?>> it = this.classSet.iterator();
+                       while (it.hasNext()) {
 
-                       final Class<?> clazz = it.next();
-                       final String entry = clazz.getName().replace('.', '/') 
+ CLASS_EXTENSION;
+                               final Class<?> clazz = it.next();
+                               final String entry = 
clazz.getName().replace('.', '/') + CLASS_EXTENSION;
 
-                       jos.putNextEntry(new JarEntry(entry));
+                               jos.putNextEntry(new JarEntry(entry));
 
-                       String name = clazz.getName();
-                       int n = name.lastIndexOf('.');
-                       String className = null;
-                       if (n > -1) {
-                               className = name.substring(n + 1, 
name.length());
-                       }
-                       //Using the part after last dot instead of 
class.getSimpleName() could resolve the problem of inner class.
-                       final InputStream classInputStream = 
clazz.getResourceAsStream(className + CLASS_EXTENSION);
+                               String name = clazz.getName();
+                               int n = name.lastIndexOf('.');
+                               String className = null;
+                               if (n > -1) {
+                                       className = name.substring(n + 1, 
name.length());
+                               }
+                               //Using the part after last dot instead of 
class.getSimpleName() could resolve the problem of inner class.
+                               final InputStream classInputStream = 
clazz.getResourceAsStream(className + CLASS_EXTENSION);
 
-                       int num = classInputStream.read(buf);
-                       while (num != -1) {
-                               jos.write(buf, 0, num);
-                               num = classInputStream.read(buf);
-                       }
+                               int num = classInputStream.read(buf);
+                               while (num != -1) {
+                                       jos.write(buf, 0, num);
+                                       num = classInputStream.read(buf);
+                               }
 
-                       classInputStream.close();
-                       jos.closeEntry();
+                               classInputStream.close();
+                               jos.closeEntry();
+                       }
                }
-               jos.close();
        }
 }

Reply via email to