You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Simon Kitching (JIRA)" <de...@myfaces.apache.org> on 2008/01/13 11:13:34 UTC

[jira] Resolved: (MYFACES-1802) FacesException and nested exceptions

     [ https://issues.apache.org/jira/browse/MYFACES-1802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Simon Kitching resolved MYFACES-1802.
-------------------------------------

       Resolution: Fixed
    Fix Version/s:  1.1.6-SNAPSHOT

Ok, fixed. However I have not extensively tested it, as this requires triggering an exception to really try it out.

It wasn't such a big patch as I first thought; as Bernhard noted most of those getCause() calls were actually to FacesException or subclasses of it. In the end only two classes needed to be fixed.

Bernhard, regarding just checking java.version, I presume you mean:
   if (java.version is  1.4 or later)
     return ex.getCause();
  else
    return null;

This relies on the jvm not trying to resolve the linkage for a method call until the call is actually invoked. This does seem to be the way that Sun's jvm works but I've never seen anything in the java specifications that say that this is actually required, so I'd rather use reflection.

> FacesException and nested exceptions
> ------------------------------------
>
>                 Key: MYFACES-1802
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1802
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-127
>    Affects Versions: 1.1.5
>            Reporter: Bernhard Huemer
>             Fix For:  1.1.6-SNAPSHOT
>
>         Attachments: MyFaces-1802.patch
>
>
> The JSF 1.1 specification requires any implementation to support Java 1.3 and that's why the FacesException isn't allowed to utilize builtin exception chaining mechanisms (i.e. initCause(), etc..) as they have been introduced in Java 1.4. However, the FacesException retains it's cause by delegating to the parent's constructor (for example, "super(cause);" or "super(message, cause);"). 
> Although this bug is rather easy to fix, I've assigned the priority level 'Major' as it breaks the specification.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.