Bug 80249 - Order of types passed to compiler determines weaving behavior
Summary: Order of types passed to compiler determines weaving behavior
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.2.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Andrew Clement CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-12-06 05:20 EST by Andrew Clement CLA
Modified: 2004-12-06 12:31 EST (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 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