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

Micah Whitacre commented on MNG-2923:
-------------------------------------

I am encountering this issue both when I have an active profile set and when I 
do not.  I haven't debugged fully to see how active profiles play into some of 
my projects passing but I have debugged through a few times for projects that 
always throw NPE.

It seems what is happening is that when building the project it is resolving 
all of the dependencies.  A dependency is resolved multiple times because it is 
transitively resolved from different projects.  As it is resolving the 
dependencies it is encountering different version ranges [1,2) and [1,3).  As 
it determines the version it wants, enables and disables artifacts, it then 
restricts the version of the artifact it wants so that the version is set to 
1.2 (the one available) but it restricts the versionRange of the artifact to be 
[].  So the next time transitively finds the dependency on line 164 (the NPE) 
line it tries to find a version that matches the version range of [].  It 
therefore can't find a match and then dies on the toString() call.

I haven't broken this down to a simple reproduceable workflow but that is the 
flow that is causing it to die even without the <activeProfiles/> in the 
settings.xml file.

> Having any active profiles causes the build to fail
> ---------------------------------------------------
>
>                 Key: MNG-2923
>                 URL: http://jira.codehaus.org/browse/MNG-2923
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 2.0.6
>            Reporter: Matthew Beermann
>            Priority: Blocker
>         Attachments: pom.xml
>
>
> (This seems to be a regression in 2.0.6, and does not occur in 2.0.5.) If I 
> have any active profiles when building certain projects in Maven 2.0.6, the 
> build will fail. For example, adding something as simple as:
> <profiles>
>     <profile>
>         <id>foo</id>
>         <activation>
>             <activeByDefault>true</activeByDefault>
>         </activation>
>     </profile>
> </profiles>
> ...to my ~/.m2/settings.xml file will cause the stack trace below, but the 
> build will succeed once I remove it. I'm attaching  my POM for reference.
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] null
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Trace
> java.lang.NullPointerException
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:164)
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:334)
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(DefaultArtifactCollector.java:334)
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:75)
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:284)
>         at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:272)
>         at 
> org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1238)
>         at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:397)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
>         at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at 
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>         at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

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