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]

Reply via email to