Bug 142165 - rewriting XML concretized pointcuts doesnt work for AND construct
Summary: rewriting XML concretized pointcuts doesnt work for AND construct
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Windows XP
: P3 critical (vote)
Target Milestone: 1.5.2   Edit
Assignee: Andrew Clement CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-17 04:37 EDT by Andrew Clement CLA
Modified: 2006-05-17 06:02 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.