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: dev@tomcat.apache.org
          Reporter: 1983-01...@gmx.net
    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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to