Index: topia2/src/java/org/codelutin/topia/framework/TopiaContextImpl.java diff -u topia2/src/java/org/codelutin/topia/framework/TopiaContextImpl.java:1.42 topia2/src/java/org/codelutin/topia/framework/TopiaContextImpl.java:1.43 --- topia2/src/java/org/codelutin/topia/framework/TopiaContextImpl.java:1.42 Mon Oct 23 15:01:58 2006 +++ topia2/src/java/org/codelutin/topia/framework/TopiaContextImpl.java Fri Nov 10 17:46:40 2006 @@ -23,9 +23,9 @@ * * @author poussin * - * @version $Revision: 1.42 $ + * @version $Revision: 1.43 $ * - * Last update: $Date: 2006/10/23 15:01:58 $ by : $Author: ruchaud $ + * Last update: $Date: 2006/11/10 17:46:40 $ by : $Author: ruchaud $ */ package org.codelutin.topia.framework; @@ -57,9 +57,11 @@ import java.util.Properties; import java.util.Set; import java.util.WeakHashMap; +import java.util.Map.Entry; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; +import org.apache.commons.collections.MapIterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codelutin.topia.TopiaContext; @@ -680,14 +682,16 @@ // throw new TopiaException( // "Vous ne pouvez pas fermer le root context"); // } + checkClosed("Ce contexte a deja ete ferme"); - for(TopiaContextImplementor child : childContext.keySet()) { + for (Iterator iter = childContext.keySet().iterator(); iter.hasNext();) { + TopiaContextImplementor child = (TopiaContextImplementor) iter.next(); child.closeContext(); + iter.remove(); } if (getRootContext() != this) { this.closed = true; hibernate.close(); - getParentContext().removeChildContext(this); } }