Ok, what happen: Calling a Cocoon Source "cocoon://....." the Pipeline inside the Sitemap is called twice. The reason is the following code inside the SitemapSourceFactory
public void release( Source source ) { if ( null != source ) { if ( this.getLogger().isDebugEnabled() ) { this.getLogger().debug("Releasing source " + source.getURI()); } ((SitemapSource)source).recycle(); } }
The problem is the source.getURI() inside the logging statement. Why? Because the source is already reset after the serialization and a call to source.getURI initialize the source again and this calles the Sitemap again :-(
My proposal is, remove the source.getURI from the logging statement or change the getURI() implementation to not init the Source again. I am not sure if this URI can change after it is init?
Is this possibly the same problem as described at http://marc.theaimsgroup.com/?t=105586313100003&r=1&w=2 ??
Joerg