I am experiencing a problem with a pointcut after migration from springframework 3.0.5 to 3.1.0.
The relevant context code is as follows:
I get the message:
<aop:pointcut id="readOnlyActionExecution" expression="target(xxx.yyy.zzz.ITrxExecutor)"/>
<aop:advisor advice-ref="txReadonlyAdvice" pointcut-ref="readOnlyActionExecution"/>
<bean id="actionProvider" class=
The code runs in an OSGI Platform. The bundle situation is as follows:
org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException: warning no match for this type name: xxx.yyy.zzz.ITrxExecutor [Xlint:invalidAbsoluteTypeName]
above context is of bundle A
xxx.yyy.zzz.ITrxExecutor defined in bundle B
aaa.bbb.ccc.ActionServiceProviderImpl defined in bundle C
It took me hours to debug the code but finally it turns out that the error occurs while investigation of bean actionProvider from bundle C to check if the pointcut applies. In that process, the PointcutParser tries to resolve both types aaa.bbb.ccc.ActionServiceProviderImpl and xxx.yyy.zzz.ITrxExecutor. Unfortunately the classLoader used to resolve the types is the bundleClassLoader of bundle C which doesn't know anything about bundle B. I would expect that the bundleClassLoader of bundle A would be used since that loader knows all relevant classes.
The code worked fine with RELEASE 3.0.5 but now it fails with RELEASE 3.1.0.