On Sat, 21 Dec 2002, Ken Williams wrote:
> I don't think this is the same bug. Why are you calling $m->redirect()
> from within a <%shared> block? I don't know that that will work. Also,
> the Developer docs say "Avoid using <%shared> for side-effect code that
> needs to run at a predictable time during page generation", and it looks
> like you're using <%shared> for timing control.
This is a bug, though not quite exactly the same as #400. Basically, if
$m->abort is called in a <%shared> block, Request.pm tries to flush the
buffer (in comp()), which dies because the Buffer object expects to be
able to get a coderef from the component (which just aborted). However,
this coderef isn't set until the main component body runs.
The easy fix is to simply return the unfiltered output if the filter
coderef doesn't exist. I'm not sure this is the best solution, but it's
better than dying.
we await the New Sun