<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
If the current response has already been completed before RESTORE_VIEW phase (eg, because a PhaseListener called facesContext.responseComplete()&nbsp; 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>
&nbsp;&nbsp;&nbsp; /**<BR>
&nbsp;&nbsp;&nbsp;&nbsp; * &lt;p&gt;Signal the JavaServer Faces implementation that the HTTP response<BR>
&nbsp;&nbsp;&nbsp;&nbsp; * for this request has already been generated (such as an HTTP redirect),<BR>
&nbsp;&nbsp;&nbsp;&nbsp; * and that the request processing lifecycle should be terminated as soon<BR>
&nbsp;&nbsp;&nbsp;&nbsp; * as the current phase is completed.&lt;/p&gt;<BR>
&nbsp;&nbsp;&nbsp;&nbsp; *<BR>
&nbsp;&nbsp;&nbsp;&nbsp; * @throws IllegalStateException if this method is called after<BR>
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; this instance has been released<BR>
&nbsp;&nbsp;&nbsp;&nbsp; */<BR>
&nbsp;&nbsp;&nbsp; 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.&lt;init&gt;(ExceptionQueuedEventContext.java:148)<BR>
        at javax.faces.event.ExceptionQueuedEventContext.&lt;init&gt;(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 CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
--<BR>
<B>Lincoln Baxter, III</B><BR>
Co-Founder of <A HREF="http://ocpsoft.com">OcpSoft</A><BR>
Author of <A HREF="http://ocpsoft.com/prettyfaces">PrettyFaces</A> URL Rewriting for JSF<BR>
<BR>
<BR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>