camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-11178) Default method is invisible during Camel Simple evaluation
Date Fri, 21 Apr 2017 08:12:04 GMT

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

Claus Ibsen commented on CAMEL-11178:
-------------------------------------

Okay that is fine then you likely need to upgrade to have it working for you. It may also
work on latest 2.17.x but I dont know.

> Default method is invisible during Camel Simple evaluation
> ----------------------------------------------------------
>
>                 Key: CAMEL-11178
>                 URL: https://issues.apache.org/jira/browse/CAMEL-11178
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.16.1
>            Reporter: Anton Sulim
>
> Issue can be reproduced with below unit test, I have not found it in tracker. 
> Essence: interface A has default method, interface B extends A, default method is invisible
during Simple language evaluation. 
> {code:java}
> import org.apache.camel.CamelContext;
> import org.apache.camel.Exchange;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.impl.DefaultCamelContext;
> import org.apache.camel.impl.DefaultExchange;
> import org.junit.Assert;
> import org.junit.Test;
> public class DefaultMethodIsInvisibleTest {
>     public static interface A {
>         public default String defaultMethod() {
>             return "default method result";
>         }
>     }
>     public static interface B extends A {
>     }
>     @Test
>     public void camelSimpleDoesNotSeeDefaultMethod() throws Exception {
>         CamelContext context = new DefaultCamelContext();
>         context.addRoutes(new RouteBuilder() {
>             public void configure() {
>                 from("direct:camelSimpleDoesNotSeeDefaultMethod").log("Result of default
method invocation is ${exchangeProperty.myObject.defaultMethod}");
>             }
>         });
>         context.start();
>         Exchange incomingExchange = new DefaultExchange(context);
>         incomingExchange.setProperty("myObject", new B() {
>         });
>         Exchange result = context.createProducerTemplate().send("direct:camelSimpleDoesNotSeeDefaultMethod",
incomingExchange);
>         Assert.assertNull(result.getException());
>     }
> }
> {code}
> Stacktrace:
> {code}
> Caused by: org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to invoke
method: defaultMethod on null due to: org.apache.camel.component.bean.MethodNotFoundException:
Method with name: defaultMethod not found on bean: com.ubs.wma.gfi.tradersbook.subscriber.DefaultMethodIsInvisibleTest$2@5dafbe45
of type: com.ubs.wma.gfi.tradersbook.subscriber.DefaultMethodIsInvisibleTest$2. Exchange[][Message:
[Body is null]]
>     at org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:290)
>     at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:114)
>     ... 46 common frames omitted
> Caused by: org.apache.camel.component.bean.MethodNotFoundException: Method with name:
defaultMethod not found on bean: com.ubs.wma.gfi.tradersbook.subscriber.DefaultMethodIsInvisibleTest$2@5dafbe45
of type: com.ubs.wma.gfi.tradersbook.subscriber.DefaultMethodIsInvisibleTest$2. Exchange[][Message:
[Body is null]]
>     at org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:269)
>     at org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:183)
>     at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:159)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message