Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ajdt-dev] Unexpected behaviour when using Ajdt and recursive functions

Hello everybody,
 I'm using ajdt 1.5 and Eclipse 3.3.2. 
Consider this 
scenario: I defined a class RecursiveCalls that has a recursive method inside 
(here is the code) :

1package recursivepackage;
2
3public class RecursiveCalls 
{
4
5	
6	public void recursiveCall(int i){
7		if(i==0) return;
8		recursiveCall
(i-1);
9	}
10	
11	
12	public void notRecursive(int i){
13		recursiveCall(5);
14	
}
15}

I define an aspect with a pointcut and an advice to catch up all the 
calls (recursive or not) to the recursiveCall method, in this way.


package 
recursivepackage;

public aspect RecursionCatcher {

	pointcut recur() : call 
(public void RecursiveCalls.recursiveCall(int));
	
	
	before(): recur() {
		
//do what is needed-not interesting here
	}
	
}

The editor correctly signals 
me the advice relation between line 13 of the class and the before advice. 
However, for the recursiveCall method the advice relation is between line 6 and 
the advice. I expected it to be between line 8 and the advice. Line 6 should be 
present in the case of an execution () pointcut, not a call() one.  Am I wrong 
or is this an incorrect behaviour? Let me know. 



Back to the top