Spring AOP Advice Called Twice

aop, java, spring, spring-aop

Solution

Well, it seems like this is actually an issue with the logger. This morning I checked and found that everything is being logged twice. When I replaced logger calls with regular sysout calls, everything worked fine.

Problem

For some reason, my Spring AOP advices are being called twice. I checked: Spring AOP advice is called twice but I am not using the Component annotation, and am declaring the aspect bean once and annotating it with @Aspect and that's it. Somewhat belatedly I realized that one of my classes was not implementing an interface yet, which caused CGLIB2 requirements. I fixed that, and the CGLIB2 problem went away, but the double invocation remains. Edit: Forgot to mention that I checked, and the method being advised is not called twice. 2nd edit: I declare a class with @Aspect, and then I declare it as a bean in the application context. There are no advices or pointcuts in the XML file. 3rd edit: Also worth noting is that I log before and after the execution of the method being advised with Around: ``` log.info("before"); pjp.proceed(); log.info("after"); ``` What I see is: ``` before before after after ``` Which is really weird. This happens for both @Before and @Around advice that I have set up. I have yet to try the other types. Here is the pointcut declaration, with changed names: ``` @Around("execution(public java.util.List<java.lang.String> pac.age.names.myDAO.doSomething(java.lang.String, java.lang.String))") ``` Any ideas? Thanks, Snorkel

Original source

Related problems