Handing exception (in exception handler) from render response phase with 
forward/redirect is inconsistent
---------------------------------------------------------------------------------------------------------

                 Key: MYFACES-3191
                 URL: https://issues.apache.org/jira/browse/MYFACES-3191
             Project: MyFaces Core
          Issue Type: Sub-task
    Affects Versions: 2.1.2-SNAPSHOT
         Environment: myfaces trunk
            Reporter: Martin Kočí


View.xhtml snippet:
<h:commandButton value="Submit">
                <f:setPropertyActionListener value="#{true}" 
target="#{bean.rendered}" />
                <f:ajax render="outputText" />
</h:commandButton>
<h:outputText rendered="#{bean.rendered}" id="outputText" value="#{bean.value}" 
/>

Bean.java snippet:
public Object getValue() {
                throw new NullPointerException();
}

Custom exception handler code:
                        if (PhaseId.RENDER_RESPONSE.equals(currentPhaseId)) {
                                try {
                                        nav.handleNavigation(facesContext, 
null, "/ErrorPage.xhtml?faces-redirect=true");
                                } finally {
                                        i.remove();
                                }
                        }
Modify view and exception handler to achieve following combinations (HTML 
request = comment out f:ajax, forward = remove ?faces-redirect=true)

1) HTML request  + forward: nothing in log, and malformed output is produced 
(no closing tags for  </body> etc.)

2) HTML request + redirect: OK , redirect to ErrorPage.xhtml is done

3) AJAX request + forward: exception in log, bud no forward to ErrorPage 
performed

4) AJAX request + redirect: exception in log, malformed XML produced (<?xml and 
<partial-response 2x in output) , no redirect performed


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to