Remy Maucherat wrote:

>
>> Can you point me to the code doing this extra processing ?
>>
>> I'm a bit confused:
>> - for jsps ( with flush-in-release ) that just can't work, since the
>> flush is already done by the jsp page.
>> - the comment ( or the message ) in forward is probably wrong.
>> - my bigger question is when is the response not a facade ? My
>> understanding
>> is that facades are used all the time, so the second part of the if will
>> never happen
> 
> That code was already there before the facades. I don't think it is used
> anymore, but would leave it anyway in 4.1.x (it could be removed in 5).

I already reverted the patch in 4.1.x - it's too dangerous for the 
stable tree.

So you are saying that forward() used to do a flush, but it was
changed when facades where added to just set the flag - to improve
the error handling. Sounds consistent with the behavior we have now.

Could you add a little comment ( or at least remove the debug message
that says 'flushing' ) ? The new behavior ( no real flush ) seems 
correct.

Costin

>> I do see your point - if forward() flushes then the extra error
>> processing is broken. That's another argument to not do the flush() in
>> release() :-) And it does explain who is generating the stack trace.
> 
> The error page and status report processing is in
> ErrorReport/DispatcherValve. That's where the stack trace is output
> unless the response has been committed (by flushing usually).




> 
>>
>> I have a feeling we just need to clear the error flags after the jsp
>> error page - I'm pretty sure the jsp error page was executed and the data
>> is in the out buffer. Somehow the servlet error processing kicks in and
>> overrides the jsp error page.
> 
> Yes, that's likely the right explanation.
> 
> Remy




--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org>

Reply via email to