[
https://jira.nuxeo.com/browse/NXP-7823?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Florent Guillaume updated NXP-7823:
-----------------------------------
Description:
When transactions are activated, {{NuxeoRequestControllerFilter}} wraps the
response in a {{CommittingServletResponseWrapper}} to ensure that a commit is
done before any byte is sent to the client.
But this means that the rest of the server processing will be done without a
transaction present, which could be worse than the original solution for the
problem (NXP-5129). The problem is that if the rest of the code runs without a
transaction, any session opening for instance will not get a session whose
invalidations have been processed so will potentially see invalid state.
Instead should buffer the whole response, then commit in
{{NuxeoRequestControllerFilter}}, then send the response. There should be a way
to bypass this for processes that really need to stream a response to the
client (file download).
was:
When transactions are activated, {{NuxeoRequestControllerFilter}} wraps the
response in a {{CommittingServletResponseWrapper}} to ensure that a commit is
done before any byte is sent to the client.
But this means that the rest of the server processing will be done without a
transaction present, which could be worse than the original solution for the
problem (NXP-5129). The problem is that if the rest of the code runs without a
transaction, any session opening for instance will not get a session whose
invalidations have been processed so will potentially see invalid state.
> Always commit the transaction before sending the response
> ---------------------------------------------------------
>
> Key: NXP-7823
> URL: https://jira.nuxeo.com/browse/NXP-7823
> Project: Nuxeo Enterprise Platform
> Issue Type: Bug
> Components: Web Foundations
> Affects Versions: 5.3.2
> Reporter: Florent Guillaume
> Assignee: Florent Guillaume
> Priority: Critical
> Fix For: 5.5
>
>
> When transactions are activated, {{NuxeoRequestControllerFilter}} wraps the
> response in a {{CommittingServletResponseWrapper}} to ensure that a commit is
> done before any byte is sent to the client.
> But this means that the rest of the server processing will be done without a
> transaction present, which could be worse than the original solution for the
> problem (NXP-5129). The problem is that if the rest of the code runs without
> a transaction, any session opening for instance will not get a session whose
> invalidations have been processed so will potentially see invalid state.
> Instead should buffer the whole response, then commit in
> {{NuxeoRequestControllerFilter}}, then send the response. There should be a
> way to bypass this for processes that really need to stream a response to the
> client (file download).
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets