[ 
https://issues.apache.org/jira/browse/MNG-6420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17003634#comment-17003634
 ] 

Karl Heinz Marbaise commented on MNG-6420:
------------------------------------------

{{2.1}} is greater than {{2.0.a}}:
* {code}
$ java -jar ~/tools/apache-maven-3.6.3/lib/maven-artifact-3.6.3.jar 2.1 2.0.a
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 2.1 == 2.1
   2.1 > 2.0.a
2. 2.0.a == 2.0.a
{code}
{{2-1}} is less than {{2.0.a}}
* {code}
$ java -jar ~/tools/apache-maven-3.6.3/lib/maven-artifact-3.6.3.jar 2-1 2.0.a
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 2-1 == 2-1
   2-1 < 2.0.a
2. 2.0.a == 2.0.a
{code}
{{2.0.0-1}} is greater than {{2.0.0}}
* {code}
$ java -jar ~/tools/apache-maven-3.6.3/lib/maven-artifact-3.6.3.jar 2.0.0-1 
2.0.0
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 2.0.0-1 == 2-1
   2.0.0-1 > 2.0.0
2. 2.0.0 == 2
{code}
{{2-1}} is equal to {{2.0.0-1}}
* {code}
$ java -jar ~/tools/apache-maven-3.6.3/lib/maven-artifact-3.6.3.jar 2-1 2.0.0-1
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 2-1 == 2-1
   2-1 == 2.0.0-1
2. 2.0.0-1 == 2-1
{code} 
{{2.0.0-1}} is ... {{2.0.a}}
* {code}
$ java -jar ~/tools/apache-maven-3.6.3/lib/maven-artifact-3.6.3.jar 2.0.0-1 
2.0.a
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 2.0.0-1 == 2-1
   2.0.0-1 < 2.0.a
2. 2.0.a == 2.0.a
{code}

> ComparableVersion incorrectly parses certain version strings
> ------------------------------------------------------------
>
>                 Key: MNG-6420
>                 URL: https://issues.apache.org/jira/browse/MNG-6420
>             Project: Maven
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.5.3
>            Reporter: Ross Goldberg
>            Priority: Major
>             Fix For: wontfix-candidate
>
>
> For certain version strings, ComparableVersion doesn't follow the Maven 
> version order spec 
> (https://maven.apache.org/pom.html#Version_Order_Specification).
> To improve the code & fix the following bugs, I completely rewrote the 
> version parser (using Java 10 & Google Guava 25.1).  It is attached & passes 
> all of the tests from ComparableVersionTest.
> Bug 1:
>  
> java -jar /usr/local/Cellar/maven/3.5.3/libexec/lib/maven-artifact-3.5.3.jar 
> 1-0.3 1
>  
> Outputs:
>  
> 1. 1-0.3 == 1-0.3
>    1-0.3 == 1
> 2. 1 == 1
>  
> This probleem stems from:
>  
> [https://github.com/apache/maven/blob/b8c06e61ab73cd9e25a5b2c93d9e5077b2196751/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java#L295-L296]
>  
>  
>  
> Bug 2:
>  
> java -jar /usr/local/Cellar/maven/3.5.3/libexec/lib/maven-artifact-3.5.3.jar 
> 1-0-2 1-0.1
>  
> 1. 1-0-2 == 1-2
>    1-0-2 < 1-0.1
> 2. 1-0.1 == 1-0.1
>  
> This problem stems from retaining ListItems that, after normalization, have 
> no children other than the subsequent ListItem.  Removing the unnecessary 
> ListItem should fix this (i.e. remove the extraneous ListItem (named 
> extraneous) from its parent ListItem (named parent), then add the only child 
> of extraneous to parent).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to