[ 
http://jira.codehaus.org/browse/MNG-4785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=233716#action_233716
 ] 

Stuart McCulloch commented on MNG-4785:
---------------------------------------

Looks like the DsoSurefireMojo spawns a child thread that uses the legacy Maven 
resolution API. The new beta uses a threadlocal (see 
org.apache.maven.plugin.internal.DefaultLegacySupport) to provide access to the 
Maven session from legacy components, but of course this threadlocal is only 
valid for the executing mojo thread - not the spawned child thread.

Changing DefaultLegacySupport to use an InheritableThreadLocal should solve 
this NPE, but I'm not sure what impact this would have wrt. cleanup of the 
Maven session given that Maven has no knowledge of the child thread...

> NPE in dependency resolution code for TC plugin
> -----------------------------------------------
>
>                 Key: MNG-4785
>                 URL: http://jira.codehaus.org/browse/MNG-4785
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Artifacts and Repositories, Dependencies
>    Affects Versions: 3.0-beta-3
>         Environment: OS X 10.6
>            Reporter: Oleg Gusakov
>         Attachments: m3tctest.tgz
>
>
> Terracotta Maven plugin 1.4.0 test produces NPE in 3.0-beta-3, but works fine 
> in 3.0-beta-2
> {code}
> [ERROR] [node0]
> java.lang.NullPointerException
>       at 
> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:149)
>       at 
> org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:139)
>       at 
> org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:237)
>       at 
> org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:219)
>       at 
> org.apache.maven.project.artifact.MavenMetadataSource.retrieveRelocatedProject(MavenMetadataSource.java:584)
>       at 
> org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenMetadataSource.java:192)
>       at 
> org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector.recurse(DefaultLegacyArtifactCollector.java:532)
>       at 
> org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector.collect(DefaultLegacyArtifactCollector.java:144)
>       at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:451)
>       at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveWithExceptions(DefaultArtifactResolver.java:307)
>       at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:301)
>       at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:280)
>       at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:258)
>       at 
> org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:243)
>       at 
> org.terracotta.maven.plugins.tc.DsoArtifactResolverImpl.resolveArtifact(DsoArtifactResolverImpl.java:145)
>       at 
> org.terracotta.maven.plugins.tc.DsoSurefireMojo.addArtifact(DsoSurefireMojo.java:775)
>       at 
> org.terracotta.maven.plugins.tc.DsoSurefireMojo.constructSurefireBooter(DsoSurefireMojo.java:548)
>       at 
> org.terracotta.maven.plugins.tc.DsoSurefireMojo$SurefireThread.runSurefire(DsoSurefireMojo.java:434)
>       at 
> org.terracotta.maven.plugins.tc.DsoSurefireMojo$SurefireThread.run(DsoSurefireMojo.java:417)
>       at java.lang.Thread.run(Thread.java:637)
> [INFO] All nodes completed
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Stopping DSO Server
> [INFO] [dso stop] 2010-08-30 11:10:42,625 INFO - Terracotta 3.1.0, as of 
> 20090821-080813 (Revision 13442 by cru...@su10mo5 from 3.1)
> [INFO] OK
> [{code}
> Test project - attached

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