Browse Source

see #75442, lateTypeMunger rollback for now. This is not enough

tags/PRE_ANDY
avasseur 19 years ago
parent
commit
2514b117e6

+ 5
- 1
weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java View File

@@ -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);
}

+ 4
- 1
weaver/src/org/aspectj/weaver/patterns/PerObject.java View File

@@ -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()) {

Loading…
Cancel
Save