[ 
https://issues.apache.org/jira/browse/SLING-2724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13574232#comment-13574232
 ] 

Felix Meschberger commented on SLING-2724:
------------------------------------------

Thanks for tracking. I have the impression, we can fix this ...

Error handling is basically funneled through the 
SlingRequestProcessorImpl.handleError methods. Those call the registered 
ErrorHandler servlet -- either the DefaultErrorHandler which does a 
response.flushBuffer() at the end -- or more probable the SlingServletResolver 
which does *not* flush the response.

I think we have two options: (a) flush the response in the SlingServletResolver 
after calling the error handler servlet (which may be a wrapped script) or (b) 
in the SlingRequestProcessorImpl.handleError methods. I am inclined to propose 
that we do both.
                
> Error handling doesn't respect servlet spec
> -------------------------------------------
>
>                 Key: SLING-2724
>                 URL: https://issues.apache.org/jira/browse/SLING-2724
>             Project: Sling
>          Issue Type: Bug
>          Components: Servlets
>            Reporter: Antonio Sanso
>
> If there is some servlet that is sending a 500 error 
> (response.sendError(500)) and output something after e.g. "All good" (maybe 
> this is the wrong part...) and a 500.jsp exists, Sling will "shows" both:
> - the error page 500.jsp
>  - and the the extra output (e.g. All good) 
> This seems to violate the spec:
> "These methods [sendError, sendRedirect] will have the side effect of 
> committing the response, if it has not already been committed, and 
> terminating it. No further output to the client should be made by the servlet 
> after these methods are called. If data is written to the response after 
> these methods are called, the data is ignored."
> Integration test showing the issue in [0]
> Mailing list thread in [1]
> [0] 
> https://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/resolver/errorhandler/ErrorHandlingTest.java
> [1] sling.markmail.org/thread/k2t7p5mhi4hgelwb

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to