cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frank Ittermann (JIRA)" <>
Subject [jira] Commented: (CXF-1727) I guess there is an error in the ProviderFactory of jaxrs component.
Date Wed, 30 Jul 2008 18:19:31 GMT


Frank Ittermann commented on CXF-1727:

Before i can submit a patch i will try if me suggestion is right. I fixed this and build a
new cxf 2.1.2 version local. After that i will see if i have the time submit the patch tomorrow.

Can you give advices how could i submit a patch here or a link.

> I guess there is an error in the ProviderFactory of jaxrs component.
> --------------------------------------------------------------------
>                 Key: CXF-1727
>                 URL:
>             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.

View raw message