aboutsummaryrefslogtreecommitdiffstats
path: root/weaver/src/org
diff options
context:
space:
mode:
authorAndy Clement <aclement@pivotal.io>2016-02-18 12:08:06 -0800
committerAndy Clement <aclement@pivotal.io>2016-02-18 12:08:06 -0800
commitf4c8433cb046e343b8491d04f0a10bd150924507 (patch)
treeaa31290831862215cea09543c92b6d2a9fc67ab7 /weaver/src/org
parenta17b28a1a9a0756cfc2181bf2b095650e186425a (diff)
downloadaspectj-f4c8433cb046e343b8491d04f0a10bd150924507.tar.gz
aspectj-f4c8433cb046e343b8491d04f0a10bd150924507.zip
Fix 433351: Declare parents fails on interfaces on the inpath depending on directory structure
Diffstat (limited to 'weaver/src/org')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
index 5e524549e..e3e97517a 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java
@@ -1323,7 +1323,11 @@ public class BcelWeaver {
}
ContextToken tok = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.PROCESSING_DECLARE_PARENTS,
resolvedTypeToWeave.getName());
- weaveParentTypeMungers(resolvedTypeToWeave);
+ // If A was processed before B (and was declared 'class A implements B') then there is no need to complete B again, it
+ // will have been done whilst processing A.
+ if (!resolvedTypeToWeave.isTypeHierarchyComplete()) {
+ weaveParentTypeMungers(resolvedTypeToWeave);
+ }
CompilationAndWeavingContext.leavingPhase(tok);
typesForWeaving.remove(typeToWeave);
resolvedTypeToWeave.tagAsTypeHierarchyComplete();