[
https://issues.apache.org/jira/browse/SLING-12003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Radu Cotescu resolved SLING-12003.
----------------------------------
Resolution: Fixed
> The RequestDispatcher should flush the buffer on forward only if the buffer
> hasn't already been closed
> ------------------------------------------------------------------------------------------------------
>
> Key: SLING-12003
> URL: https://issues.apache.org/jira/browse/SLING-12003
> Project: Sling
> Issue Type: Improvement
> Components: Engine
> Affects Versions: Engine 2.2.10
> Reporter: Radu Cotescu
> Assignee: Radu Cotescu
> Priority: Major
> Fix For: Engine 2.15.6
>
>
> The {{SlingRequestDispatcher#forward}} call [0] attempts to close the
> response buffer even if this has already been closed by the servlet to which
> the request was originally forwarded. The Servlet Specification [1] mentions
> the following in section 9.4:
> {quote}Before the forward method of the RequestDispatcher interface returns
> without exception, the response content must be sent and committed, and
> closed by the servlet container, unless the request was put into the
> asynchronous mode.
> {quote}
> As such, the {{RequestDispatcher#forward}} implementation should indeed make
> sure the response is committed, but it's not necessarily the only one that
> must commit the response. Jetty seems to have the same understanding [2],
> where the close is performed only if the response hasn't already been
> committed and the request is not async.
> [0] -
> [https://github.com/apache/sling-org-apache-sling-engine/blob/368690a2a81fd8a121e62767fcd32b63936a65b8/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java#L125-L128]
> [1] -
> [https://download.oracle.com/otn-pub/jcp/servlet-3_1-fr-spec/servlet-3_1-final.pdf]
> [2] -
> [https://github.com/eclipse/jetty.project/blob/jetty-11.0.x/jetty-server/src/main/java/org/eclipse/jetty/server/Dispatcher.java#L218]
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)