[
https://issues.jboss.org/browse/CDI-206?page=com.atlassian.jira.plugin.sy...
]
Lincoln Baxter III commented on CDI-206:
----------------------------------------
It sounds like this issue needs to be raised with the Servlet 3.1 Spec - to extend the
Exception handling functionality to the entire container, not just for Servlets, Filters,
and certain Listeners.
Conversation related exceptions cannot be handled
-------------------------------------------------
Key: CDI-206
URL:
https://issues.jboss.org/browse/CDI-206
Project: CDI Specification Issues
Issue Type: Bug
Components: Contexts
Affects Versions: 1.1.EDR
Reporter: Jozef Hartinger
Fix For: 1.1 (Proposed)
This issue emerged after adding support for conversations as part of CDI-80
The spec says:
{quote}The conversation associated with a Servlet request is determined at the beginning
of the request before calling any
service() method of any servlet in the web application, calling the doFilter() method of
any servlet filter in the web
application and before the container calls any ServletRequestListener or AsyncListener in
the web application.
{quote}
and
{quote}
If the propagated conversation cannot be restored, the container must associate the
request with a new transient conversation and throw an exception of type
javax.enterprise.context.NonexistentConversationException.
The container ensures that a long-running conversation may be associated with at most one
request at a time, by blocking
or rejecting concurrent requests. If the container rejects a request, it must associate
the request with a new transient conversation and throw an exception of type
javax.enterprise.context.BusyConversationException.
{quote}
The conversation association is supposed to be done before any servlet, filter or
listener is invoked. If the association fails (due to NonexistentConversationException or
BusyConversationException), the application has no way of handling this failure
gracefully. The Servlet error-page mechanism cannot be used portably because it is only
handling uncaught exceptions thrown from a servlet / filter. Similarly, a commonly used
exception handling mechanism - an outer filter that catches every uncaught exception,
cannot be used since the association failure does not occur within the filter invocation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira