Author: gnodet
Date: Mon Feb 21 09:21:14 2011
New Revision: 1072899
URL: http://svn.apache.org/viewvc?rev=1072899&view=rev
Log:
[FELIX-2849] PackageAdmin is inconsistent between getFragments and getHosts
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
URL:
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java?rev=1072899&r1=1072898&r2=1072899&view=diff
==============================================================================
---
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
(original)
+++
felix/trunk/framework/src/main/java/org/apache/felix/framework/PackageAdminImpl.java
Mon Feb 21 09:21:14 2011
@@ -193,18 +193,21 @@ class PackageAdminImpl implements Packag
// If the bundle is not a fragment, then return its fragments.
if ((getBundleType(bundle) & BUNDLE_TYPE_FRAGMENT) == 0)
{
- // Get attached fragments.
- List<Module> modules =
- ((ModuleImpl)
- ((BundleImpl) bundle).getCurrentModule()).getFragments();
// Convert fragment modules to bundles.
List list = new ArrayList();
- for (int i = 0; (modules != null) && (i < modules.size()); i++)
- {
- Bundle b = modules.get(i).getBundle();
- if (b != null)
+ // Iterate through modules
+ List<Module> modules = ((BundleImpl) bundle).getModules();
+ for (int modIdx = 0; modIdx < modules.size(); modIdx++)
+ {
+ // Get attached fragments.
+ List<Module> frags = ((ModuleImpl)
modules.get(modIdx)).getFragments();
+ for (int i = 0; (frags != null) && (i < frags.size()); i++)
{
- list.add(b);
+ Bundle b = frags.get(i).getBundle();
+ if (b != null)
+ {
+ list.add(b);
+ }
}
}
// Convert list to an array.