diff options
author | Manoj Palat | 2020-01-14 09:08:38 +0000 |
---|---|---|
committer | Manoj Palat | 2020-01-14 09:17:19 +0000 |
commit | fff653e221d24349843926a9fc87cfbc0cafdd78 (patch) | |
tree | 1d36a862d842ae03ca1fee4f8ae9cb8a5263cdeb | |
parent | f267b5eebc9c2a51b71207cc7fa8a51ed2c464dd (diff) | |
download | eclipse.jdt.core-fff653e221d24349843926a9fc87cfbc0cafdd78.tar.gz eclipse.jdt.core-fff653e221d24349843926a9fc87cfbc0cafdd78.tar.xz eclipse.jdt.core-fff653e221d24349843926a9fc87cfbc0cafdd78.zip |
Bug 559137 - Fix Resource Leak warnings
Change-Id: I19c275d87854cea99aaa8c857fd7bbd3bf8f9c1c
4 files changed, 15 insertions, 8 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/nd/util/ResourceHelper.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/nd/util/ResourceHelper.java index a017a005b4..f84e7e4556 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/nd/util/ResourceHelper.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/nd/util/ResourceHelper.java @@ -498,10 +498,9 @@ public class ResourceHelper { */ public static String getContents(IPath fullPath) throws IOException { FileInputStream stream = new FileInputStream(fullPath.toFile()); - try { + try (Reader reader = new BufferedReader(new InputStreamReader(stream, Charset.defaultCharset()))){ // Avoid using java.nio.channels.FileChannel, // see http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4715154 - Reader reader = new BufferedReader(new InputStreamReader(stream, Charset.defaultCharset())); StringBuilder builder = new StringBuilder(); char[] buffer = new char[8192]; int read; diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator.java index 0846cf1400..d67ce1296f 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -225,7 +226,9 @@ public class ExternalAnnotationDecorator implements IBinaryType { } else { ZipEntry entry = zipFile.getEntry(qualifiedBinaryFileName); if (entry != null) { - return new ExternalAnnotationProvider(zipFile.getInputStream(entry), qualifiedBinaryTypeName); + try(InputStream is = zipFile.getInputStream(entry)) { + return new ExternalAnnotationProvider(is, qualifiedBinaryTypeName); + } } } return null; diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JarPackageFragmentRoot.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JarPackageFragmentRoot.java index 16561c9b70..ca2312a01c 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JarPackageFragmentRoot.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JarPackageFragmentRoot.java @@ -14,6 +14,7 @@ package org.eclipse.jdt.internal.core; import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; @@ -492,8 +493,11 @@ public class JarPackageFragmentRoot extends PackageFragmentRoot { try { jar = getJar(); ZipEntry mfEntry = jar.getEntry(TypeConstants.META_INF_MANIFEST_MF); - if (mfEntry != null) - return new Manifest(jar.getInputStream(mfEntry)); + if (mfEntry != null) { + try (InputStream is = jar.getInputStream(mfEntry)) { + return new Manifest(is); + } + } } catch (CoreException | IOException e) { // must do without manifest } finally { diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java index ca01706a47..3df9438f4f 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java @@ -18,6 +18,7 @@ package org.eclipse.jdt.internal.core.builder; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.util.Arrays; import java.util.Date; import java.util.Enumeration; @@ -394,9 +395,9 @@ public Manifest getManifest() { if (!scanContent()) // ensure zipFile is initialized return null; ZipEntry entry = this.zipFile.getEntry(TypeConstants.META_INF_MANIFEST_MF); - try { - if (entry != null) - return new Manifest(this.zipFile.getInputStream(entry)); + try(InputStream is = entry != null ? this.zipFile.getInputStream(entry) : null) { + if (is != null) + return new Manifest(is); } catch (IOException e) { // cannot use manifest } |