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);