Properly set the exception type when installing a non-unique bundle. (FELIX-2321)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@943241 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/BundleImpl.java b/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
index c275dda..ec44dcb 100644
--- a/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
@@ -1144,7 +1144,9 @@
                         ((BundleImpl) bundles[i]).getCurrentModule()).getVersion();
                     if ((symName != null) && (sym != null) && symName.equals(sym) && bundleVersion.equals(ver))
                     {
-                        throw new BundleException("Bundle symbolic name and version are not unique: " + sym + ':' + ver);
+                        throw new BundleException(
+                            "Bundle symbolic name and version are not unique: "
+                            + sym + ':' + ver, BundleException.DUPLICATE_BUNDLE_ERROR);
                     }
                 }
             }
diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index 8134ed4..deeed73 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -2083,9 +2083,14 @@
                 {
                     throw (AccessControlException) rethrow;
                 }
+                else if (rethrow instanceof BundleException)
+                {
+                    throw (BundleException) rethrow;
+                }
                 else
                 {
-                    throw new BundleException("Update of bundle " + bundle + " failed.", rethrow);
+                    throw new BundleException(
+                        "Update of bundle " + bundle + " failed.", rethrow);
                 }
             }
         }