[
https://issues.apache.org/jira/browse/MNG-6420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ross Goldberg updated MNG-6420:
-------------------------------
Attachment: MavenVersionCoordinate.java
> 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
> Attachments: MavenVersionCoordinate.java
>
>
> 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
(v7.6.3#76005)