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