From 94d8b82fbf3cb18a14d77508b3adad6d50434080 Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 6 Apr 2006 10:44:14 +0000 Subject: test and fix for 134541 --- weaver/src/org/aspectj/weaver/CrosscuttingMembers.java | 6 +++++- weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'weaver') diff --git a/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java b/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java index fcbd967cf..46b6ada85 100644 --- a/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java +++ b/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java @@ -238,8 +238,12 @@ public class CrosscuttingMembers { } if (!theseShadowMungers.equals(otherShadowMungers)) { changed = true; - shadowMungers = other.shadowMungers; } + // replace the existing list of shadowmungers with the + // new ones in case anything like the sourcelocation has + // changed, however, don't want this flagged as a change + // which will force a full build - bug 134541 + shadowMungers = other.shadowMungers; } // bug 129163: use set equality rather than list equality and diff --git a/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java b/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java index b4efd2c87..a065aa14f 100644 --- a/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java +++ b/weaver/src/org/aspectj/weaver/CrosscuttingMembersSet.java @@ -76,6 +76,11 @@ public class CrosscuttingMembersSet { CflowPointcut.clearCaches(aspectType); change = true; } else { + if (careAboutShadowMungers) { + // bug 134541 - even though we haven't changed we may have updated the + // sourcelocation for the shadowMunger which we need to pick up + shadowMungers = null; + } change = false; } } -- cgit v1.2.3