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

Reply via email to