Community
Participate
Working Groups
I want to declare a pointcut to capture invocation of methods on annotated interfaces being subtypes of a given interface. here is the full ajcore report: http://veleno.pastebin.com/332842 i will attach a test case.
Created attachment 25889 [details] untar and compile with ajc -source 1.5 -classpath $ASPECTJ1.5/aspectjrt.jar AnnotationTestCase
Looks like the root cause of the bug is the pointcut expression: /* intercept a call to an annotated resource */ pointcut invokingAMonitoredComponent(): call(* Service+(..)) && @annotation(MemberOfMonitoredSet); Notice that the call expression is not well-formed (it should be call(* Service+.*(..)) ), with a missing name pattern. However, this should be detected during parsing and resolution, NOT with a RuntimeException.
Parser exhibited similar behaviour on missing name patterns in constructor and field patterns: call(Foo+(..)) get(* Foo+) Now produces compilation errors as follows: call(* Foo+(..)) -> syntax error on token "(", "name pattern" expected call(Foo+(..)) -> syntax error on token "(", "name pattern" expected get(* Foo+) -> syntax error on token ")", "name pattern" expected Fix will be available in next published build.
Fix now available in latest build on AspectJ downloads page.