[ 
http://jira.codehaus.org/browse/MNG-3046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brett Porter updated MNG-3046:
------------------------------

    Component/s:     (was: Artifacts)
                 Artifacts and Repositories

> DefaultArtifactVersion compareTo misbehaves regarding buildNumber 0
> -------------------------------------------------------------------
>
>                 Key: MNG-3046
>                 URL: http://jira.codehaus.org/browse/MNG-3046
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 2.0.6
>            Reporter: David Julian
>             Fix For: Reviewed Pending Version Assignment
>
>         Attachments: MNG-3046-maven-artifact.patch
>
>
> The implementation of Comparable.compareTo(Object) is faulty regarding the 
> handling of version numbers where a build number is present but zero.  Here's 
> a unit test to demonstrate:
>         DefaultArtifactVersion v1 = new DefaultArtifactVersion("2.0");
>         DefaultArtifactVersion v2 = new DefaultArtifactVersion("2.0-0");
>         DefaultArtifactVersion v3 = new DefaultArtifactVersion("2.0-alpha1");
>         
>         // v1 and v2 are equal
>         assertTrue( v1.compareTo(v2) == 0 );
>         assertTrue( v2.compareTo(v1) == 0 );
>         
>         // v1 is newer than v3
>         assertTrue( v1.compareTo(v3) > 0 );
>         assertTrue( v3.compareTo(v1) < 0 );
>         
>         // ergo, v2 should also be newer than v3
>         assertTrue( v2.compareTo(v3) > 0 );  // FAILS!! returns 0 (equal)
>         assertTrue( v3.compareTo(v1) < 0 );  // succeeds
> This test demonstrates this behavior violates symmetry and transitivity.
> Luckily, the fix is easy.  A small change to the compareTo method to consider 
> qualifiers before build numbers relieves this issue.  I have a patch that 
> I'll submit as soon as I have the issue number.

-- 
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

        

Reply via email to