Bug 80249

Summary: Order of types passed to compiler determines weaving behavior
Product: [Tools] AspectJ Reporter: Andrew Clement <aclement>
Component: CompilerAssignee: Andrew Clement <aclement>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 1.2.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Andrew Clement CLA 2004-12-06 05:20:15 EST
Currently, the order in which you specify types when passing them to the
compiler can affect how they are woven:

For example, if we have class A and class B extends A - Also, an aspect that
'declare parents: A+ implements Serializable' then depending on whether we see A
first, we may or may not make B serializable.

The fix is that when we weave a type, we first weave its supertype then its
superinterfaces (if they were also passed to the compiler).

The problematic construct is declare parents - so we only process the types in a
special order if there are declare parents around.  Also, because we can't
currently do decp when binary weaving, the order processing logic is only being
put into the source weaving pipeline.
Comment 1 Andrew Clement CLA 2004-12-06 05:41:20 EST
Fix checked in (see AJLookupEnvironment) - waiting on build.
Comment 2 Andrew Clement CLA 2004-12-06 12:31:32 EST
Fix available.

BUILD COMPLETE -  build.406
Date of build: 12/06/2004 13:43:55
Time to build: 135 minutes 21 seconds
Last changed: 12/06/2004 10:38:45
Last log entry: Fixes for Bug 80249: Order of types passed to compiler
determines weaving behavior
Latest good AspectJ jar available at:
download.eclipse.org/technology/ajdt/dev/aspectj-DEVELOPMENT.jar