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/
