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