You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Eduardo Breijo (JIRA)" <de...@myfaces.apache.org> on 2017/07/19 21:13:00 UTC

[jira] [Created] (MYFACES-4125) Response committed too early due to flush from StateWriter

Eduardo Breijo created MYFACES-4125:
---------------------------------------

             Summary: Response committed too early due to flush from StateWriter
                 Key: MYFACES-4125
                 URL: https://issues.apache.org/jira/browse/MYFACES-4125
             Project: MyFaces Core
          Issue Type: Bug
    Affects Versions: 2.2.12
            Reporter: Eduardo Breijo
         Attachments: StateWriter.war

We've found a problem where it seems that MyFaces is flushing output too early in the RENDER_RESPONSE PHASE. As a result the response is committed before we have a chance to handle an error in that phase. 

This is because the renderView method from FaceletViewDeclarationLanguage calls writer.endDocument() which ends up calling the flush() method from StateWriter. This commit behavior is different between 2.0 and 2.2.  It looks like a flush() was empty on 2.0, and now a call was added, which causes the issue we are seeing.

Here's a sample app:
1) Drive a request: localhost:9080/StateWriter/index.xhtml
2) You should be able to see in the logs that response was committed, so redirect to error.xhtml cannot be performed.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)