[ http://jira.codehaus.org/browse/MNG-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_126226 ]
Brian Fox commented on MNG-2635: -------------------------------- Can you see if this still occurs in later versions? The code is different and without a test to validate, I don't want to just throw changes in here. > DefaultArtifactCollector.recurse can lose versionRange > ------------------------------------------------------ > > Key: MNG-2635 > URL: http://jira.codehaus.org/browse/MNG-2635 > Project: Maven 2 > Issue Type: Bug > Components: Artifacts and Repositories > Environment: Linux > Reporter: Bud Osterberg > Assignee: Brian Fox > Fix For: Reviewed Pending Version Assignment > > Attachments: artifact_patch > > > This affects maven 2.0.4 and 2.0.5 (at least). > I'm not quite sure how to reproduce the bug in a simple test case, but we > have a setup where running the command: > mvn install site source:jar > crashes in ArtifactUtils.copyArtifact because artifact.getVersionRange() > returns null. > The code that seems to be causing the problem is in > DefaultArtifactCollector.recurse(). Because the Artifact sets the version in > setVersionRange, but can't set the VersionRange from setVersion, the > VersionRange should take precedence if it exists. A simple diff follows: > Index: > components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java > =================================================================== > --- > components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java > (revision 467177) > +++ > components/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java > (working copy) > @@ -114,8 +114,13 @@ > > fireEvent( ResolutionListener.MANAGE_ARTIFACT, listeners, node, > artifact ); > > - if ( artifact.getVersion() != null ) > + VersionRange range = artifact.getVersionRange(); > + if (range != null) > { > + node.getArtifact().setVersionRange(range); > + } > + else if ( artifact.getVersion() != null ) > + { > node.getArtifact().setVersion( artifact.getVersion() ); > } > if ( artifact.getScope() != null ) -- 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