Author: rickhall
Date: Thu Apr 7 19:28:45 2011
New Revision: 1089947
URL: http://svn.apache.org/viewvc?rev=1089947&view=rev
Log:
Make sure a fragment has wires before trying to remove a host
from the fragment's set of host wires. (FELIX-2901)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
URL:
http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java?rev=1089947&r1=1089946&r2=1089947&view=diff
==============================================================================
---
felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
(original)
+++
felix/trunk/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
Thu Apr 7 19:28:45 2011
@@ -1180,15 +1180,21 @@ public class ModuleImpl implements Modul
// the module.
for (int i = 0; (m_fragments != null) && (i < m_fragments.size()); i++)
{
- List<Wire> hostWires = new
ArrayList<Wire>(m_fragments.get(i).getWires());
- for (Iterator<Wire> it = hostWires.iterator(); it.hasNext(); )
+ // If the fragment has no wires, then there is no reason to try to
+ // remove ourself from its wires since it has apparently already
+ // been refreshed.
+ if (m_fragments.get(i).getWires() != null)
{
- Wire hostWire = it.next();
- if (hostWire.getExporter().equals(this))
+ List<Wire> hostWires = new
ArrayList<Wire>(m_fragments.get(i).getWires());
+ for (Iterator<Wire> it = hostWires.iterator(); it.hasNext(); )
{
- it.remove();
- ((ModuleImpl) m_fragments.get(i)).setWires(hostWires);
- break;
+ Wire hostWire = it.next();
+ if (hostWire.getExporter().equals(this))
+ {
+ it.remove();
+ ((ModuleImpl) m_fragments.get(i)).setWires(hostWires);
+ break;
+ }
}
}
}