diff --git a/lib/versioning/maven/compare.ts b/lib/versioning/maven/compare.ts index a06b0a1c91d9395fcc51b1670ea1d2ac4b490e9d..cf8d6c28a3833f34d45e9a266dcf2e39b4878b06 100644 --- a/lib/versioning/maven/compare.ts +++ b/lib/versioning/maven/compare.ts @@ -488,6 +488,12 @@ function autoExtendMavenRange( } else { interval.leftValue = newValue; } + if (interval.leftValue && interval.rightValue) { + if (compare(interval.leftValue, interval.rightValue) !== 1) { + return rangeToStr(range); + } + return currentRepresentation; + } return rangeToStr(range); } diff --git a/lib/versioning/maven/index.spec.ts b/lib/versioning/maven/index.spec.ts index 0a3604161cfc734cec7c2bdacc278211b8dc43de..b18cc1dda4af93f7cece8d4e933ad8c409bbb02b 100644 --- a/lib/versioning/maven/index.spec.ts +++ b/lib/versioning/maven/index.spec.ts @@ -251,6 +251,10 @@ describe('versioning/maven/compare', () => { ['[1.2.3,)', '1.2.4', '[1.2.4,)'], ['[1.2.3,[', '1.2.4', '[1.2.4,['], ['[1.2.3,]', '1.2.4', '[1.2.3,]'], // invalid range + ['[0.21,0.22)', '0.20.21', '[0.21,0.22)'], + ['[0.21,0.22)', '0.21.1', '[0.21,0.22)'], + ['[0.21,0.22)', '0.22.1', '[0.21,0.22.1)'], + ['[0.21,0.22)', '0.23', '[0.21,0.23)'], ]; sample.forEach(([oldRepr, newValue, newRepr]) => { expect(autoExtendMavenRange(oldRepr, newValue)).toEqual(newRepr);