Bug 273090 - Improper hierarchy and relationships when Aspect is on the inpath
Summary: Improper hierarchy and relationships when Aspect is on the inpath
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-21 12:27 EDT by Andrew Eisenberg CLA
Modified: 2009-04-21 12:28 EDT (History)
0 users

See Also:


Attachments
Project that exhibits this behavior (9.72 KB, application/octet-stream)
2009-04-21 12:28 EDT, Andrew Eisenberg CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Eisenberg CLA 2009-04-21 12:27:51 EDT
Just noticed that when an aspect is on the inpath and advises and element on the inpath, the aspect itself is faulted into the model, but it seems like it is happening twice.  See the printout of the crosscutting model from the event trace view below:

Note that in the hierarchy, the "AnotherAspect" aspect appears twice.  Once in binary form and once in source form.  The one that is in source form, should not be there.

Also, note that the relationship map uses the relationships that originates in the aspect in source form.  Either, these should be using the aspect handle in binary form, or these relationships should be removed since they go from binary to binary and are not shown in the model anyway.

9:25:47 --------------------------------------
9:25:47 Printing crosscutting model for DeclareParents on Inpath
9:25:47 Hierarchy:
=DeclareParents on Inpath/src
  =DeclareParents on Inpath/src<
    =DeclareParents on Inpath/src<*A.aj
      =DeclareParents on Inpath/src<*A.aj#
      =DeclareParents on Inpath/src<*A.aj}A
        =DeclareParents on Inpath/src<*A.aj}A[E
        =DeclareParents on Inpath/src<*A.aj}A`declare parents
        =DeclareParents on Inpath/src<*A.aj}A)C.x
=DeclareParents on Inpath/binaries
  =DeclareParents on Inpath/binaries<
    =DeclareParents on Inpath/binaries<*AnotherAspect.aj
      =DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect
        =DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect&before
        =DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect`declare parents
    =DeclareParents on Inpath/binaries<(AnotherAspect.class
      =DeclareParents on Inpath/binaries<(AnotherAspect.class}AnotherAspect
        =DeclareParents on Inpath/binaries<(AnotherAspect.class}AnotherAspect&before
        =DeclareParents on Inpath/binaries<(AnotherAspect.class}AnotherAspect`declare parents

Relationship map:
=DeclareParents on Inpath/src<*A.aj}A)C.x ::
	=DeclareParents on Inpath/src<*A.aj}A)C.x --declared on--> [=DeclareParents on Inpath/,<(C.class[C]
=DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect`declare parents ::
	=DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect`declare parents --declared on--> [=DeclareParents on Inpath/,<(C.class[C]
=DeclareParents on Inpath/,<(C.class[C ::
	=DeclareParents on Inpath/,<(C.class[C --aspect declarations--> [=DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect`declare parents, =DeclareParents on Inpath/src<*A.aj}A`declare parents, =DeclareParents on Inpath/src<*A.aj}A)C.x]
=DeclareParents on Inpath/src<*A.aj}A`declare parents ::
	=DeclareParents on Inpath/src<*A.aj}A`declare parents --declared on--> [=DeclareParents on Inpath/,<(C.class[C]
Comment 1 Andrew Eisenberg CLA 2009-04-21 12:28:24 EDT
Created attachment 132623 [details]
Project that exhibits this behavior