camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (Resolved) (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CAMEL-5036) Camel route with bean element sends on startup invalid message to target route that is represented by a proxy who exposes route
Date Fri, 24 Feb 2012 15:44:48 GMT

     [ https://issues.apache.org/jira/browse/CAMEL-5036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Claus Ibsen resolved CAMEL-5036.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.10.0
                   2.9.1

Changed the toString to avoid calling toString on the bean
                
> Camel route with bean element sends on startup invalid message to target route that is
represented by a proxy who exposes route
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-5036
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5036
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.2.0
>            Reporter: Stefan Burkard
>            Assignee: Claus Ibsen
>             Fix For: 2.9.1, 2.10.0
>
>
> I expose a Camel route with a direct endpoint defined in an OSGi bundle with the <camel:proxy>
and <osgi:service> tags. The reason for this is to be able to call this direct-route
in other routes (defined in other bundles) as a "sub-route" directly as bean [.bean(routeproxy,
"method")]. This works as expected.
> But on route startup the toString method is called on the route (for a description) which
is propagated to the elements of the route. Therefore my bean-element (which is the direct-route-proxy)
receives the toString call and the CamelInvocationHandler converts this toString call to a
message and sends it to the direct-route. This more or less empty message is of course not
valid for the target route and produces an error on bundle startup.  
> Shouldn't the toString call be suppressed by the proxy, since toString is not part of
the Interface the proxy represents? Or is my approach a not recommended or problematic approach?
> Parts of stacktrace to show the way from route startup to the produced message
> => route receives "empty" message
> [omitted]
> 	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45)
> 	at org.apache.camel.component.bean.CamelInvocationHandler.invoke(CamelInvocationHandler.java:65)
> 	at $Proxy568.toString(Unknown Source)
> 	at sun.reflect.GeneratedMethodAccessor406.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> => toString call is converted to message and sent to route
> [omitted]
> 	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> 	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> 	at $Proxy583.toString(Unknown Source)
> 	at org.apache.camel.component.bean.ConstantBeanHolder.toString(ConstantBeanHolder.java:48)
> => toString called on bean-element in route (bean is a proxy for a route) 
> [omitted]
> 	at java.lang.String.valueOf(String.java:2826)
> 	at java.lang.StringBuilder.append(StringBuilder.java:115)
> 	at org.apache.camel.impl.EventDrivenConsumerRoute.toString(EventDrivenConsumerRoute.java:46)
> 	at org.apache.camel.management.mbean.ManagedRoute.<init>(ManagedRoute.java:41)
> 	at org.apache.camel.management.DefaultManagementLifecycleStrategy.onRoutesAdd(DefaultManagementLifecycleStrategy.java:368)
> 	at org.apache.camel.impl.RouteService.doStart(RouteService.java:109)
> => Route startup

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

        

Mime
View raw message