Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x 92f74a1df -> 1533ce483


[KARAF-3611]avoid the java.lang.Error: factory already defined


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/1533ce48
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/1533ce48
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/1533ce48

Branch: refs/heads/karaf-3.0.x
Commit: 1533ce483472063e1198b33aa22c0ea61e57b262
Parents: 92f74a1
Author: Freeman Fang <[email protected]>
Authored: Tue Sep 29 21:14:08 2015 +0800
Committer: Freeman Fang <[email protected]>
Committed: Tue Sep 29 21:14:08 2015 +0800

----------------------------------------------------------------------
 .../karaf/tooling/features/InstallKarsMojo.java | 26 ++++++++++++--------
 1 file changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/1533ce48/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
----------------------------------------------------------------------
diff --git 
a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
 
b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
index 5b52253..089c77a 100644
--- 
a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
+++ 
b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
@@ -293,17 +293,23 @@ public class InstallKarsMojo extends MojoSupport {
         // install bundles defined in startup.properties
         getLog().info("Installing bundles defined in startup.properties in the 
system");
         Set<?> startupBundles = startupProperties.keySet();
-        URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {
-            public URLStreamHandler createURLStreamHandler(String protocol) {
-                if ("wrap".equals(protocol)) {
-                    return new org.ops4j.pax.url.wrap.Handler();
-                }
-                if ("mvn".equals(protocol)) {
-                    return new org.ops4j.pax.url.mvn.Handler();
+        try {
+            URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {
+                public URLStreamHandler createURLStreamHandler(String 
protocol) {
+                    if ("wrap".equals(protocol)) {
+                        return new org.ops4j.pax.url.wrap.Handler();
+                    }
+                    if ("mvn".equals(protocol)) {
+                        return new org.ops4j.pax.url.mvn.Handler();
+                    }
+                    return null;
                 }
-                return null;
-            }
-        });
+            });
+        } catch (Error er) {
+            if (!er.getMessage().equals("factory already defined")) {
+                throw new MojoExecutionException("can't set customer 
URLStreamHandlerFactory", er);
+            } 
+        }
         
         for (Object startupBundle : startupBundles) {
             if (((String)startupBundle).startsWith("wrap:")) {

Reply via email to