Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.6.3
-
None
Description
There's a bug where version sorting is inconsistent. This manifests like this:
$ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.alpha 1 Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1-0.alpha == 1-0.alpha 1-0.alpha == 1 2. 1 == 1 $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.beta 1 Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1-0.beta == 1-0.beta 1-0.beta == 1 2. 1 == 1 $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.beta 1-0.alpha Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1-0.beta == 1-0.beta 1-0.beta > 1-0.alpha 2. 1-0.alpha == 1-0.alpha
Thus there is no correct total order: 1-0.beta > 1.0.alpha even though both 1-0.beta and 1-0.alpha are equal to 1.
I think this is likely due to a logical bug where any dot-separated segments following a zero or release (ga or final) is simply truncated in certain circumstances:
$ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.x 1-0 Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1-0.x == 1-0.x 1-0.x == 1-0 2. 1-0 == 1
but
$ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.x-1 1-0-1 Display parameters as parsed by Maven (in canonical form) and comparison result: 1. 1-0.x-1 == 1-0.x-1 1-0.x-1 > 1-0-1 2. 1-0-1 == 1-1
Attachments
Issue Links
- is related to
-
MNG-7700 Improper canonicalization of versions
- Open
-
MNG-7701 Incompatible version sorting changes
- Closed
- relates to
-
MRESOLVER-334 Maven Resolver's GenericVersionScheme diverges from the spec
- Closed
-
MNG-6967 Improve the command line output from maven-artifact
- Closed