cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-1727) I guess there is an error in the ProviderFactory of jaxrs component.
Date Wed, 30 Jul 2008 15:53:31 GMT

    [ https://issues.apache.org/jira/browse/CXF-1727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12618398#action_12618398
] 

Sergey Beryozkin commented on CXF-1727:
---------------------------------------

Thanks for it, I consider your suggestion be a patch. I'm planning to do a merge with few
minor fixes very soon this week and I'll include this fix.

> I guess there is an error in the ProviderFactory of jaxrs component.
> --------------------------------------------------------------------
>
>                 Key: CXF-1727
>                 URL: https://issues.apache.org/jira/browse/CXF-1727
>             Project: CXF
>          Issue Type: Bug
>          Components: REST
>    Affects Versions: 2.1.2
>         Environment: Windowx XP, Apache Tomcat and i used spring configuration
>            Reporter: Frank Ittermann
>
> I thin in the method createExceptionMapper of the org.apache.cxf.jaxrs.provider.ProviderFactory
class is an error.
> The following code block is wrong i guess:
> if (exceptionType.isAssignableFrom((Class<?>)args[i])) {
>    InjectionUtils.injectContextFields(em.getProvider(), em, m);
>    InjectionUtils.injectContextMethods(em.getProvider(), em, m);
>    return em.getProvider();
> }
> The if doesn't work correctly. I wrote a ExceptionMapper<Exception> for the general
Exception class. And i tested this ExceptionMapper with a throw of a IOException and it was
not called. So I decided to debug the ExceptionMapper staff and i found that the if in the
code block a above is false.
> So i wrote a little test to understand this.
> System.out.println(IOException.class.isAssignableFrom(Exception.class));
> System.out.println(Exception.class.isAssignableFrom(IOException.class));
> The first line of code is what your if does and if you check this you will see it returns
false. But Exception is the super class
> of IOException how could it possible. The answer is easy because the isAssignableFrom
method check if the 
> passed class parameter is the same or a child of the class on which isAssignableForm
was called. So The bug fix will be the second line they return true. 
> Please change the wrong code block the right order of parameter will be
> if (((Class<?>)args[i]).isAssignableFrom(exceptionType))
> Thank for your attention

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


Mime
View raw message