> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> 
> tcurdt      2002/07/22 19:04:30
> 
>   Modified:    src/java/org/apache/cocoon/sitemap
ContentAggregator.java
>   Log:
>   fixed a raise condition

You mean race condition.

But, ContentAggregator is Recyclable, which means that it is Poolable,
which means that it is allowed to be accessed by one thread only,
*especially* in lifecycle methods (AFAIU Avalon - am I right?).


If you observe several threads in recycle() at once, it means that
something is *really* wrong somewhere, and it is better to find reason
of the real problem then mask its consequences.


Vadim


> 
>   Revision  Changes    Path
>   1.8       +10 -3     xml-
> cocoon2/src/java/org/apache/cocoon/sitemap/ContentAggregator.java
> 
>   Index: ContentAggregator.java
>   ===================================================================
>   RCS file: /home/cvs/xml-
> cocoon2/src/java/org/apache/cocoon/sitemap/ContentAggregator.java,v
>   retrieving revision 1.7
>   retrieving revision 1.8
>   diff -u -r1.7 -r1.8
>   --- ContentAggregator.java  4 Jun 2002 07:31:52 -0000       1.7
>   +++ ContentAggregator.java  23 Jul 2002 02:04:30 -0000      1.8
>   @@ -289,8 +289,15 @@
>        public void recycle() {
>            super.recycle();
>            this.rootElement = null;
>   -        for (Iterator i = this.parts.iterator(); i.hasNext();)
>   -            this.resolver.release(((Part)i.next()).source);
>   +        for(int i=0; i<this.parts.size();i++) {
>   +            final Part current = (Part)this.parts.get(i);
>   +            if (current.source != null) {
>   +                if (getLogger().isDebugEnabled()) {
>   +                    getLogger().debug("releasing " +
> String.valueOf(current.source));
>   +                }
>   +                this.resolver.release(current.source);
>   +            }
>   +        }
>            this.parts.clear();
>            this.currentElement = null;
>            this.resolver = null;


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to