You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2008/08/30 22:16:32 UTC

svn commit: r690574 - /felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java

Author: fmeschbe
Date: Sat Aug 30 13:16:31 2008
New Revision: 690574

URL: http://svn.apache.org/viewvc?rev=690574&view=rev
Log:
FELIX-701 Stop running bundles before updating it and start only
when all bundles have been installed/updated to prevent resolution
issues when updating running bundles

Modified:
    felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java

Modified: felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java?rev=690574&r1=690573&r2=690574&view=diff
==============================================================================
--- felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java (original)
+++ felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java Sat Aug 30 13:16:31 2008
@@ -485,11 +485,21 @@
                     // Update the installed bundle.
                     try
                     {
+                        // stop the bundle before updating to prevent
+                        // the bundle update from throwing due to not yet
+                        // resolved dependencies
+                        boolean doStartBundle = start;
+                        if (localResource.getBundle().getState() == Bundle.ACTIVE)
+                        {
+                            doStartBundle = true;
+                            localResource.getBundle().stop();
+                        }
+                        
                         localResource.getBundle().update(deployResources[i].getURL().openStream());
 
                         // If necessary, save the updated bundle to be
                         // started later.
-                        if (start)
+                        if (doStartBundle)
                         {
                             startList.add(localResource.getBundle());
                         }