When redirecting at ExceptionFilter, it seems that the ConversationEntry lock is not released.
Therefore, if next request is processed by the another thread, the thread wait for until unlocking.
This results in the user being redirected to the no-conversation-view-id after the concurrent-request-timeout expires.
I checked the Seam 2.0.2.SP1 source. It seems that the unlocking process for ConversationEntry
is skipped when Exception is thrown from JSF Action that invoked in INVOKE_APPLICATION phase.
When Exception is not thrown, the lock is release after INVOKE_APPLICATION phase.
(at method calling "afterResponseComplete(facesContext)" at 249 line of SeamPhaseListener.java)
When Exception is thrown, this method is not called because of the result of FacesContext#getResponseComplete()