Author: vgritsenko Date: Thu Oct 21 17:24:59 2004 New Revision: 55287 Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java Log: Add synchronization to EnvironmentDescription methods. Required in cases when Sources are used in multiple threads (ex: SitemapSource in IncludeTransformer in parallel mode).
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/CocoonComponentManager.java Thu Oct 21 17:24:59 2004 @@ -592,7 +592,7 @@ * All RequestLifecycleComponents and autoreleaseComponents are * released. */ - void release() { + synchronized void release() { if (this.requestLifecycleComponents != null) { final Iterator iter = this.requestLifecycleComponents.values().iterator(); while (iter.hasNext()) { @@ -686,7 +686,7 @@ /** * Add an automatically released component */ - void addToAutoRelease(final ComponentSelector selector, + synchronized void addToAutoRelease(final ComponentSelector selector, final Component component, final ComponentManager manager) { this.autoreleaseComponents.add(new Object[] {component, selector, manager}); @@ -695,7 +695,7 @@ /** * Add an automatically released component */ - void addToAutoRelease(final ComponentManager manager, + synchronized void addToAutoRelease(final ComponentManager manager, final Component component) { this.autoreleaseComponents.add(new Object[] {component, manager}); } @@ -703,7 +703,7 @@ /** * Remove from automatically released components */ - void removeFromAutoRelease(final Component component) + synchronized void removeFromAutoRelease(final Component component) throws ProcessingException { int i = 0; boolean found = false;