diff --git a/src/main/java/org/springframework/data/util/Version.java b/src/main/java/org/springframework/data/util/Version.java index f51a0fde2..31a506f18 100644 --- a/src/main/java/org/springframework/data/util/Version.java +++ b/src/main/java/org/springframework/data/util/Version.java @@ -53,7 +53,7 @@ public class Version implements Comparable { int[] intParts = new int[parts.length]; for (int i = 0; i < parts.length; i++) { - intParts[i] = Integer.parseInt(parts[i]); + intParts[i] = Integer.parseInt(parts[i].replaceAll("\\D.*", "")); } return new Version(intParts); diff --git a/src/test/java/org/springframework/data/util/VersionUnitTests.java b/src/test/java/org/springframework/data/util/VersionUnitTests.java index a9edb22c1..947f31dd8 100644 --- a/src/test/java/org/springframework/data/util/VersionUnitTests.java +++ b/src/test/java/org/springframework/data/util/VersionUnitTests.java @@ -123,4 +123,12 @@ public class VersionUnitTests { assertThat(new Version(2, 0, 1, 0).toString(), is("2.0.1")); assertThat(new Version(2, 0, 0, 1).toString(), is("2.0.0.1")); } + + /** + * @see DATACMNS-496 + */ + @Test + public void parseShouldRemoveNonNumericVersionParts() { + assertThat(Version.parse("2.0.0-rc1"), is(new Version(2, 0, 0))); + } }