CamelBeanPostProcessor.camelContext cannot be injected if SpringCamelContext is 
proxied (e.g. AOP)
--------------------------------------------------------------------------------------------------

                 Key: CAMEL-494
                 URL: https://issues.apache.org/activemq/browse/CAMEL-494
             Project: Apache Camel
          Issue Type: Bug
          Components: camel-spring
    Affects Versions: 1.3.0
            Reporter: Dean Thompson


Because CamelBeanPostProcessor.setCamelContext(SpringCamelContext) takes the 
class SpringCamelContext as its parameter, bean initialization fails if 
SpringCamelContext is proxied.  The error is as follows:

org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'camelContext:beanPostProcessor': Initialization of bean failed; 
nested exception is org.springframework.beans.TypeMismatchException: Failed to 
convert property value of type [$Proxy61] to required type 
[org.apache.camel.spring.SpringCamelContext] for property 'camelContext'; 
nested exception is java.lang.IllegalArgumentException: Cannot convert value of 
type [$Proxy61] to required type [org.apache.camel.spring.SpringCamelContext] 
for property 'camelContext': no matching editors or conversion strategy found

In my project's Spring conf, we declare <aop:aspectj-autoproxy/>, which causes 
all Spring beans to be proxied.  This triggers the problem shown above.  The 
problem should be reproducible by adding <aop:aspectj-autoproxy/> to any Spring 
config that uses <camel:camelContext>.

The fix will be to separate the interface and class for SpringCamelContext, and 
use the interface where appropriate.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to