[ https://issues.apache.org/jira/browse/CAMEL-11178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15977600#comment-15977600 ]
Anton Sulim commented on CAMEL-11178: ------------------------------------- Yes, it works with 2.18.3. > 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)