You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2016/08/27 14:05:33 UTC

incubator-juneau git commit: Fix bug in version matching logic.

Repository: incubator-juneau
Updated Branches:
  refs/heads/master 7100939a4 -> a6ba7804f


Fix bug in version matching logic.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/a6ba7804
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/a6ba7804
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/a6ba7804

Branch: refs/heads/master
Commit: a6ba7804f301f975e1d57275c106a90af34afdd7
Parents: 7100939
Author: jamesbognar <ja...@gmail.com>
Authored: Sat Aug 27 10:04:06 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Sat Aug 27 10:05:09 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/juneau/internal/Version.java     | 15 ++++++++++++++-
 .../org/apache/juneau/internal/VersionRangeTest.java |  1 +
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a6ba7804/juneau-core/src/main/java/org/apache/juneau/internal/Version.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/internal/Version.java b/juneau-core/src/main/java/org/apache/juneau/internal/Version.java
index 8d16e46..4a913e1 100644
--- a/juneau-core/src/main/java/org/apache/juneau/internal/Version.java
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/Version.java
@@ -74,6 +74,9 @@ public class Version {
 			else if (c < 0)
 				return true;
 		}
+		for (int i = parts.length; i < v.parts.length; i++)
+			if (v.parts[i] != 0)
+				return false;
 		return ! exclusive;
 	}
 
@@ -92,7 +95,17 @@ public class Version {
 	 * @return <jk>true</jk> if the specified version is at most this version.
 	 */
 	public boolean isAtMost(Version v, boolean exclusive) {
-		return v.isAtLeast(this, exclusive);
+		for (int i = 0; i < Math.min(parts.length, v.parts.length); i++) {
+			int c = parts[i] - v.parts[i];
+			if (c > 0)
+				return false;
+			else if (c < 0)
+				return true;
+		}
+		for (int i = parts.length; i < v.parts.length; i++)
+			if (v.parts[i] > 0)
+				return false;
+		return ! exclusive;
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a6ba7804/juneau-core/src/test/java/org/apache/juneau/internal/VersionRangeTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/internal/VersionRangeTest.java b/juneau-core/src/test/java/org/apache/juneau/internal/VersionRangeTest.java
index 4922007..3694efb 100755
--- a/juneau-core/src/test/java/org/apache/juneau/internal/VersionRangeTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/internal/VersionRangeTest.java
@@ -49,6 +49,7 @@ public class VersionRangeTest {
 			/* 18 */ {"(.5.0,.6]", ".6", true},
 			/* 19 */ {"(.5.0,.6]", ".6.1", true},
 			/* 20 */ {"(.5.0,.6]", ".7", false},
+			/* 21 */ {"[1.1,2.0)", "1", false},
 		});
 	}