cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carsten Ziegeler <cziege...@apache.org>
Subject Serious bug in tree processor
Date Thu, 08 Sep 2005 07:59:02 GMT
I just found a big bug in our treeprocessor (2.1.8-dev and 2.2 are
effect, in 2.1.7 this works perfectly): if you have several pipeline
sections in the sitemap using different pipeline implementations, always
the first configured is used.
For example:
<map:pipeline type="expires">
...
</map:pipeline>
<map:pipeline type="noncaching">
  <map:match pattern="a">
  ...
</map:pipeline>

In the example above, the expires pipeline us even used if you request "a".
The problem is in the PipelineNode, line . The getProcessingPipeline()
method is called to set the error handler in each encountered pipeline
section. The InvokeContext checks in this method if a pipeline has
already been instantiated and only creates one if not.
I just checked in a quick fix which resets the processing pipeline in
the inform() method of the InvokeContext, but I'm not sure if this is
the best way. Imho we should only lookup the pipeline component if it is
really used.

Perhaps this is as well the cause of Reinhard's problem wrt caching.

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Mime
View raw message