Summary: | advice is not woven from jar on aspectpath when 'this' or 'target' is included in the pointcut | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Helen Beeken <hlhawkins> |
Component: | Compiler | Assignee: | aspectj inbox <aspectj-inbox> |
Status: | NEW --- | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | CC: | aclement, vb |
Version: | DEVELOPMENT | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Whiteboard: |
Description
Helen Beeken
2006-06-20 05:37:37 EDT
this bug is what I suspected. During the initial build of the aspect, the type pattern in this or target (which must be an exact type pattern) is resolved to NoTypePattern (because the type cannot be found). It is then serialized as NoTypePattern and later deserialized for the secondary compile as a NoTypePattern - this matches nothing ... Should probably serialize the pre-resolved form. I dont think this affect incremental compilation as it is only an issue if the type pattern cannot be resolved in a world. In the world behind incremental compilation of a project, the type *will* exist and everything will work fine. of course...this will be currently affecting *all* pointcuts that get a fully specified type pattern (some require it eg. this/target whilst in others it can either by fully specified or a pattern). it is a serious change to switch how we are working here because we assume all deserialized pointcuts are fully (correctly) resolved. So I dont think this should be done for 1.5.2 i turned helens code into a testcase - the expected output isnt correct but the basics are there, its commented out in Ajc152tests... restriction that we ought to look at resolving for 1.6.0 - surely we can serialize in some other form? unsetting the target field which is currently set for something already released |