summaryrefslogtreecommitdiff
path: root/src/main/org/apache/tools/ant/taskdefs/optional/extension
diff options
context:
space:
mode:
authorStefan Bodewig <bodewig@apache.org>2016-12-20 20:41:19 +0100
committerStefan Bodewig <bodewig@apache.org>2016-12-20 20:41:19 +0100
commit032e888aace67eb95884b2ae40230f2656c4e0d0 (patch)
tree36670c6fff9e01586bba052e416ef3e6cd7e591c /src/main/org/apache/tools/ant/taskdefs/optional/extension
parentac1b7652ddd5f4e01eb7e3e5e58f9d22900229a0 (diff)
downloadant-032e888aace67eb95884b2ae40230f2656c4e0d0.tar.gz
plug resource leaks detected by Sonar
Diffstat (limited to 'src/main/org/apache/tools/ant/taskdefs/optional/extension')
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
index 089c78947..ce660501f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
@@ -130,8 +130,9 @@ public final class ExtensionUtil {
final boolean includeImpl,
final boolean includeURL)
throws BuildException {
+ JarFile jarFile = null;
try {
- final JarFile jarFile = new JarFile(file);
+ jarFile = new JarFile(file);
final Extension[] extensions =
Extension.getAvailable(jarFile.getManifest());
for (int i = 0; i < extensions.length; i++) {
@@ -140,6 +141,8 @@ public final class ExtensionUtil {
}
} catch (final Exception e) {
throw new BuildException(e.getMessage(), e);
+ } finally {
+ close(jarFile);
}
}
@@ -201,8 +204,9 @@ public final class ExtensionUtil {
*/
static Manifest getManifest(final File file)
throws BuildException {
+ JarFile jarFile = null;
try {
- final JarFile jarFile = new JarFile(file);
+ jarFile = new JarFile(file);
Manifest m = jarFile.getManifest();
if (m == null) {
throw new BuildException(file + " doesn't have a MANIFEST");
@@ -210,6 +214,18 @@ public final class ExtensionUtil {
return m;
} catch (final IOException ioe) {
throw new BuildException(ioe.getMessage(), ioe);
+ } finally {
+ close(jarFile);
+ }
+ }
+
+ private static void close(JarFile device) {
+ if (null != device) {
+ try {
+ device.close();
+ } catch (IOException e) {
+ //ignore
+ }
}
}
}