diff options
-rw-r--r-- | tests/java5/ataspectj/ataspectj/aop-perclausetest.xml | 1 | ||||
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml b/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml index 236a6a856..3116c04a8 100644 --- a/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml +++ b/tests/java5/ataspectj/ataspectj/aop-perclausetest.xml @@ -6,5 +6,6 @@ <aspect name="ataspectj.PerClauseTestAspects.TestAspectPerTarget"/> <aspect name="ataspectj.PerClauseTestAspects.TestAspectPerCflow"/> <aspect name="ataspectj.PerClauseTestAspects.TestAspectPTW"/> + <aspect name="ataspectj.PerClauseTestAspects.TestAspectPerThis"/> </aspects> </aspectj> diff --git a/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java b/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java index 98d9d9632..87fcbf22e 100644 --- a/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java +++ b/weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java @@ -483,6 +483,14 @@ public class AtAjAttributes { // FIXME asc see related comment way about about the version... struct.ajAttributes.add(new AjAttribute.WeaverVersionInfo()); struct.ajAttributes.add(new AjAttribute.Aspect(perClause)); + FormalBinding[] bindings = new org.aspectj.weaver.patterns.FormalBinding[0]; + final IScope binding; + binding = new BindingScope( + struct.enclosingType, + struct.context, + bindings + ); + perClause.resolve(binding); return true; } } @@ -599,7 +607,7 @@ public class AtAjAttributes { } else { pc = parsePointcut(beforeAdvice.getValue().stringifyValue(), struct, false); if (pc == null) return false;//parse error - pc.resolve(binding); + pc = pc.resolve(binding); } setIgnoreUnboundBindingNames(pc, bindings); |