SLING-6215 : Catch IllegalArgumentException when comparing versions
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1767139 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java b/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
index 0d18a05..86f3203 100644
--- a/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
+++ b/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
@@ -141,13 +141,23 @@
searchGroup.remove(found);
foundStartLevel = searchGroup.getStartLevel();
} else {
- final Version baseVersion = new Version(found.getVersion());
- final Version mergeVersion = new Version(artifact.getVersion());
- if ( baseVersion.compareTo(mergeVersion) <= 0 ) {
- searchGroup.remove(found);
- foundStartLevel = searchGroup.getStartLevel();
- } else {
- addArtifact = false;
+ try {
+ final Version baseVersion = new Version(found.getVersion());
+ final Version mergeVersion = new Version(artifact.getVersion());
+ if ( baseVersion.compareTo(mergeVersion) <= 0 ) {
+ searchGroup.remove(found);
+ foundStartLevel = searchGroup.getStartLevel();
+ } else {
+ addArtifact = false;
+ }
+ } catch ( final IllegalArgumentException iae) {
+ // if at least one version is not a valid maven version
+ if ( found.getVersion().compareTo(artifact.getVersion()) <= 0 ) {
+ searchGroup.remove(found);
+ foundStartLevel = searchGroup.getStartLevel();
+ } else {
+ addArtifact = false;
+ }
}
}
}