Bug 142165

Summary: rewriting XML concretized pointcuts doesnt work for AND construct
Product: [Tools] AspectJ Reporter: Andrew Clement <aclement>
Component: CompilerAssignee: Andrew Clement <aclement>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: P3    
Version: DEVELOPMENT   
Target Milestone: 1.5.2   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Andrew Clement CLA 2006-05-17 04:37:00 EDT
the scheme used to rewrite pointcuts defined in XML that use AND doesnt work, they get mangled.
Comment 1 Andrew Clement CLA 2006-05-17 05:35:01 EDT
Here are two examples:

xml pointcut:

"within(SomeType) AND execution(* foo(..))"

transformed to:

"within(SomeType)within(SomeType)execution(* foo(..))"

parsed (yes, parsed!) as:

"within(SomeType)"

the weaver will proceed having discarded the execution part of the pointcut (!)


Example 2:

original="within(*) AND call(* foo(..))"
transformed="within(C)within(C)call(* foo(..))"
parsedAs="within(C)"

matching rather more joinpoints than you'd hope...
Comment 2 Andrew Clement CLA 2006-05-17 06:02:05 EDT
fix committed and tests added.