From 8849d506cbc18f69d4ca644eb35344a7043ae3f7 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Thu, 16 Jul 2015 16:48:43 +0200 Subject: [PATCH] coverity 1116718: neglected jarinputstream when no entry found Signed-off-by: Daan Hoogland --- .../serializer/OnwireClassRegistry.java | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) 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 46e5965d665..77269f3a21e 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> getFromJARFile(String jar, String packageName) throws IOException, ClassNotFoundException { Set> classes = new HashSet>(); - 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) {