You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2009/12/04 18:40:32 UTC

svn commit: r887289 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/RequiredBundleImpl.java

Author: rickhall
Date: Fri Dec  4 17:40:32 2009
New Revision: 887289

URL: http://svn.apache.org/viewvc?rev=887289&view=rev
Log:
Fixed an improper loop index in RequiredBundle.getRequiringBundles() and
also made the method a little more efficient. (FELIX-1920)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/RequiredBundleImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/RequiredBundleImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/RequiredBundleImpl.java?rev=887289&r1=887288&r2=887289&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/RequiredBundleImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/RequiredBundleImpl.java Fri Dec  4 17:40:32 2009
@@ -63,8 +63,9 @@
         }
 
         // We need to find all modules that require any of the modules
-        // associated with this bundle.
-        List moduleList = new ArrayList();
+        // associated with this bundle and save the associated bundle
+        // of the dependent modules.
+        Set bundleSet = new HashSet();
         // Loop through all of this bundle's modules.
         IModule[] modules = m_bundle.getModules();
         for (int modIdx = 0; (modules != null) && (modIdx < modules.length); modIdx++)
@@ -74,20 +75,13 @@
             IModule[] dependents = ((ModuleImpl) modules[modIdx]).getDependentRequirers();
             for (int depIdx = 0; (dependents != null) && (depIdx < dependents.length); depIdx++)
             {
-                moduleList.add(dependents[modIdx]);
-            }
-        }
-        // Convert the list of dependent modules into a non-duplicated
-        // array of bundles.
-        Set bundleSet = new HashSet();
-        for (int modIdx = 0; modIdx < moduleList.size(); modIdx++)
-        {
-            Bundle bundle = ((IModule) moduleList.get(modIdx)).getBundle();
-            if (bundle != null)
-            {
-                bundleSet.add(bundle);
+                if (dependents[depIdx].getBundle() != null)
+                {
+                    bundleSet.add(dependents[depIdx].getBundle());
+                }
             }
         }
+        // Convert to an array.
         return (Bundle[]) bundleSet.toArray(new Bundle[bundleSet.size()]);
     }