[jsr-314-open-mirror] [jsr-314-open] [Mojarra-1812-FacesServlet.service] PROPOSAL

Ed Burns edward.burns at oracle.com
Wed Sep 8 12:44:49 EDT 2010


Thanks for your prompt response.

Comments inline.

>>>>> On Wed, 8 Sep 2010 18:05:15 +0200, Matthias Wessendorf <matzew at apache.org> said:

MW> I think I don't get why the release() has been (re)moved at all and
MW> why this now need to exposed as lifecyle API.
MW> Doesn't the ticket talk about exception handling/reporting? I think I
MW> don't understand how that is related to release the facesCtx.

The reason it impacts exception handling is the case where an exception
is thrown as a result of action taken by the JSF impl to synchronize
session scoped beans at the end of a JSF request so that clustering
requirements are not violated.  This is the catch block that needs to be
invoked when such an exception is thrown:

EB> +        } catch (Throwable t) {
EB> +            ExceptionQueuedEventContext eventContext =
EB> +                    new ExceptionQueuedEventContext(context, t);
EB> +            context.getApplication().publishEvent(context,
EB> +                    ExceptionQueuedEvent.class, eventContext);
EB> +            context.getExceptionHandler().handle();
EB> +        } finally {

Obviously, this needs to happen *before* the FacesContext is released.

This proposal, provides a simple and clean way for the implemention to
know that the jsf portion of the request processing lifecycle has
finished.

Ed
-- 
| edward.burns at oracle.com | office: +1 407 458 0017
| homepage:               | http://ridingthecrest.com/
|  7 work days until JavaOne 2010




More information about the jsr-314-open-mirror mailing list