Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-6964

Maven version sorting is internally inconsistent

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.6.3
    • 3.8.2, 4.0.0, 4.0.0-alpha-1
    • Core
    • 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

          Activity

            People

              dennisl Dennis Lundberg
              dmlloyd David M. Lloyd
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: