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