Jesse Glick created MNG-5312:
--------------------------------
Summary: MavenProject.getParent intolerably slow when import scope
used heavily
Key: MNG-5312
URL: https://jira.codehaus.org/browse/MNG-5312
Project: Maven 2 & 3
Issue Type: Bug
Components: Embedding
Affects Versions: 3.0.4
Environment: JDK 7, Ubuntu
Reporter: Jesse Glick
Attachments: DefaultProjectBuilder.diff
For projects which make heavy use of {{<scope>import</scope>}} including in
parent POMs, calling {{MavenProject.getParent}} (thus
{{DefaultProjectBuilder.build(Artifact, ...)}}) can be intolerably slow -
taking many minutes - even when loading the project (or its parent) via
{{DefaultProjectBuilder.build(List<File>, ...)}} takes less than a second.
The discrepancy seems to be due to the fact that {{ReactorModelCache}} is
crucial for the performance of
{{DefaultModelBuilder.importDependencyManagement}}, yet only one
{{DefaultProjectBuilder.build}} overload defines a {{ModelCache}}. For
resolution of parents from a single POM, no model cache is likely to be needed
under normal circumstances, but if you are missing a cache when import scope
dependencies are processed for {{<dependencyManagement>}}, the builder takes
exponential time to find these imports.
I do not have a minimal test case for this yet as the known test case involves
a large and complex proprietary source base. Patch (baseline is 3.0.4)
successfully tested against these sources and shown to reduce {{getParent}}
times by orders of magnitude.
https://issues.jenkins-ci.org/browse/JENKINS-11362 is the downstream issue
describing symptoms.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira