OutOfMemoryError when using profiles and pom inheritance
--------------------------------------------------------

                 Key: MNG-2813
                 URL: http://jira.codehaus.org/browse/MNG-2813
             Project: Maven 2
          Issue Type: Bug
          Components: Profiles
    Affects Versions: 2.0.4
         Environment: maven-2.0.4
            Reporter: Jochen Kuhnle
            Priority: Critical
         Attachments: MNG-2813-maven-project.patch

When using profiles and POM inheritance, Maven grows out of heap space. This 
especially happens when using Xpp3Dom's combine.children="append" on plugin 
configurations in the POMs.

The cause of this is the DefaultProfileInjector in maven-project. It calls 
Xpp3Dom.mergeXpp3Dom with the profile's configuration as dominant DOM, and the 
models configuration as recessive DOM to merge the dominant DOM into the 
recessive one. However, mergeXpp3Dom directly changes the dominant DOM, instead 
of creating a merged copy. Therefor the profiles DOM is changed. If this 
profile is injected a second time, e.g. because of a reactor build, the 
original DOM is gone. Since the changed profile is also saved in the model, 
this often results in the profile DOM (changed by earlier merge) being merged 
into itself (saved in model from earlier merge). Boom -- we get an 
OutOfMemoryError.

The attached patch changes DefaultProfileInjector by ensuring that dominant 
DOMs are copied before they are passed to Xpp3Dom.mergeXpp3Dom.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to