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