Community
Participate
Working Groups
Matching on a pointcut such as the following: before() : accessingRedField(Coloured) { // ... } private pointcut accessingRedField(Coloured coloured) : get(* *) && @annotation(coloured) && if(coloured.value() == Colour.RED); causes: org.aspectj.weaver.BCException at org.aspectj.weaver.patterns.AnnotationPointcut.findResidueInternal(AnnotationPointcut.java:199) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.IfPointcut.findResidueInternal(IfPointcut.java:173) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.NotPointcut.findResidueInternal(NotPointcut.java:96) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.patterns.AndPointcut.findResidueInternal(AndPointcut.java:93) at org.aspectj.weaver.patterns.Pointcut.findResidue(Pointcut.java:267) at org.aspectj.weaver.bcel.BcelAdvice.specializeOn(BcelAdvice.java:132) at org.aspectj.weaver.bcel.BcelShadow.prepareForMungers(BcelShadow.java:325) at org.aspectj.weaver.Shadow.implement(Shadow.java:455) at org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:2236) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:491) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:109) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1560) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1511) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1291) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1113) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave(AjCompilerAdapter.java:311) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling(AjCompilerAdapter.java:183) at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:70) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:367) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:862) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:242) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:161) at org.aspectj.ajde.internal.CompilerAdapter.compile(CompilerAdapter.java:122) at org.aspectj.ajde.internal.AspectJBuildManager$CompilerThread.run(AspectJBuildManager.java:191) trouble in: public class rainbow.RainbowFields extends java.lang.Object: private int a private int x [RuntimeVisibleAnnotations] private int y [RuntimeVisibleAnnotations] private int z [RuntimeVisibleAnnotations] public void <init>(): ALOAD_0 // Lrainbow/RainbowFields; this (line 3) INVOKESPECIAL java.lang.Object.<init> ()V constructor-execution(void rainbow.RainbowFields.<init>()) | RETURN constructor-execution(void rainbow.RainbowFields.<init>()) end public void <init>() public int getA() org.aspectj.weaver.MethodDeclarationLineNumber: 10:204 : method-execution(int rainbow.RainbowFields.getA()) | ALOAD_0 // Lrainbow/RainbowFields; this (line 11) | field-get(int rainbow.RainbowFields.a) | | GETFIELD rainbow.RainbowFields.a I | field-get(int rainbow.RainbowFields.a) | IRETURN method-execution(int rainbow.RainbowFields.getA()) end public int getA() public void setA(int) org.aspectj.weaver.MethodDeclarationLineNumber: 13:244 : method-execution(void rainbow.RainbowFields.setA(int)) | ALOAD_0 // Lrainbow/RainbowFields; this (line 14) | ILOAD_1 // I a | field-set(int rainbow.RainbowFields.a) | | PUTFIELD rainbow.RainbowFields.a I | field-set(int rainbow.RainbowFields.a) | RETURN (line 15) method-execution(void rainbow.RainbowFields.setA(int)) end public void setA(int) public int getX() org.aspectj.weaver.MethodDeclarationLineNumber: 16:290 : method-execution(int rainbow.RainbowFields.getX()) | ALOAD_0 // Lrainbow/RainbowFields; this (line 17) | field-get(int rainbow.RainbowFields.x) | | GETFIELD rainbow.RainbowFields.x I | field-get(int rainbow.RainbowFields.x) | IRETURN method-execution(int rainbow.RainbowFields.getX()) end public int getX() public void setX(int) org.aspectj.weaver.MethodDeclarationLineNumber: 19:330 : method-execution(void rainbow.RainbowFields.setX(int)) | ALOAD_0 // Lrainbow/RainbowFields; this (line 20) | ILOAD_1 // I x | field-set(int rainbow.RainbowFields.x) | | PUTFIELD rainbow.RainbowFields.x I | field-set(int rainbow.RainbowFields.x) | RETURN (line 21) method-execution(void rainbow.RainbowFields.setX(int)) end public void setX(int) public int getY() org.aspectj.weaver.MethodDeclarationLineNumber: 22:376 : method-execution(int rainbow.RainbowFields.getY()) | ALOAD_0 // Lrainbow/RainbowFields; this (line 23) | field-get(int rainbow.RainbowFields.y) | | GETFIELD rainbow.RainbowFields.y I | field-get(int rainbow.RainbowFields.y) | IRETURN method-execution(int rainbow.RainbowFields.getY()) end public int getY() public void setY(int) org.aspectj.weaver.MethodDeclarationLineNumber: 25:416 : method-execution(void rainbow.RainbowFields.setY(int)) | ALOAD_0 // Lrainbow/RainbowFields; this (line 26) | ILOAD_1 // I y | field-set(int rainbow.RainbowFields.y) | | PUTFIELD rainbow.RainbowFields.y I | field-set(int rainbow.RainbowFields.y) | RETURN (line 27) method-execution(void rainbow.RainbowFields.setY(int)) end public void setY(int) public int getZ() org.aspectj.weaver.MethodDeclarationLineNumber: 28:462 : method-execution(int rainbow.RainbowFields.getZ()) | ALOAD_0 // Lrainbow/RainbowFields; this (line 29) | field-get(int rainbow.RainbowFields.z) | | GETFIELD rainbow.RainbowFields.z I | field-get(int rainbow.RainbowFields.z) | IRETURN method-execution(int rainbow.RainbowFields.getZ()) end public int getZ() public void setZ(int) org.aspectj.weaver.MethodDeclarationLineNumber: 31:502 : method-execution(void rainbow.RainbowFields.setZ(int)) | ALOAD_0 // Lrainbow/RainbowFields; this (line 32) | ILOAD_1 // I z | field-set(int rainbow.RainbowFields.z) | | PUTFIELD rainbow.RainbowFields.z I | field-set(int rainbow.RainbowFields.z) | RETURN (line 33) method-execution(void rainbow.RainbowFields.setZ(int)) end public void setZ(int) end public class rainbow.RainbowFields when implementing on shadow field-set(int rainbow.RainbowFields.a) when weaving type rainbow.RainbowFields when weaving classes when weaving when batch building BuildConfig[C:\cygwin\home\Adrian\projects\aop-course-labs-and-samples-new\.metadata\.plugins\org.eclipse.ajdt.core\Pointcuts lab 3 - solution.generated.lst] #Files=12
works in cvs version, just not in latest AJDT for Eclipse 3.1... *** This bug has been marked as a duplicate of 138223 ***