Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2020-01-14 09:08:38 +0000
committerManoj Palat2020-01-14 09:17:19 +0000
commitfff653e221d24349843926a9fc87cfbc0cafdd78 (patch)
tree1d36a862d842ae03ca1fee4f8ae9cb8a5263cdeb
parentf267b5eebc9c2a51b71207cc7fa8a51ed2c464dd (diff)
downloadeclipse.jdt.core-fff653e221d24349843926a9fc87cfbc0cafdd78.tar.gz
eclipse.jdt.core-fff653e221d24349843926a9fc87cfbc0cafdd78.tar.xz
eclipse.jdt.core-fff653e221d24349843926a9fc87cfbc0cafdd78.zip
Bug 559137 - Fix Resource Leak warnings
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/nd/util/ResourceHelper.java3
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator.java5
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JarPackageFragmentRoot.java8
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/ClasspathJar.java7
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
}

Back to the top