Sree Panchajanyam D created CAMEL-6927:
------------------------------------------

             Summary: Bean Transformer throwing 
org.apache.camel.TypeConversionException: Error during type conversion from 
type: due argument type mismatch
                 Key: CAMEL-6927
                 URL: https://issues.apache.org/jira/browse/CAMEL-6927
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.11.2, 2.10.7, 2.10.6, 2.10.5, 2.10.4, 2.10.3, 2.10.2, 
2.10.1, 2.10.0, 2.9.5, 2.9.4, 2.9.3
         Environment: Windows 7
            Reporter: Sree Panchajanyam D
            Priority: Blocker


Same piece of camel.xml and POJO working in  camel 2.9.2.
Issue encountered in camel 2.9.3 and all above versions.

When trying to start apache camel embedded inside activemq (or camel starting 
as standalone on Jetty container), I encountered the following exception : 
Caused by: org.apache.camel.TypeConversionException: Error during type 
conversion from type: com.messagetransformers.StringAppenderBean to the 
required type: org.apache.camel.Processor with value 
com.messagetransformers.StringAppenderBean@77b407 due argument type mismatch
       at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:126)
       at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:98)
       at 
org.apache.camel.util.CamelContextHelper.convertTo(CamelContextHelper.java:72)


Extract from my camel.xml

<bean id="beanTransformer" class="com.messagetransformers.StringAppenderBean"/>
 <camelContext xmlns="http://camel.apache.org/schema/spring";>
        <route id="beanTransformRoute" autoStartup="true">
            <description>Transformer Route</description>
            <from uri="activemqRoute1:MY.QUEUE.1"/>
                        <bean ref="beanTransformer" method="process"/>
            <to uri="activemqRoute1:MY.QUEUE.2"/>
        </route>
</camelContext>


Code snippet from that is causing this issue 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.java(doConvertTo 
method) 

 Object rc;
            if (tryConvert) {
                rc = tc.tryConvertTo(type, exchange, value);
            } else {
                rc = tc.convertTo(type, exchange, value);
            }
The else part is not there in Camel 2.9.2 and is introduced from Camel 2.9.3.
This code seems to force a  normal bean to register as a FallbackTypeConverter 
which is causing the issue.
Removing the else condition from camel 2.10.3 solved the issue. 

My question is, is it expected that normal bean definitions should fail from 
upwards of camel 2.9.3? Documentation seems to say nothing about it.   Please 
help



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to