AMBARI-22358 : VersionUtils incorrectly compares versions when it has double digits (mradhakrishnan)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/fe02abf6 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/fe02abf6 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/fe02abf6 Branch: refs/heads/branch-feature-AMBARI-21674 Commit: fe02abf62b1aaee7d48d5ea36eeadfe782294aa4 Parents: f844e5f Author: Madhuvanthi Radhakrishnan <[email protected]> Authored: Thu Nov 2 14:51:11 2017 -0700 Committer: Madhuvanthi Radhakrishnan <[email protected]> Committed: Thu Nov 2 14:51:11 2017 -0700 ---------------------------------------------------------------------- .../src/main/java/org/apache/ambari/server/utils/VersionUtils.java | 2 +- .../test/java/org/apache/ambari/server/utils/TestVersionUtils.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/fe02abf6/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java b/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java index 65966ed..08948e1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java @@ -81,7 +81,7 @@ public class VersionUtils { } //String pattern = "^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+).*"; - String pattern = "([0-9]+).([0-9]+).([0-9]+).([0-9]+)?.*"; + String pattern = "([0-9]+).([0-9]+).([0-9]+).?([0-9]+)?.*"; String[] version1Parts = version1.replaceAll(pattern, "$1.$2.$3.$4").split("\\."); String[] version2Parts = version2.replaceAll(pattern, "$1.$2.$3.$4").split("\\."); http://git-wip-us.apache.org/repos/asf/ambari/blob/fe02abf6/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java index 9d20a01..6ad4e26 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java @@ -118,6 +118,7 @@ public class TestVersionUtils { //Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.4_MYAMBARI_000000")); Assert.assertEquals(1, VersionUtils.compareVersions("1.2.4_MYAMBARI_000000", "1.2.3_MYAMBARI_000000")); Assert.assertEquals(0, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.3_MYAMBARI_000000")); + Assert.assertEquals(0, VersionUtils.compareVersions("2.99.99.0", "2.99.99")); Assert.assertEquals(-1, VersionUtils.compareVersions("1.2.3_MYAMBARI_000000", "1.2.4_MYAMBARI_000000", 3)); Assert.assertEquals(1, VersionUtils.compareVersions("1.2.4_MYAMBARI_000000", "1.2.3_MYAMBARI_000000", 3));
