Make sure a fragment has wires before trying to remove a host
from the fragment's set of host wires. (FELIX-2901)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1089947 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
index 26500b0..09c269a 100644
--- a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
@@ -1180,15 +1180,21 @@
         // 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;
+                    }
                 }
             }
         }