Andrew Haines created MNG-5368:
----------------------------------

             Summary: UnsupportedOperationException thrown when version range 
is not correct in dependencyManagement definitions
                 Key: MNG-5368
                 URL: https://jira.codehaus.org/browse/MNG-5368
             Project: Maven 2 & 3
          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


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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to