Index: topia/src/java/org/codelutin/topia/TopiaContext.java diff -u topia/src/java/org/codelutin/topia/TopiaContext.java:1.49 topia/src/java/org/codelutin/topia/TopiaContext.java:1.50 --- topia/src/java/org/codelutin/topia/TopiaContext.java:1.49 Fri Sep 16 14:10:45 2005 +++ topia/src/java/org/codelutin/topia/TopiaContext.java Wed Sep 21 16:20:00 2005 @@ -23,10 +23,10 @@ * * @author Benjamin Poussin * Copyright Code Lutin -* @version $Revision: 1.49 $ +* @version $Revision: 1.50 $ * -* Mise a jour: $Date: 2005/09/16 14:10:45 $ -* par : $Author: thimel $ +* Mise a jour: $Date: 2005/09/21 16:20:00 $ +* par : $Author: bpoussin $ */ package org.codelutin.topia; @@ -56,6 +56,8 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Logger log = Logger.getLogger("org.codelutin.topia.TopiaContext"); + protected TopiaContextChild rootContext = null; + protected TopiaContextChild parentContext = null; protected PersistenceHelper persistenceHelper = null; @@ -319,9 +321,22 @@ tt = tt.getParent(); if(tt != null){ result = (TopiaContextChild)TopiaContextFactory.getContext(tt); + } else { + // si tt est null cela veut dire qu'il faut renvoyer le context root + result = parentContext; } } return result; + } + + public TopiaContextChild getRootContext() { + if (rootContext == null) { + rootContext = (TopiaContextChild)this; + while (rootContext.getParentContext() != null) { + rootContext = (TopiaContextChild)rootContext.getParentContext(); + } + } + return rootContext; } public TopiaTransaction getTransaction(){