[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] org.aspectj.weaver.bcel.BcelWorld - Unable to find class

Hi,

I'm sure I've seen something like this before.  I thought it was in
some Spring Framework Jiras but I can't find it on a quick look just
now.  It was within the last few months.  Let me dig through
bugzilla...

Andy

2009/11/17 Jonathan T Cone <cone0010@xxxxxxxxxxx>:
>
> I'm using AspectJ LTW with Spring and having the trouble with the following
> around advice:
>
>  @Around("execution(public com.x.y.z.payload.Payload
> com.something.services..*Bean.*(com.x.y.z.payload.Payload)) &&
> args(payload)")
>
> public Object doStuff(ProceedingJoinPoint jp, Payload payload) throws
> Throwable {...
>
>
> For whatever reason, this is not intercepting and is throwing a bizarre
> exception that I've included at the bottom.  I have other interceptors in
> the same application that use the com.x.y.z.payload.Payload class as a
> parameter and return type and they work just fine.  I've tried with
> -Xset:bcelRepositoryCaching=false as well.
>
> It appears that for some reason AspectJ can't find the Payload class for
> this particular advice.  Below is just one example of the Exception, notice
> the class name.  It appears BCEL/AspectJ try a bunch of different
> combinations (there are about 20 stack traces similar to this one) of
> package names, none of which exist.
>
> I've turned on classloading logging and it appears the class gets loaded at
> the end of all these exceptions.  I could really use a tip here, the class
> is on the classpath and I'm not having problems referencing it from the
> application.  In fact, I can change the advice to use a wildcard and the
> code works fine in a unit test (but not when deployed to the app server).
> I've tested this in 1.6.6.  Any ideas what I should try next?
>
>
> 2009-11-16 15:57:31,515 ERROR [main] org.aspectj.weaver.bcel.BcelWorld -
> Unable to find class 'java.lang.com.x.y.z.payload.Payload' in repository
> java.lang.ClassNotFoundException: java.lang.com.x.y.z.payload.Payload not
> found.
>        at
> org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadClass(NonCachingClassLoaderRepository.java:222)
>        at org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass(BcelWorld.java:224)
>        at org.aspectj.weaver.bcel.BcelWorld.resolveDelegate(BcelWorld.java:205)
>        at org.aspectj.weaver.ltw.LTWWorld.resolveDelegate(LTWWorld.java:107)
>        at org.aspectj.weaver.World.resolveToReferenceType(World.java:363)
>        at org.aspectj.weaver.World.resolve(World.java:258)
>        at org.aspectj.weaver.patterns.SimpleScope.lookupType(SimpleScope.java:63)
>        at
> org.aspectj.weaver.bcel.AtAjAttributes$BindingScope.lookupType(AtAjAttributes.java:1666)
>        at
> org.aspectj.weaver.patterns.WildTypePattern.lookupTypeInScope(WildTypePattern.java:717)
>        at
> org.aspectj.weaver.patterns.WildTypePattern.resolveBindingsFromFullyQualifiedTypeName(WildTypePattern.java:704)
>        at
> org.aspectj.weaver.patterns.WildTypePattern.resolveBindings(WildTypePattern.java:632)
>        at
> org.aspectj.weaver.patterns.SignaturePattern.resolveBindings(SignaturePattern.java:73)
>        at
> org.aspectj.weaver.patterns.KindedPointcut.resolveBindings(KindedPointcut.java:262)
>        at
> org.aspectj.weaver.patterns.AndPointcut.resolveBindings(AndPointcut.java:75)
>        at org.aspectj.weaver.patterns.Pointcut.resolve(Pointcut.java:196)
>        at
> org.aspectj.weaver.bcel.AtAjAttributes.handleAroundAnnotation(AtAjAttributes.java:1152)
>        at
> org.aspectj.weaver.bcel.AtAjAttributes.readAj5MethodAttributes(AtAjAttributes.java:389)
>        at
> org.aspectj.weaver.bcel.BcelMethod.unpackAjAttributes(BcelMethod.java:186)
>        at org.aspectj.weaver.bcel.BcelMethod.<init>(BcelMethod.java:95)
>        at
> org.aspectj.weaver.bcel.BcelObjectType.getDeclaredMethods(BcelObjectType.java:258)
>        at org.aspectj.weaver.bcel.LazyClassGen.<init>(LazyClassGen.java:297)
>        at
> org.aspectj.weaver.bcel.BcelObjectType.getLazyClassGen(BcelObjectType.java:522)
>        at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1726)
>        at
> org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1694)
>        at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1464)
>        at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1245)
>        at
> org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:394)
>        at
> org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:281)
>        at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:95)
>        at
> org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:52)
>        at
> org.springframework.context.weaving.AspectJWeavingEnabler$AspectJClassBypassingClassFileTransformer.transform(AspectJWeavingEnabler.java:92)
>        at
> org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver$FilteringClassFileTransformer.transform(InstrumentationLoadTimeWeaver.java:181)
>        at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
>        at
> sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
>        at java.lang.ClassLoader.defineClass1(Native Method)
>        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
>        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>        at org.springframework.util.ClassUtils.forName(ClassUtils.java:211)
>        at
> org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138)
>        at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:573)
>        at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:521)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1177)
>        at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:222)
>        at
> org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:505)
>        at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:362)
>        at
> org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:84)
>        at
> org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:42)
>        at
> org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:173)
>        at
> org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:197)
>        at
> org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109)
>        at
> org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75)
>        at
> org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:255)
>        at
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:111)
>        at
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:148)
>        at
> org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
>        at
> org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
>        at
> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
>        at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
>        at
> org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
>        at
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97)
>        at
> oracle.jdevimpl.junit.runner.junit4.JUnit4Testable.run(JUnit4Testable.java:24)
>        at oracle.jdevimpl.junit.runner.TestExecution.run(TestExecution.java:27)
>        at
> oracle.jdevimpl.junit.runner.JUnitTestRunner.main(JUnitTestRunner.java:88)
>
>
>
>
>
> --
> View this message in context: http://old.nabble.com/org.aspectj.weaver.bcel.BcelWorld---Unable-to-find-class-tp26379913p26379913.html
> Sent from the AspectJ - users mailing list archive at Nabble.com.
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>