[
https://issues.apache.org/jira/browse/MNG-5368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christian Schulte resolved MNG-5368.
------------------------------------
Resolution: Fixed
Fix Version/s: 3.4.0
> UnsupportedOperationException thrown when version range is not correct in
> dependencyManagement definitions
> ----------------------------------------------------------------------------------------------------------
>
> Key: MNG-5368
> URL: https://issues.apache.org/jira/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
> Fix For: 3.4.0
>
>
> 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.3.4#6332)