diff options
author | Stefan Bodewig <bodewig@apache.org> | 2016-12-20 20:41:19 +0100 |
---|---|---|
committer | Stefan Bodewig <bodewig@apache.org> | 2016-12-20 20:41:19 +0100 |
commit | 032e888aace67eb95884b2ae40230f2656c4e0d0 (patch) | |
tree | 36670c6fff9e01586bba052e416ef3e6cd7e591c /src/main/org/apache/tools/ant/taskdefs/optional/extension | |
parent | ac1b7652ddd5f4e01eb7e3e5e58f9d22900229a0 (diff) | |
download | ant-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.java | 20 |
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 + } } } } |