maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ross Goldberg (Jira)" <j...@apache.org>
Subject [jira] [Commented] (MNG-6420) ComparableVersion incorrectly parses certain version strings
Date Thu, 26 Dec 2019 12:22:00 GMT

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

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

Thanks, I’ll look through my computer sometime over the weekend to find it.

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

Mime
View raw message