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


Reply via email to