You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Christopher G. Stach II (JIRA)" <ji...@apache.org> on 2007/02/02 15:24:02 UTC

[jira] Updated: (AMQ-1147) Spring AspectJ autoproxying breaks ActiveMQManagedConnectionFactory injection

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

Christopher G. Stach II updated AMQ-1147:
-----------------------------------------

    Attachment: AMQ-1147.patch

This patch takes care of the issue.  It's really messy because I had to add Javadocs all over to get Eclipse to compile the files.  ( My project settings require Javadocs, comments in empty blocks, no unnecessary else blocks, etc., but I was too tired to change them.)  Here's basically what I had to do:

* Extract interfaces for ActiveMQActivationSpec and ActiveMQResourceAdapter
* AMQRAImpl: Fix a couple AMQActivationSpec  equality checks
* AMQRAImpl: Use method calls on the AMQRA interface instead of field access in equals
* AMQMCF: Added instanceof check in setResourceAdapter


> Spring AspectJ autoproxying breaks ActiveMQManagedConnectionFactory injection
> -----------------------------------------------------------------------------
>
>                 Key: AMQ-1147
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1147
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 4.1.0
>            Reporter: Christopher G. Stach II
>            Priority: Blocker
>         Attachments: AMQ-1147.patch
>
>
> The cast to the concrete class at ActiveMQManagedConnectionFactory:50 fails:
>     public void setResourceAdapter(ResourceAdapter adapter) throws ResourceException {
>         this.adapter = (ActiveMQResourceAdapter) adapter;
> org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy63] to required type [javax.resource.spi.ResourceAdapter] for property 'resourceAdapter'; nested exception is java.lang.ClassCastException: $Proxy63 cannot be cast to org.apache.activemq.ra.ActiveMQResourceAdapter
> Caused by: java.lang.ClassCastException: $Proxy63 cannot be cast to org.apache.activemq.ra.ActiveMQResourceAdapter
>     at org.apache.activemq.ra.ActiveMQManagedConnectionFactory.setResourceAdapter(ActiveMQManagedConnectionFactory.java:50)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:597)
>     at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:786)
> [...]
> Spring (2.0.3 build 66) config:
> 	<aop:aspectj-autoproxy />
> 	<aop:spring-configured />
> 	<bean id="jms.managedConnectionFactory" class="org.apache.activemq.ra.ActiveMQManagedConnectionFactory">
> 		<property name="resourceAdapter">
> 			<ref local="jms.resourceAdapter" />
> 		</property>
> 	</bean>
> 	<bean id="jms.resourceAdapter" class="org.apache.activemq.ra.ActiveMQResourceAdapter">
> 		<property name="serverUrl">
> 			<value>${amq.serverUrl}</value>
> 		</property>
> 	</bean>
> There's probably a workaround for this, but it's still annoying.

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