From 57271baf54955866b03da741b9300cc5cd4b18c8 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Tue, 29 Apr 2014 15:41:49 +0200 Subject: [PATCH] =?UTF-8?q?DATACMNS-496=20-=20Version.parse(=E2=80=A6)=20n?= =?UTF-8?q?ow=20drops=20non-numeric=20artifacts.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Version parsing failed when given version contained non-numeric parts (like 2.0.0-rc1). We now strip everything after the first non numeric part to create a logical version equivalent of the source String. Original pull request: #81. --- src/main/java/org/springframework/data/util/Version.java | 2 +- .../org/springframework/data/util/VersionUnitTests.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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))); + } }