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

        

Reply via email to