From e0297b61a25828ff1beec6db6a20e5f991ff84d5 Mon Sep 17 00:00:00 2001 From: Igor Fedorenko Date: Fri, 24 Mar 2017 17:14:15 -0400 Subject: Bug 514121: fixed EclipseFileManager leaks open URLClassLoaders Change-Id: I8c0e3260c8ec12211fbbe28ff7c9e74cf6085a59 Signed-off-by: Igor Fedorenko --- .../org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'org.eclipse.jdt.compiler.apt.tests') diff --git a/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java b/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java index f1af4b2ada..36b7079a58 100644 --- a/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java +++ b/org.eclipse.jdt.compiler.apt.tests/src/org/eclipse/jdt/compiler/apt/tests/FileManagerTests.java @@ -16,6 +16,7 @@ import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.net.URLClassLoader; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashSet; @@ -198,4 +199,15 @@ public class FileManagerTests extends TestCase { fileManager.close(); } + public void testBug514121_getClassloader_close() throws Exception { + EclipseFileManager fileManager = new EclipseFileManager(Locale.getDefault(), Charset.defaultCharset()); + List classpath = new ArrayList<>(); + classpath.add(new File(BatchTestUtils.getPluginDirectoryPath(), "resources/targets/filemanager/dependency.zip")); + fileManager.setLocation(javax.tools.StandardLocation.ANNOTATION_PROCESSOR_PATH, classpath); + URLClassLoader loader = (URLClassLoader) fileManager + .getClassLoader(javax.tools.StandardLocation.ANNOTATION_PROCESSOR_PATH); + assertNotNull(loader.findResource("jarresource.txt")); // sanity check + fileManager.close(); + assertNull(loader.findResource("jarresource.txt")); // assert the classloader is closed + } } -- cgit v1.2.3