diff --git a/model/api/src/main/java/org/keycloak/migration/ModelVersion.java b/model/api/src/main/java/org/keycloak/migration/ModelVersion.java
index d866320..93e7798 100755
--- a/model/api/src/main/java/org/keycloak/migration/ModelVersion.java
+++ b/model/api/src/main/java/org/keycloak/migration/ModelVersion.java
@@ -56,9 +56,24 @@ public class ModelVersion {
}
public boolean lessThan(ModelVersion version) {
- if (major < version.major) return true;
- if (minor < version.minor) return true;
- if (micro < version.micro) return true;
+ if (major < version.major) {
+ return true;
+ } else if (major > version.major) {
+ return false;
+ }
+
+ if (minor < version.minor) {
+ return true;
+ } else if (minor > version.minor) {
+ return false;
+ }
+
+ if (micro < version.micro) {
+ return true;
+ } else if (minor > version.minor) {
+ return false;
+ }
+
if (qualifier != null && qualifier.equals(version.qualifier)) return false;
if (qualifier == null) return false;
if (version.qualifier == null) return true;
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/MigrationVersionTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/MigrationVersionTest.java
index e119c03..4e5039a 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/MigrationVersionTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/MigrationVersionTest.java
@@ -21,10 +21,12 @@ public class MigrationVersionTest {
ModelVersion version_110Beta1 = new ModelVersion("1.1.0.Beta1");
ModelVersion version_110CR1 = new ModelVersion("1.1.0.CR1");
ModelVersion version_110 = new ModelVersion("1.1.0");
- ModelVersion version_111Beta1 = new ModelVersion("1.1.1.Beta1");
- ModelVersion version_111CR1 = new ModelVersion("1.1.1.CR1");
- ModelVersion version_111 = new ModelVersion("1.1.1");
- ModelVersion version_211Beta1 = new ModelVersion("2.1.1.Beta1");
+
+ ModelVersion version_120CR1 = new ModelVersion("1.2.0.CR1");
+ ModelVersion version_130Beta1 = new ModelVersion("1.3.0.Beta1");
+ ModelVersion version_130 = new ModelVersion("1.3.0");
+ ModelVersion version_140 = new ModelVersion("1.4.0");
+
ModelVersion version_211CR1 = new ModelVersion("2.1.1.CR1");
Assert.assertEquals(version_211CR1.getMajor(), 2);
Assert.assertEquals(version_211CR1.getMinor(), 1);
@@ -38,6 +40,12 @@ public class MigrationVersionTest {
Assert.assertTrue(version_100Beta1.lessThan(version_110Beta1));
Assert.assertTrue(version_100Beta1.lessThan(version_110CR1));
Assert.assertTrue(version_100Beta1.lessThan(version_110));
+ Assert.assertFalse(version_110Beta1.lessThan(version_100CR1));
+ Assert.assertFalse(version_130Beta1.lessThan(version_120CR1));
+ Assert.assertTrue(version_130Beta1.lessThan(version_130));
+ Assert.assertTrue(version_130Beta1.lessThan(version_140));
+ Assert.assertFalse(version_211CR1.lessThan(version_140));
+ Assert.assertTrue(version_140.lessThan(version_211CR1));
Assert.assertFalse(version_211.lessThan(version_110CR1));