[ https://jira.codehaus.org/browse/MNG-5368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kristian Rosenvold reopened MNG-5368: ------------------------------------- Assignee: Kristian Rosenvold > UnsupportedOperationException thrown when version range is not correct in > dependencyManagement definitions > ---------------------------------------------------------------------------------------------------------- > > Key: MNG-5368 > URL: https://jira.codehaus.org/browse/MNG-5368 > Project: Maven > Issue Type: Bug > Components: POM > Affects Versions: 3.0.4 > Environment: MacOS 10.7.5 Darwin Kernel Version 11.4.2: > xnu-1699.32.7~1/RELEASE_X86_64 x86_64 > Reporter: Andrew Haines > Assignee: Kristian Rosenvold > > When specifying a non valid version range in a dependencyManagement tag, > instead of a descriptive error message we get a UnsupportedOperationException > thrown. The code at fault in > org.apache.maven.project.MavenProject#getManagedVersionMap is: > {code} > map = new HashMap<String, Artifact>(); > for ( Iterator<Dependency> i = > dependencyManagement.getDependencies().iterator(); i.hasNext(); ) > { > Dependency d = i.next(); > Artifact artifact = > repositorySystem.createDependencyArtifact( d ); > if ( artifact == null ) > { > map = Collections.emptyMap(); > } > map.put( d.getManagementKey(), artifact ); > {code} > When the artifact is null, the map is set to an immutable map and then the > null artifact is then attempted to be put into it. This will always fail. > This particular problem originates from code further down the stack in > org.apache.maven.repository.legacy.LegacyRepositorySystem: > {code} > public Artifact createDependencyArtifact( Dependency d ) > { > VersionRange versionRange; > try > { > versionRange = VersionRange.createFromVersionSpec( d.getVersion() > ); > } > catch ( InvalidVersionSpecificationException e ) > { > return null; > } > {code} > Instead of signalling appropriately that an error has occurred, this > exception is consumed and thus causes the erroneous behaviour mentioned in > the first code snippet -- This message was sent by Atlassian JIRA (v6.1.6#6162)