You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Casey (JIRA)" <ji...@codehaus.org> on 2008/03/11 03:47:29 UTC

[jira] Commented: (MNG-3391) StackOverflowError in DefaultMavenProjectBuilder

    [ http://jira.codehaus.org/browse/MNG-3391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_126780 ] 

John Casey commented on MNG-3391:
---------------------------------

The problem comes when one of the managed dependencies is of type 'pom' and inherits from the current pom. This creates a situation where mergeManagedDependencies(..) tries to resolve the descendant project instance, which during it's construction has to construct its ancestor project instances...a set that contains the current one.

And round and round we go.

I've isolated this locally, and will try to put together an integration test to express it simply. Hopefully then I can figure out how to solve it, since it would seem to demand that module projects already exist, while the call to build a module projects actually happens after DefaultMaven gets an instance of the parent back. So, it would seem that some sort of prescanning or post-processing would be in order, to connect the merged dependency maps after all projects are built.

Ralph (or anyone): Is there a reason why the mergeManagedDependencies(..) call happens before processProjectLogic(..)? Also, the buildWithDependencies(..) call will complicate this, since it's really in the wrong place (it's over-extending the reach of the MavenProjectBuilder's design by adding artifact resolution beyond the POM in question and its ancestry). 

> StackOverflowError in DefaultMavenProjectBuilder
> ------------------------------------------------
>
>                 Key: MNG-3391
>                 URL: http://jira.codehaus.org/browse/MNG-3391
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Inheritance and Interpolation
>    Affects Versions: 2.1-alpha-1, 2.1
>            Reporter: Carlos Sanchez
>            Assignee: John Casey
>            Priority: Blocker
>             Fix For: 2.1-alpha-1
>
>
> checkout https://svn.apache.org/repos/asf/servicemix/smx3/trunk and try to run a goail in samples/cxf-wsdl-first 
> if you checkout only https://svn.apache.org/repos/asf/servicemix/smx3/trunk/samples/cxf-wsdl-first  there's no problem, so it must be something to do with the parents
> Revisions tested: 619946 and 609730
> $ mvn process-test-resources
> [WARNING] Deprecated expression: ${version} - missing prefix. Use ${pom.version} (model: org.apache.servicemix:servicemix:pom:3.3-SNAPSHOT)
> [INFO] Attempting to resolve a version for plugin: org.apache.servicemix.tooling:jbi-maven-plugin using meta-version: LATEST
> ---------------------------------------------------
> constituent[0]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/aspectjrt-1.5.3.jar
> constituent[1]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/backport-util-concurrent-3.0.jar
> constituent[2]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/commons-cli-1.0.jar
> constituent[3]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/doxia-sink-api-1.0-alpha-9.jar
> constituent[4]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/jsch-0.1.27.jar
> constituent[5]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/jtidy-4aug2000r7-dev.jar
> constituent[6]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-artifact-3.0-20080208.175410-49.jar
> constituent[7]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-core-2.1-20080208.175921-35.jar
> constituent[8]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-embedder-2.1-SNAPSHOT-sources.jar
> constituent[9]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-embedder-2.1-SNAPSHOT.jar
> constituent[10]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-lifecycle-2.1-20080208.175921-36.jar
> constituent[11]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-model-2.1-20080208.175921-40.jar
> constituent[12]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-plugin-api-2.1-20080208.175921-35.jar
> constituent[13]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-profile-2.1-20080208.175921-37.jar
> constituent[14]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-project-2.1-20080208.175921-38.jar
> constituent[15]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/maven-reporting-api-2.1-20080208.175921-19.jar
> constituent[16]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/plexus-container-default-1.0-alpha-44.jar
> constituent[17]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/plexus-interactivity-api-1.0-alpha-6.jar
> constituent[18]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/plexus-utils-1.4.5.jar
> constituent[19]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/retrotranslator-runtime-1.2.1.jar
> constituent[20]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-file-1.0-beta-2.jar
> constituent[21]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-http-lightweight-1.0-beta-2.jar
> constituent[22]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-http-shared-1.0-beta-2.jar
> constituent[23]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-provider-api-1.0-beta-2.jar
> constituent[24]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-ssh-1.0-beta-2.jar
> constituent[25]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-ssh-common-1.0-beta-2.jar
> constituent[26]: file:/d:/apps/apache-maven-2.1-SNAPSHOT/lib/wagon-ssh-external-1.0-beta-2.jar
> ---------------------------------------------------
> Exception in thread "main" java.lang.StackOverflowError
>         at java.lang.Character.toUpperCase(Character.java:4278)
>         at java.lang.String.regionMatches(String.java:1384)
>         at java.lang.String.equalsIgnoreCase(String.java:1120)
>         at sun.net.www.protocol.jar.Handler.parseURL(Handler.java:59)
>         at java.net.URL.<init>(URL.java:596)
>         at java.net.URL.<init>(URL.java:464)
>         at sun.misc.URLClassPath$JarLoader.checkResource(URLClassPath.java:671)
>         at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:756)
>         at sun.misc.URLClassPath$JarLoader.findResource(URLClassPath.java:732)
>         at sun.misc.URLClassPath.findResource(URLClassPath.java:145)
>         at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
>         at java.lang.ClassLoader.getResource(ClassLoader.java:977)
>         at org.codehaus.plexus.classworlds.realm.ClassRealm.getRealmResource(ClassRealm.java:179)
>         at org.codehaus.plexus.classworlds.strategy.DefaultStrategy.getResource(DefaultStrategy.java:94)
>         at org.codehaus.plexus.classworlds.strategy.ForeignStrategy.getResource(ForeignStrategy.java:53)
>         at org.codehaus.plexus.classworlds.realm.ClassRealm.getResource(ClassRealm.java:206)
>         at java.lang.Class.getResource(Class.java:2074)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.getSuperModel(DefaultMavenProjectBuilder.java:1395)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:630)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody0(DefaultMavenProjectBuilder.java:199)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody1$advice(DefaultMavenProjectBuilder.java:206)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:1)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1114)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:745)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody2(DefaultMavenProjectBuilder.java:210)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository_aroundBody3$advice(DefaultMavenProjectBuilder.java:206)

-- 
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