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