Bug 273090

Summary: Improper hierarchy and relationships when Aspect is on the inpath
Product: [Tools] AspectJ Reporter: Andrew Eisenberg <andrew.eisenberg>
Component: CompilerAssignee: aspectj inbox <aspectj-inbox>
Status: NEW --- QA Contact:
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
Project that exhibits this behavior none

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