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));

Reply via email to