[
https://issues.apache.org/jira/browse/MYFACES-1888?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonardo Uribe updated MYFACES-1888:
------------------------------------
Status: Patch Available (was: Open)
> catch Throwable errors when using ErrorPageWriter (myfaces error handling)
> --------------------------------------------------------------------------
>
> Key: MYFACES-1888
> URL: https://issues.apache.org/jira/browse/MYFACES-1888
> Project: MyFaces Core
> Issue Type: Improvement
> Affects Versions: 1.1.6-SNAPSHOT, 1.2.3
> Reporter: Leonardo Uribe
> Assignee: Leonardo Uribe
> Attachments: patchHandleErrorListUpdatePhase11.patch
>
>
> One possible enhancement to the myfaces error handling capability is catch
> Throwable errors when using myfaces error handling.
> This should be done taking into account what the spec says about it:
> - Call the execute() method of the saved Lifecycle instance, passing the
> FacesContext instance for this request as a parameter. If the execute()
> method throws a FacesException, re-throw it as a ServletException with
> the FacesException as the root cause.
> Call the render() method of the saved Lifecycle instance, passing the
> FacesContext instance for this request as a parameter. If the render() method
> throws a FacesException, re-throw
> The idea is catch and rethrow non Exception classes like errors (extends from
> Throwable or Error classes directly). If Myfaces error handling is used use
> it to show the error page with the info, taking into account that not all
> info could be available.
> The idea is do this on FacesServlet:
> try {
> _lifecycle.execute(facesContext);
> if (!handleQueuedExceptions(facesContext))
> {
> _lifecycle.render(facesContext);
> }
> }
> catch (Exception e)
> {
> handleLifecycleException(facesContext, e);
> }
> catch (Throwable e)
> {
> //Handle Error and Throwable error cases (out-of-memory-errors,
> ....).
> handleLifecycleThrowable(facesContext, e);
> }
> finally
> {
> facesContext.release();
> }
> Please note that any change should not break old functionality.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.