On 26/07/2018 13:46, Assia Djambazova wrote:
Hello,

I noticed that when using HttpServletResponse.sendError in Tomcat 7.0.90
with string message the message is no longer shown as the response is
displayed.

I reproduce this with request to simple servlet:



*    public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
  response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "TEST
ERROR MESSAGE");    }*

The result in the browser is different:

In Tomcat 7.0.90  HTTP Status 500 ? Internal Server Error

That question mark doesn't look right. I don't see it when I test this locally.

In Tomcat 7.0.88  HTTP Status 500 - TEST ERROR MESSAGE

I think that this change is the cause [1]

Correct.

However, this change looks incompatible with servlet spec and breaks our
integration tests. It seems to me from the spec [2] that the message should
be displayed: *The server defaults to creating the response to look like an
HTML-formatted server error page containing the specified message, setting
the content type to "text/html"*

This is not a spec compliance issue. The ErrorReportValve is an optional component that is not enabled by default.

(And the default settings of the ErrorReportValve) are spec compliant.)

I use the ErrorReportValve and showReport is set to false.

Set showReport to true.

Reading [3]
doesn't clarify if error message is part of the error report or not and if
it should be displayed.

It is implied but it could be clearer.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to