[MPMD-297] - Classloader not being closed after PMD run
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
index 0573e31..d7005cf 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
@@ -77,6 +77,8 @@
import net.sourceforge.pmd.renderers.Renderer;
import net.sourceforge.pmd.renderers.TextRenderer;
import net.sourceforge.pmd.renderers.XMLRenderer;
+import net.sourceforge.pmd.util.ClasspathClassLoader;
+import net.sourceforge.pmd.util.IOUtil;
import net.sourceforge.pmd.util.ResourceLoader;
import net.sourceforge.pmd.util.datasource.DataSource;
import net.sourceforge.pmd.util.datasource.FileDataSource;
@@ -582,6 +584,14 @@
}
getLog().warn( message, e );
}
+ finally
+ {
+ ClassLoader classLoader = pmdConfiguration.getClassLoader();
+ if ( classLoader instanceof ClasspathClassLoader )
+ {
+ IOUtil.tryCloseClassLoader( classLoader );
+ }
+ }
}
private void generateMavenSiteReport( Locale locale )