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

Carsten Ziegeler commented on SLING-11702:
------------------------------------------

Implemented in the engine in 
https://github.com/apache/sling-org-apache-sling-engine/commit/e43285f3a7896a62b3ce1bf397b4c5852b66583a

> Prevent wrong handling of error handlers
> ----------------------------------------
>
>                 Key: SLING-11702
>                 URL: https://issues.apache.org/jira/browse/SLING-11702
>             Project: Sling
>          Issue Type: Improvement
>          Components: Engine, Servlets
>            Reporter: Carsten Ziegeler
>            Assignee: Carsten Ziegeler
>            Priority: Major
>             Fix For: Engine 2.13.0, Servlets Resolver 2.10.0
>
>
> As documented in 
> https://sling.apache.org/documentation/the-sling-engine/errorhandling.html#resetting-the-response
>  when implementing a customer error handler it is up to the implementation to 
> check whether a response is committed, and to reset the response. If this is 
> not done by the error handler this can result in wrong responses back to the 
> client.
> We can make it easier for error handlers, by checking whether the response is 
> already committed and only invoke the error handler if not. And in that case 
> first reset the response. This avoids to rely on the implementor of the error 
> handler doing the right thing but will also not break existing error handlers.
> In addition, we should only invoke error handlers if the current response is 
> not an include - in the case of an include the exception should be propagated 
> up the call chain. According to the servlet spec includes are not allowed to 
> set headers or reset the response.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to