[ https://issues.apache.org/jira/browse/MNG-6420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17003634#comment-17003634 ]
Karl Heinz Marbaise edited comment on MNG-6420 at 12/26/19 1:17 PM: -------------------------------------------------------------------- * {{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 less than {{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} was (Author: khmarbaise): {{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)