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 <[email protected]> Authored: Sat Aug 27 10:04:06 2016 -0400 Committer: jamesbognar <[email protected]> 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}, }); }
