[ http://jira.codehaus.org/browse/MNG-3756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=148284#action_148284 ]
Ian Springer commented on MNG-3756: ----------------------------------- I don't understand why any recursion would come into play. I think the intuitive thing to do is evaluate the assignments in order, from top to bottom, just as would be done by any programming language. So: <xxx>${yyy}</xxx> // if yyy happens to have a value from the main section of this pom or some ancestor pom <yyy>${xxx}</yyy> // now assign the value of xxx to yyy - no need to re-evaluate the line above; just use whatever value for xxx was stored in memory > having two properties that reference each other causes Maven to go into > infinite loop > ------------------------------------------------------------------------------------- > > Key: MNG-3756 > URL: http://jira.codehaus.org/browse/MNG-3756 > Project: Maven 2 > Issue Type: Bug > Components: POM > Affects Versions: 2.0.9 > Reporter: Ian Springer > Attachments: pom.xml > > > I had the following in my pom (it was within a profile in case that matters): > <properties> > <xxx>${yyy}</xxx> > <yyy>${xxx}</yyy> > </properties> > Here's the stack trace from a thread dump taken after Maven hung: > at > java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:393) > at java.lang.StringBuffer.append(StringBuffer.java:225) > - locked <0x06f7d9f0> (a java.lang.StringBuffer) > at > hidden.org.codehaus.plexus.util.StringUtils.replace(StringUtils.java:755) > at > hidden.org.codehaus.plexus.util.StringUtils.replace(StringUtils.java:721) > at > org.apache.maven.project.interpolation.RegexBasedModelInterpolator.interpolateInternal(RegexBasedModelInterpo > lator.java:177) > at > org.apache.maven.project.interpolation.RegexBasedModelInterpolator.interpolate(RegexBasedModelInterpolator.ja > va:98) > at > org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder.java:1016) > at > org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:878) > at > org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.ja > va:506) > at > org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:198) > at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:583) > at > org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:461) > at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:365) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:292) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:287) -- 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