| Summary: | LTW remove CTW api, but did not add back in 1.6.8 | ||
|---|---|---|---|
| Product: | [Tools] AspectJ | Reporter: | David Liu <mrveaven> |
| Component: | Compiler | Assignee: | aspectj inbox <aspectj-inbox> |
| Status: | RESOLVED WORKSFORME | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | aclement |
| Version: | 1.6.8 | ||
| Target Milestone: | 1.6.12 | ||
| Hardware: | PC | ||
| OS: | All | ||
| Whiteboard: | |||
|
Description
David Liu
Although AspectJ may occasionally weave things in a different order during loadtime as opposed to compile time (because of classloader loading order), the resultant woven code as a whole should still be consistent as described by the aspects affecting the system. If the code is 'broken' when, in your case, the Child is woven but the parent is not - that is a bug. If the code is correct, but it just Nothing is mentioned in the release notes related to this as nothing has knowingly been changed to cause this, however various optimizations have been going in lately to less pro-actively hunt for types (causing less parents or superinterfaces to be pulled in if they aren't required). 1.6.7/1.6.8 were a massive refactoring for the AspectJ internals and numerous bugs that it accidentally introduced have been ironed out in 1.6.9 and 1.6.10, it is possible one of those fixes addressed your situation and got things back on track. If you are happy and working, I'd say it was just a temporary problem introduced by that refactoring effort. Browsing bugs fixed in 1.6.9 and 1.6.10 may reveal which fix addressed it. The default weaver mode for dealing with the loadtime weaving of compile time weaving mode is 'reweaving'. An alternative you might want to try using is 'overweaving' http://andrewclement.blogspot.com/2010/05/aspectj-overweaving.html - with overweaving your Parent class remains woven from CTW, rather than reverting to the original form. I only mention this FYI, if you're working fine on 1.6.10 you dont necessarily need overweaving. Thanks for your detailed explanation. It makes sense to me. David dont think there is anything further to address here. |