You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by mn...@apache.org on 2010/08/17 15:45:29 UTC
svn commit: r986306 -
/incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java
Author: mnuttall
Date: Tue Aug 17 13:45:29 2010
New Revision: 986306
URL: http://svn.apache.org/viewvc?rev=986306&view=rev
Log:
ARIES-381: Remove workaround; call refreshPackages() on each bundle as it's uninstalled.
Modified:
incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java
Modified: incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java?rev=986306&r1=986305&r2=986306&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java (original)
+++ incubator/aries/trunk/application/application-runtime-framework/src/main/java/org/apache/aries/application/runtime/framework/BundleFrameworkImpl.java Tue Aug 17 13:45:29 2010
@@ -39,6 +39,8 @@ import org.osgi.util.tracker.ServiceTrac
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;
+
public class BundleFrameworkImpl implements BundleFramework
{
private static final Logger LOGGER = LoggerFactory.getLogger(BundleFrameworkImpl.class);
@@ -68,23 +70,6 @@ public class BundleFrameworkImpl impleme
public void close() throws BundleException
{
- /**
- * TODO: Remove this work-around code
- *
- * Workaround for IllegalArgumentException during PackagePermission check
- * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=298894
- */
- BundleContext ctx = _compositeBundle.getBundleContext();
- ServiceReference ref = ctx.getServiceReference(PackageAdmin.class.getName());
- if (ref != null) {
- try {
- PackageAdmin pa = (PackageAdmin) ctx.getService(ref);
- pa.refreshPackages(null);
- } finally {
- ctx.ungetService(ref);
- }
- }
-
// close out packageadmin service tracker
if (_packageAdminTracker != null) {
try {
@@ -165,5 +150,18 @@ public class BundleFrameworkImpl impleme
{
b.uninstall();
_bundles.remove(b);
+
+ /* Call PackageAdmin.refreshPackages() after uninstall
+ * to clean out a partially removed bundle. Just to be sure.
+ */
+ PackageAdmin admin = null;
+ try {
+ if (_packageAdminTracker != null) {
+ admin = (PackageAdmin) _packageAdminTracker.getService();
+ admin.refreshPackages(new Bundle[]{b});
+ }
+ } catch (RuntimeException re) {
+ LOGGER.debug(LOG_EXCEPTION, re);
+ }
}
}