}
final Component component = super.lookup( role );
if (null != component && component instanceof RequestLifecycleComponent) {
if (stack == null || stack.empty()) {
throw new ComponentException("ComponentManager has no Environment Stack.");
}
final Object[] objects = (Object[]) stack.peek();
final Map components = (Map)objects[2];
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);
}
components.put(role, new Object[] {component, this});
}
return component;
}