From 23bee1cad19c5182062a7eca48a3e3d37b7c4f7c Mon Sep 17 00:00:00 2001 From: Stefan Wolf Date: Mon, 25 Jul 2016 14:08:04 +0200 Subject: [PATCH] Close the created `URLClassLoader` when finishing the Ant task --- .../sourceforge/pmd/ant/internal/PMDTaskImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java b/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java index e7319b1859..bcd6c2e252 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/ant/internal/PMDTaskImpl.java @@ -3,6 +3,7 @@ */ package net.sourceforge.pmd.ant.internal; +import java.io.Closeable; import java.io.File; import java.io.IOException; import java.io.PrintWriter; @@ -266,10 +267,21 @@ public class PMDTaskImpl { try { doTask(); } finally { + tryClose(configuration.getClassLoader()); logManager.close(); } } + private static void tryClose(ClassLoader classLoader) { + if (classLoader instanceof Closeable) { + try { + ((Closeable) classLoader).close(); + } catch (IOException ignore) { + // do nothing. + } + } + } + private void logRulesUsed(RuleSets rules) { project.log("Using these rulesets: " + configuration.getRuleSets(), Project.MSG_VERBOSE);