coverity 1116718: neglected jarinputstream when no entry found Signed-off-by: Daan Hoogland <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8849d506 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8849d506 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8849d506 Branch: refs/heads/reporter Commit: 8849d506cbc18f69d4ca644eb35344a7043ae3f7 Parents: 0c72f77 Author: Daan Hoogland <[email protected]> Authored: Thu Jul 16 16:48:43 2015 +0200 Committer: Daan Hoogland <[email protected]> Committed: Fri Jul 17 13:12:26 2015 +0200 ---------------------------------------------------------------------- .../serializer/OnwireClassRegistry.java | 38 ++++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8849d506/framework/ipc/src/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java ---------------------------------------------------------------------- diff --git a/framework/ipc/src/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java b/framework/ipc/src/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java index 46e5965..77269f3 100644 --- a/framework/ipc/src/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java +++ b/framework/ipc/src/org/apache/cloudstack/framework/serializer/OnwireClassRegistry.java @@ -32,7 +32,6 @@ import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; -import org.apache.commons.io.IOUtils; import org.apache.log4j.Logger; @@ -156,28 +155,27 @@ public class OnwireClassRegistry { static Set<Class<?>> getFromJARFile(String jar, String packageName) throws IOException, ClassNotFoundException { Set<Class<?>> classes = new HashSet<Class<?>>(); - JarInputStream jarFile = new JarInputStream(new FileInputStream(jar)); - JarEntry jarEntry; - do { - jarEntry = jarFile.getNextJarEntry(); - if (jarEntry != null) { - String className = jarEntry.getName(); - if (className.endsWith(".class")) { - className = stripFilenameExtension(className); - if (className.startsWith(packageName)) { - try { - Class<?> clz = Class.forName(className.replace('/', '.')); - classes.add(clz); - } catch (ClassNotFoundException | NoClassDefFoundError e) { - s_logger.warn("Unable to load class from jar file", e); + try (JarInputStream jarFile = new JarInputStream(new FileInputStream(jar));) { + JarEntry jarEntry; + do { + jarEntry = jarFile.getNextJarEntry(); + if (jarEntry != null) { + String className = jarEntry.getName(); + if (className.endsWith(".class")) { + className = stripFilenameExtension(className); + if (className.startsWith(packageName)) { + try { + Class<?> clz = Class.forName(className.replace('/', '.')); + classes.add(clz); + } catch (ClassNotFoundException | NoClassDefFoundError e) { + s_logger.warn("Unable to load class from jar file", e); + } } } } - } - } while (jarEntry != null); - - IOUtils.closeQuietly(jarFile); - return classes; + } while (jarEntry != null); + return classes; + } } static String stripFilenameExtension(String file) {
