Éric Chatellier a écrit :
J'y ai jeter un coup d'oeil, mais je ne suis pas bien sûr que le code actuel ai déjà fonctionné. Suite a un refactoring, on effectue un division par zéro parce que la variable n'est jamais utilisée.
On a 2 aspect :
public void traceAfterCall (Object e) { traceAfter(e, false); } appelé par : @After("executeMethod") public void traceAfterExecute (JoinPoint jp) { Method method = ((MethodSignature)jp.getSignature()).getMethod(); trace.traceAfterCall(method); }
et public void traceAfterComputation (Object e) { traceAfter(e, true); } jamais appelé.
Il y a un commentaire concernant la "computation", mais je ne vois pas trop dans quel cas il doit être incrémenté :
if (computation) { stat[STAT_COMPUTATION]++; // add +1 to computation number else { // on incremente pas tout le temps STAT_CALL, car le plus // souvent lors de l'utilisation de l'objet Trace dans un cache // on a deja compte l'appel et reappelle lui meme computation // ce qui ferait 2 appel alors qu'il n'y en a qu'un en realite stat[STAT_CALL]++; // add +1 to call number }
J'ai essayé de corrigé l'erreur. On avait dit qu'on passerait l'instance de Trace(Util) aux deux aspects. Cependant la ne fonctionne pas, car les deux aspects sont instanciés pas aspectwerkz :(. Tu aurais une autre solution pour qu'ils utilisent la même instance ? -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com