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;
+                                        }
                                     }
                                 }
                             }