MNG-5727 fixed cryptic exception when managed depenency has no <version>
Signed-off-by: Igor Fedorenko <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/ce6f0bfd Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/ce6f0bfd Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/ce6f0bfd Branch: refs/heads/master Commit: ce6f0bfdb527e20c3afbd76b9c742e07b13d25b2 Parents: 5c84bd3 Author: Igor Fedorenko <[email protected]> Authored: Tue Nov 25 15:44:43 2014 -0500 Committer: Igor Fedorenko <[email protected]> Committed: Tue Nov 25 19:11:00 2014 -0500 ---------------------------------------------------------------------- .../maven/bridge/MavenRepositorySystem.java | 5 ++++ .../maven/project/DefaultProjectBuilder.java | 6 ++--- .../maven/project/ProjectBuilderTest.java | 19 ++++++++++++++++ .../projects/versionless-managed-dependency.xml | 24 ++++++++++++++++++++ 4 files changed, 50 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/ce6f0bfd/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java index 839c089..e01ffc3 100644 --- a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java +++ b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java @@ -107,6 +107,11 @@ public class MavenRepositorySystem // DefaultProjectBuilder public Artifact createDependencyArtifact( Dependency d ) { + if ( d.getVersion() == null ) + { + return null; + } + VersionRange versionRange; try { http://git-wip-us.apache.org/repos/asf/maven/blob/ce6f0bfd/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java index e359bcf..5365756 100644 --- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java +++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java @@ -807,12 +807,10 @@ public class DefaultProjectBuilder { Artifact artifact = repositorySystem.createDependencyArtifact( d ); - if ( artifact == null ) + if ( artifact != null ) { - map = Collections.emptyMap(); + map.put( d.getManagementKey(), artifact ); } - - map.put( d.getManagementKey(), artifact ); } } else http://git-wip-us.apache.org/repos/asf/maven/blob/ce6f0bfd/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java ---------------------------------------------------------------------- diff --git a/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java b/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java index add3efe..5511cb1 100644 --- a/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java +++ b/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java @@ -65,4 +65,23 @@ public class ProjectBuilderTest assertNotNull( result.getProject().getParentFile() ); } + + public void testVersionlessManagedDependency() + throws Exception + { + File pomFile = new File( "src/test/resources/projects/versionless-managed-dependency.xml" ); + MavenSession mavenSession = createMavenSession( null ); + ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest(); + configuration.setRepositorySession( mavenSession.getRepositorySession() ); + + try + { + lookup( org.apache.maven.project.ProjectBuilder.class ).build( pomFile, configuration ); + fail(); + } + catch ( ProjectBuildingException e ) + { + // this is expected + } + } } http://git-wip-us.apache.org/repos/asf/maven/blob/ce6f0bfd/maven-core/src/test/resources/projects/versionless-managed-dependency.xml ---------------------------------------------------------------------- diff --git a/maven-core/src/test/resources/projects/versionless-managed-dependency.xml b/maven-core/src/test/resources/projects/versionless-managed-dependency.xml new file mode 100644 index 0000000..40bf295 --- /dev/null +++ b/maven-core/src/test/resources/projects/versionless-managed-dependency.xml @@ -0,0 +1,24 @@ +<project> + <modelVersion>4.0.0</modelVersion> + + <groupId>test</groupId> + <artifactId>versionless-managed-dependency.xml</artifactId> + <version>0.0.1-SNAPSHOT</version> + + <dependencies> + <dependency> + <groupId>org.apache.maven.its</groupId> + <artifactId>a</artifactId> + </dependency> + </dependencies> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.maven.its</groupId> + <artifactId>a</artifactId> + </dependency> + </dependencies> + </dependencyManagement> + +</project>
