[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Wrong method of uninstrumented class executed


I have a weird problem with a tracing aspect that's used with Equinox load time weaving. All worked nicely as long as I had AJDT installed into my host IDE. The aspect was compiled by AJDT and then packed into a nested JAR by an Ant script. When I launched my application the aspect was woven into my application classes (they tracer/logger classes that are called by my aspect are not instrumented) and a nice logfile with trace information was created.

Then (partly for bug 535103) I uninstalled AJDT from my host IDE. Of course the jar'ed compiled aspect stayed where it was. And then I changed my (uninstrumented) Logger class. But now wrong methods of this Logger class are called. With a breakpoint in such a method I can see in the Debug perspective that the call stack (Debug view) and the executed method are not in sync. I've attached a screenshot to demonstrate the problem. There you can see that Logger.doActivate() should be called; but instead Logger.save() is called.

I mentioned that I changed the Logger class, i.e., I deleted the doActivate() method and added the save() method. After this change I did not recompile the aspect (AJDT is uninstalled), but I thought the aspect is not woven into this Logger class at all, so I could change it as I want.

I have no clue what causes this. What's going on / is this expected behavior?



Attachment: WrongMethodExecuted.png
Description: PNG image