[
https://issues.apache.org/jira/browse/SLING-11702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Carsten Ziegeler updated SLING-11702:
-------------------------------------
Fix Version/s: (was: Servlets Resolver 2.10.0)
> 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
>
>
> 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)