Since the specification doesn't make an exception for this case, I would say that this is an inconsistency in the implementation. I recommend creating an issue report in Mojarra.<br><br>-Dan<br><br><div class="gmail_quote">
On Sun, Sep 6, 2009 at 12:00 PM, Lincoln Baxter, III <span dir="ltr"><<a href="mailto:lincolnbaxter@gmail.com">lincolnbaxter@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
If the current response has already been completed before RESTORE_VIEW phase (eg, because a PhaseListener called facesContext.responseComplete() beforePhase ), Faces continues to attempt lifecycle processing. I'm thinking that this should be handled by halting lifecycle processing as defined in the API -- Is this a bug or a something we need to discuss? What do you guys think?<br>
<br>
<br>
/**<br>
* <p>Signal the JavaServer Faces implementation that the HTTP response<br>
* for this request has already been generated (such as an HTTP redirect),<br>
* and that the request processing lifecycle should be terminated as soon<br>
* as the current phase is completed.</p><br>
*<br>
* @throws IllegalStateException if this method is called after<br>
* this instance has been released<br>
*/<br>
public abstract void responseComplete();<br>
<br>
<br>
Caused by: java.lang.IllegalStateException<br>
        at com.sun.faces.context.FacesContextImpl.assertNotReleased(FacesContextImpl.java:639)<br>
        at com.sun.faces.context.FacesContextImpl.getCurrentPhaseId(FacesContextImpl.java:515)<br>
        at javax.faces.event.ExceptionQueuedEventContext.<init>(ExceptionQueuedEventContext.java:148)<br>
        at javax.faces.event.ExceptionQueuedEventContext.<init>(ExceptionQueuedEventContext.java:101)<br>
        at com.sun.faces.lifecycle.Phase.queueException(Phase.java:152)<br>
        at com.sun.faces.lifecycle.Phase.queueException(Phase.java:145)<br>
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:105)<br>
        at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)<br>
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)<br>
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)<br>
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br>
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br>
<table cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td>
--<br>
<b>Lincoln Baxter, III</b><br>
Co-Founder of <a href="http://ocpsoft.com" target="_blank">OcpSoft</a><br>
Author of <a href="http://ocpsoft.com/prettyfaces" target="_blank">PrettyFaces</a> URL Rewriting for JSF<br>
<br>
<br>
</td>
</tr>
</tbody></table>
</div>
</blockquote></div><br><br clear="all"><br>-- <br>Dan Allen<br>Senior Software Engineer, Red Hat | Author of Seam in Action<br>Registered Linux User #231597<br><br><a href="http://mojavelinux.com">http://mojavelinux.com</a><br>
<a href="http://mojavelinux.com/seaminaction">http://mojavelinux.com/seaminaction</a><br><a href="http://in.relation.to/Bloggers/Dan">http://in.relation.to/Bloggers/Dan</a><br>