camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadrian Zbarcea (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CAMEL-1922) BeanEndpoint fails in the presence of bridge methods
Date Thu, 20 Aug 2009 03:43:36 GMT

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

Hadrian Zbarcea commented on CAMEL-1922:
----------------------------------------

Yes it does.  Would you like to submit a patch?  We highly appreciate contributions :)

> BeanEndpoint fails in the presence of bridge methods
> ----------------------------------------------------
>
>                 Key: CAMEL-1922
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1922
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 1.6.1
>         Environment: Java SE 5
>            Reporter: Adam Brewster
>   Original Estimate: 2 days
>  Remaining Estimate: 2 days
>
> When a message is sent to a bean: endpoint, camel searches for a method with the right
signature.  If multiple methods are found, an exception is thrown.
> If a have an interface like
> public interface <T> I {
>   T function(T arg);
> }
> and a class like
> public class C implements I<Number> {
>   Number function(Number arg) {
>     return new Double(arg.doubleValue() * 2);
>   }
> }
> then I can't use an instance of C as an endpoint.
> The problem is that under the hood java has created a bridge method, and the "real" class
C looks like
> public class C implements I<Number> {
>   Number function(Number arg) {
>     return new Double(arg.doubleValue() * 2);
>   }
>   Object function(Object arg) {
>     return function((Number) arg);
>   }
> }
> Camel then discovers that there are two methods it could call (f(Object) and f(Number))
and throws an exception even though there's no real ambiguity because both methods do the
same thing.
> I recommend rejecting bridge methods in BeanInfo.isValidMethod with somehting like
> if (method.isBridgeMethod()) return false;
> Does this sound reasonable?

-- 
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