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

Ross Goldberg commented on MNG-6420:
------------------------------------

I can’t remember, exactly but I imagine that all of these issues involved 
hyphens.

I also noticed issues where the canonical form of a version was not actually 
considered the same as the original version when running a compareTo between 
the two:

https://mail-archives.apache.org/mod_mbox/maven-dev/201806.mbox/%3c6046577.JB5ohCRQSe@giga%3e

It’s been a while, so I can’t remember everything right now, but there were 
some places where the code contravened the spec (either for canonical form, 
comparison result, or both), and places where the code correctly followed the 
spec, but the spec led to counterintuitive results.

I would imagine that changing the spec would have to wait for Maven 4.0 (if 
ever changed), but fixing code discrepancies with the spec might be able to be 
done beforehand (but still might be better to wait for 4.0).

What is the timeframe for 4.0?

> 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