cziegeler 02/04/24 07:32:52 Modified: src/java/org/apache/cocoon/components CocoonComponentManager.java Log: Avoid duplicate initialization of RCC Revision Changes Path 1.17 +12 -9 xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java Index: CocoonComponentManager.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- CocoonComponentManager.java 24 Apr 2002 13:48:19 -0000 1.16 +++ CocoonComponentManager.java 24 Apr 2002 14:32:52 -0000 1.17 @@ -76,7 +76,7 @@ * and by handling the lookup of the <code>SourceResolver</code> (in development) * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Id: CocoonComponentManager.java,v 1.16 2002/04/24 13:48:19 cziegeler Exp $ + * @version CVS $Id: CocoonComponentManager.java,v 1.17 2002/04/24 14:32:52 cziegeler Exp $ */ public final class CocoonComponentManager extends ExcaliburComponentManager @@ -199,16 +199,19 @@ } final Object[] objects = (Object[]) stack.peek(); final Map components = (Map)objects[2]; - try { - if (component instanceof Recomposable) { - ((Recomposable) component).recompose(this); + // first test if the parent CM has already initialized this component + if (components.containsKey( role ) == false) { + try { + if (component instanceof Recomposable) { + ((Recomposable) component).recompose(this); + } + ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0], + (Map)objects[1]); + } catch (Exception local) { + throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local); } - ((RequestLifecycleComponent) component).setup((org.apache.cocoon.environment.SourceResolver)objects[0], - (Map)objects[1]); - } catch (Exception local) { - throw new ComponentException("Exception during setup of RequestLifecycleComponent with role '"+role+"'", local); + components.put(role, new Object[] {component, this}); } - components.put(role, new Object[] {component, this}); } return component; }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]