Andreas Dangel created MPMD-297:
-----------------------------------
Summary: Classloader not being closed after PMD run
Key: MPMD-297
URL: https://issues.apache.org/jira/browse/MPMD-297
Project: Maven PMD Plugin
Issue Type: Bug
Reporter: Andreas Dangel
Fix For: 3.14.0
In order to support type resolution, PMD uses the compile-time classpath of the
analyzed project in order to resolve types. This is done by creating a extra
URLClassloader. However, this classloader is not closed at the end of the PMD
run which causes file leaks and might lead to "too many open files" errors for
large projects.
See MNG-6836.
The classloader should be closed here in PmdReport
([https://github.com/apache/maven-pmd-plugin/blob/0068cebdad1c79ffa21bba648cbfb7e6c2007da9/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java#L568-L569)]
with e.g. the following code:
{code:java}
finally
{
ClassLoader classLoader = pmdConfiguration.getClassLoader();
if (classLoader instanceof ClasspathClassLoader)
{
IOUtil.tryCloseClassLoader(classLoader);
}
}
{code}
ClasspathClassLoader and IOUtil are from PMD and need to be used until PMD
provides a better API (like pmdConfiguration.close(), etc.).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)