Funny I had seen examples using !within(<AspectClass>).   So I coded
!within(ApplyStatisicsDaoAllPublicMethodsAspect).

Is the !clowbelow(within<AspectClass>)) required then?  I wonder why those
other examples worked in that case.

2010/7/13 Ramnivas Laddad <ramni...@aspectivity.com>

> You will need to exclude *getStatisticsSource() *from being advised (or
> add !cflowbelow(within(ApplyStatisticsDaoAllPublicMethodsAspect))
>
> The reason you get infinite recursion is the following call sequence:
> 1. A method executed on dao
> 2. Advice executes
> 3. Advice calls *getStatisticsSource*
> 4. Since that is a method on dao (and its execution is not within the
> aspect)... go to 1
>
> -Ramnivas
>
> On Tue, Jul 13, 2010 at 1:40 PM, Stephen Boesch <java...@gmail.com> wrote:
>
>> In the following aspect, the bolded methods cause infinite recursion due
>> to re-invocation of the pointcut.  I don't get it: the pointcut conditions
>> include
>>
>>
>> * !within(ApplyStatisticsDaoAllPublicMethodsAspect) *
>>
>> So why did that not avoid the recursion?
>>
>>
>> @Aspect
>> public class ApplyStatisticsDaoAllPublicMethodsAspect {
>>
>> @Aspect
>> public class ApplyStatisticsDaoAllPublicMethodsAspect {
>>
>> @Around(value = "execution(public * WaterfallOrmDao+.find* (..)) &&
>> !within(ApplyStatisticsDaoAllPublicMethodsAspect) && this(dao)", argNames =
>> "thisJoinPoint, dao")
>>   public Object aroundApplyStatisticsMethod (ProceedingJoinPoint
>> thisJoinPoint, WaterfallORMDao dao)
>>     throws Throwable {
>>
>> ..
>>         executedMethod =
>> ((MethodSignature)thisJoinPoint.getSignature()).getMethod();
>>
>>  STATISTICS_FACTORY.getStatistics().addStatLine(dao.getManagedClass(),
>> executedMethod, *dao.getStatisticsSource(),* stop - start);
>>       LOG.warn(dao.getManagedClass()+" "+ executedMethod+" "+ *
>> dao.getStatisticsSource()*+" " + (stop - start));
>>  ..
>>
>>
>>
>> _______________________________________________
>> aspectj-users mailing list
>> aspectj-users@eclipse.org
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>>
>>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to