https://issues.apache.org/bugzilla/show_bug.cgi?id=54220
Bug ID: 54220
Summary: ErrorReportValve invoked on non-error responses too
Product: Tomcat 6
Version: 6.0.36
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
Classification: Unclassified
If you issue a response.setStatus(404) from a servlet, you expect as per spec
that the response is left untouched. No error page written. There is sendError
for that.
Unfortunately, ErrorReportValve reacts on line 158
> if ((statusCode < 400) || (response.getContentCount() > 0))
> return;
If you take a look at the StandardHostValve, it invokes error handling on line
316
> if (!response.isError())
> return;
On errors only (correct behavior).
The ErrorReportValve must react on response.isError() == true only. Regardless
of the status code or the content count.
The Javadoc does not limit this to status codes >= 400 but is says that
reponse.sendError() has to clears buffers. As far I understand that, regardless
of the response body is disposed and the error reponse is always written.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]