diff options
author | Andy Clement <aclement@pivotal.io> | 2016-02-18 12:08:06 -0800 |
---|---|---|
committer | Andy Clement <aclement@pivotal.io> | 2016-02-18 12:08:06 -0800 |
commit | f4c8433cb046e343b8491d04f0a10bd150924507 (patch) | |
tree | aa31290831862215cea09543c92b6d2a9fc67ab7 /weaver/src/org | |
parent | a17b28a1a9a0756cfc2181bf2b095650e186425a (diff) | |
download | aspectj-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.java | 6 |
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(); |