Carsten Ziegeler wrote:
As discussed recently, our internal redirects don't work the way one would usually suspect. If you do an internal
redirect, like:
<map:redirect-to uri="cocoon://some-pipeline"/>
and the called pipeline has an error, then the error handler of the calling pipeline (containing the redirect) is called and not the error handler of the called pipeline. So, the above line is not the same as:
<map:redirect-to uri="some-pipeline"/>
So, we have three choices to change this:
a) Make an internal redirect a real forward (This is an incompatible change)
b) Make it configurable on the uri, like <map:redirect-to uri="cocoon://some-pipeline?cocoon:forward=true"/>
c) Make it configurable on the map:redirect, like <map:redirect-to uri="cocoon://some-pipeline" forward="true"/>
For solutions b) and c) we can discuss the correct syntax later on, let's for now focus on the way we want to have it.
Although this is an incompatible change, I prefer a) as it is imho the right way of doing the redirect.
Please cast your votes for either a), b) or c)
+1 for (a) and therefore -1 for (b) and (c).
However, as discussed, a "cocoon:handle-errors=true|false" parameter is useful for use with the SourceResolver.
Why (a), (b), or (c) ? There is always option of (d):
d) Make it configurable on handle-errors element of the called pipeline. This way, behavior of redirect-to does not need to be changed, and this feature is more useful in general - especially in "portlets". Or is this feature will be subject of next vote? :)
I'm +1 for (d), +0 for (a), -0.5 for (b) and (c).
Vadim
