Hi,
I get the following Exception when Cocoon processes a request:
org.apache.cocoon.ProcessingException: Unable to remove component from
automatic release: component not found.
at
org.apache.cocoon.components.EnvironmentDescription.removeFromAutoRelease(CocoonComponentManager.java:789)
The component here being the processing pipeline. This happens because
InvokeContext.getProcessingPipeline adds the pipeline conditionally:
if (this.isBuildingPipelineOnly) {
CocoonComponentManager.addComponentForAutomaticRelease(this.pipelineSelector,
this.processingPipeline, this.pipelinesManager);
}
Wheras AbstractProcessingPipeline removes itself unconditionally:
public void release() {
try {
CocoonComponentManager.removeFromAutomaticRelease(this);
} catch (ProcessingException e) {
...
}
}
Since the Exception occurs with each request, this wastes valuable log
space ;) So I would like to fix this. The question is, how? The hack
solution would be to not log the exception. The better solution would be
to somehow tell AbstractProcessingPipeline if it has to call
removeFromAutomaticRelease.
But.. Upon digging deeper... This whole automatic release stuff is used
only once in all of Cocoon -- for the ProcessingPipeline. So maybe there
is a way to get rid of it completely? Any suggestions?
Regards,
Jochen