Pārlūkot izejas kodu

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

tags/PRE_ANDY
avasseur pirms 19 gadiem
vecāks
revīzija
2514b117e6

+ 5
- 1
weaver/src/org/aspectj/weaver/PerObjectInterfaceTypeMunger.java Parādīt failu

@@ -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 Parādīt failu

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

Notiek ielāde…
Atcelt
Saglabāt