bug 394969: Fixed ConcurrentModificationException thrown during closing context managers.
diff --git a/framework/src/main/java/org/eclipse/gemini/naming/ContextManagerServiceFactoryImpl.java b/framework/src/main/java/org/eclipse/gemini/naming/ContextManagerServiceFactoryImpl.java
index 34b6813..443679e 100644
--- a/framework/src/main/java/org/eclipse/gemini/naming/ContextManagerServiceFactoryImpl.java
+++ b/framework/src/main/java/org/eclipse/gemini/naming/ContextManagerServiceFactoryImpl.java
@@ -56,10 +56,14 @@
 	

 	protected void closeAll() {

 		synchronized(m_mapOfManagers) {

-			Iterator iterator = m_mapOfManagers.keySet().iterator();

+			Iterator iterator = m_mapOfManagers.entrySet().iterator();

 			while(iterator.hasNext()) {

-				Bundle bundleKey = (Bundle)iterator.next();

-				closeContextManager(bundleKey);

+				Map.Entry currentMapEntry = (Map.Entry) iterator.next();

+				Object currentMapEntryValue = currentMapEntry.getValue();

+				if (currentMapEntryValue != null){

+					((CloseableContextManager)currentMapEntryValue).close();

+					iterator.remove();

+				}

 			}

 		}

 	}