From 5a02996ecafc521b05d489d5a391cb17619503fe Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 12 Jan 2021 14:14:10 +0000 Subject: [PATCH] Fix release train version's comparison with other version types Fixes gh-24782 --- .../bomr/version/ReleaseTrainDependencyVersion.java | 4 ++-- .../version/ReleaseTrainDependencyVersionTests.java | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersion.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersion.java index b3626d1984..0eeb266e30 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersion.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersion.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,7 +48,7 @@ final class ReleaseTrainDependencyVersion implements DependencyVersion { @Override public int compareTo(DependencyVersion other) { if (!(other instanceof ReleaseTrainDependencyVersion)) { - return 0; + return -1; } ReleaseTrainDependencyVersion otherReleaseTrain = (ReleaseTrainDependencyVersion) other; int comparison = this.releaseTrain.compareTo(otherReleaseTrain.releaseTrain); diff --git a/buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersionTests.java b/buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersionTests.java index 6010bfd075..e580e9055a 100644 --- a/buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersionTests.java +++ b/buildSrc/src/test/java/org/springframework/boot/build/bom/bomr/version/ReleaseTrainDependencyVersionTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -92,6 +92,14 @@ public class ReleaseTrainDependencyVersionTests { assertThat(version("Kay-SR6").isSameMinorAndNewerThan(version("Kay-SR7"))).isFalse(); } + @Test + void whenComparedWithADifferentDependencyVersionTypeThenTheResultsAreNonZero() { + ReleaseTrainDependencyVersion dysprosium = ReleaseTrainDependencyVersion.parse("Dysprosium-SR16"); + ArtifactVersionDependencyVersion twentyTwenty = ArtifactVersionDependencyVersion.parse("2020.0.0"); + assertThat(dysprosium.compareTo(twentyTwenty)).isLessThan(0); + assertThat(twentyTwenty.compareTo(dysprosium)).isGreaterThan(0); + } + private static ReleaseTrainDependencyVersion version(String input) { return ReleaseTrainDependencyVersion.parse(input); }