Details
Description
Each time a server-side render is initiated, the following Exception is thrown.
10:42:57,522 ERROR [SeamPhaseListener] uncaught exception
java.lang.IllegalStateException: No active application scope
at org.jboss.seam.core.Init.instance(Init.java:88)
at org.jboss.seam.jsf.TransactionalSeamPhaseListener.handleTransactionsBeforePhase(TransactionalSeamPhaseListener.java:25)
at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:48)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:144)
at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:126)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668)
at java.lang.Thread.run(Unknown Source)
This is due to the fact that under JSF 1.2, facesContext.renderResponse() causes all phase listeners to be skipped (unlike JSF 1.1). The phase listeners are necessary during Ajax Push to set up the Seam contexts.
The intended fix is to no longer flag the server side execution with renderResponse(), but to clear the parameter map so that the server-side render has no application-level side-effects.