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]