modules/core/util/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
| 9 ++++++++-
modules/core/util/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
| 6 ++++++
2 files changed, 14 insertions(+), 1 deletion(-)
New commits:
commit 8beb34b07d0b669db6e28d1452cae6c4092441ce
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Thu Feb 28 17:48:17 2013 -0500
[BZ 916790] fix the case where the version string has a long "number" which
really should be treated as a string
diff --git
a/modules/core/util/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
b/modules/core/util/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
index 5e16ac6..07f34d7 100644
---
a/modules/core/util/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
+++
b/modules/core/util/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
@@ -424,7 +424,14 @@ public class ComparableVersion
private static Item parseItem( boolean isDigit, String buf )
{
- return isDigit ? new IntegerItem( new Integer( buf ) ) : new StringItem( buf,
false );
+ if (isDigit) {
+ try {
+ return new IntegerItem(new Integer(buf));
+ } catch (Exception e) {
+ // fall through - just use it as a string - its probably too long, like a
timestamp. e.g. 201302281030
+ }
+ }
+ return new StringItem(buf, false);
}
public int compareTo( Object o )
diff --git
a/modules/core/util/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
b/modules/core/util/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
index 1dab605..c6efdba 100644
---
a/modules/core/util/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
+++
b/modules/core/util/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
@@ -131,6 +131,12 @@ public class ComparableVersionTest {
compareVersions("4.0.0.Beta1", "4.0.0.GA");
}
+ public void testBZ916790() {
+ new ComparableVersion("3.13.1.201302221022"); // a bug caused this to
throw an exception before
+ compareVersions("3.13.1.201302221022",
"3.13.1.201302221023");
+ compareVersions("3.13.1.201202221022",
"3.13.1.201302221022");
+ }
+
private void compareVersions(String ver1String, String ver2String) {
//System.out.println("Testing: " + ver1String + "\t" +
ver2String);
Show replies by date