You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Michał Warecki (Commented JIRA)" <ji...@apache.org> on 2012/03/07 13:38:59 UTC

[jira] [Commented] (CAMEL-4230) BeanProcessor - Improved exception message if failed to invoke method

    [ https://issues.apache.org/jira/browse/CAMEL-4230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13224237#comment-13224237 ] 

Michał Warecki commented on CAMEL-4230:
---------------------------------------

I think it can be done as in the case IllegalArgumentException:

protected Object invoke(Method mth, Object pojo, Object[] arguments, Exchange exchange) throws InvocationTargetException {
        try {
            return mth.invoke(pojo, arguments);
        } catch(IllegalAccessException e) {
            throw new RuntimeExchangeException("IllegalAccessException occurred invoking method: " + mth + " using arguments: " + Arrays.asList(arguments), exchange, e);
        } catch (IllegalArgumentException e) {
            throw new RuntimeExchangeException("IllegalArgumentException occurred invoking method: " + mth + " using arguments: " + Arrays.asList(arguments), exchange, e);
        }
    }
                
> BeanProcessor - Improved exception message if failed to invoke method
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-4230
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4230
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>            Reporter: Claus Ibsen
>            Priority: Minor
>             Fix For: 2.10.0
>
>
> See nabble
> http://camel.465427.n5.nabble.com/How-to-impl-bean-side-of-proxy-w-Future-return-tp4581104p4581104.html
> If for some reason the method cannot be invoked, you may get a caused exception
> {code}
> Caused by: java.lang.IllegalAccessException: Class org.apache.camel.component.bean.MethodInfo can not access a member of class com.sonatype.overlord.xpi.AsyncProxyBeanCamelTest$1 with modifiers "public"
>        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
>        at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:329)
>        at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:231)
>        at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:169)
> {code}
> We should catch this and provide a wrapped exception with a more descriptive error message, about the bean and method attempted to invoke.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira