From 2514b117e6bf7f469a5eece4a8ebf41a5f378b00 Mon Sep 17 00:00:00 2001 From: avasseur Date: Thu, 12 May 2005 13:22:38 +0000 Subject: [PATCH] see #75442, lateTypeMunger rollback for now. This is not enough --- .../org/aspectj/weaver/PerObjectInterfaceTypeMunger.java | 6 +++++- weaver/src/org/aspectj/weaver/patterns/PerObject.java | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java b/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java index 116d146a1..a9f885d0c 100644 --- a/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java @@ -93,7 +93,11 @@ public class PerObjectInterfaceTypeMunger extends ResolvedTypeMunger { //return !matchType.isInterface() && !matchType.isAnnotationStyleAspect(); Set aspects = (Set)s_advisedTypeToAspects.get(matchType); if (aspects == null) { - return false; + //return false; + // FIXME AV - #75442 see thread + // back off on old style : it can happen for perTarget that target type is presented first to the weaver + // while caller side is not thus we have advisedTypeToAspects still empty.. + return !matchType.isInterface() && !matchType.isAnnotationStyleAspect(); } else { return aspects.contains(aspectType); } diff --git a/weaver/src/org/aspectj/weaver/patterns/PerObject.java b/weaver/src/org/aspectj/weaver/patterns/PerObject.java index 7e8645608..45602d386 100644 --- a/weaver/src/org/aspectj/weaver/patterns/PerObject.java +++ b/weaver/src/org/aspectj/weaver/patterns/PerObject.java @@ -104,9 +104,12 @@ public class PerObject extends PerClause { //concreteEntry.state = Pointcut.CONCRETE; inAspect.crosscuttingMembers.addConcreteShadowMunger( Advice.makePerObjectEntry(world, concreteEntry, isThis, inAspect)); + + // FIXME AV - don't use lateMunger here due to test "inheritance, around advice and abstract pointcuts" + // see #75442 thread. Issue with weaving order. ResolvedTypeMunger munger = new PerObjectInterfaceTypeMunger(inAspect, concreteEntry); - inAspect.crosscuttingMembers.addLateTypeMunger(world.concreteTypeMunger(munger, inAspect)); + inAspect.crosscuttingMembers.addTypeMunger(world.concreteTypeMunger(munger, inAspect)); //ATAJ: add a munger to add the aspectOf(..) to the @AJ aspects if (inAspect.isAnnotationStyleAspect()) { -- 2.39.5