-
15. Re: Inteception on field inherited through generic superclas
dunks80 Jan 18, 2007 8:52 AM (in response to dunks80)Kabir,
I just downloaded AOP 1.5.3 and I'm still seeing the same behavior on my test case...here is the verbose output when running the testcase[debug] Passed in instrumentor: null [debug] Defaulting instrumentor to: org.jboss.aop.instrument.ClassicInstrumentor [debug] jboss.aop.class.path: /workspace/aop-problem/src/java [debug] Looking for aspects in: testcase.ZImpl [debug] Looking for aspects in: testcase.B [debug] Looking for aspects in: testcase.MyFieldAnnotation [debug] Looking for aspects in: testcase.A [debug] Looking for aspects in: testcase.Main [debug] Looking for aspects in: testcase.MyFieldInterceptor [debug] Found @InterceptorDef in: testcase.MyFieldInterceptor [debug] Looking for aspects in: testcase.C [debug] Looking for aspects in: testcase.Z [debug] jboss.aop.search.classpath: 'null' true [debug] jboss.aop.path: null [trying to transform] testcase.Main [debug] There are no caller pointcuts! [debug] javassist.CtMethod@44a4fe33[public static main ([Ljava/lang/String;)V] matches no pointcuts [debug] javassist.CtConstructor@366025e7[public Main ()V] matches no pointcuts [debug] javassist.CtConstructor@28d08633[public C ()V] matches no pointcuts [debug] javassist.CtConstructor@6037fb1e[public B ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] javassist.CtConstructor@6686fe26[public A ()V] matches no pointcuts [debug] was testcase.Main converted: true [trying to transform] testcase.C [debug] There are no caller pointcuts! [debug] javassist.CtMethod@69cb6c6d[public toString ()Ljava/lang/String;] matches no pointcuts [debug] javassist.CtConstructor@41fc2fb[public C ()V] matches no pointcuts [debug] was testcase.C converted: false [trying to transform] testcase.B [debug] There are no caller pointcuts! [debug] javassist.CtConstructor@42704baa[public B ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] was testcase.B converted: true [trying to transform] testcase.A [debug] There are no caller pointcuts! [debug] javassist.CtConstructor@65b4fad5[public A ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] was testcase.A converted: true iterate binding testcase.MyFieldInterceptor field matched binding testcase.MyFieldInterceptor [debug] added advisor: testcase.A from binding: testcase.MyFieldInterceptor Using context classloader sun.misc.Launcher$AppClassLoader@64601bb1 to load aspect testcase.MyFieldInterceptor [trying to transform] testcase.MyFieldInterceptor [debug] There are no caller pointcuts! [debug] javassist.CtMethod@26562bc2[public getName ()Ljava/lang/String;] matches no pointcuts [debug] javassist.CtMethod@2ff3c113[public invoke (Lorg/jboss/aop/joinpoint/Invocation;)Ljava/lang/Object;] matches no pointcuts [debug] javassist.CtConstructor@2c76e369[public MyFieldInterceptor ()V] matches no pointcuts [debug] was testcase.MyFieldInterceptor converted: false null
were you able to get the test case i sent you to run correctly (with the duplicated myField inherited variable in class B commented out)?
Upon further investigation it seems that the interceptor is invoked on the inherited field as long as the field is not called from within the subclass itself...what I mean is that in subclass C I have a toString method that returns the inherited A.myField value....
public class C extends B<ZImpl> { public String toString() { return myField; } }
If the inherited field is not duplicated in class B and I call C.toString the interceptor is not run on the inherited A.myField...however...if within the main class i directly call C.myField like this..public class Main { /** * @author gdunkle * @param args * TODO Implement auto-generated method stub */ public static void main(String[] args) { C cInstance=new C(); System.out.println(cInstance.toString()); System.out.println(cInstance.myField); } }
the interceptor is run. I just reran the test case with the 1.5.2 release and the second print line in Main did not invoke the interceptor so it looks like that part of the issue was indeed solved by 1.5.3.
So I guess my new issue is that the interceptors are not being called on fields inherited through the superclass from inside the subclass itself. Should this be expected behavior? Could you please comment?
Thanks -
16. Re: Inteception on field inherited through generic superclas
kabirkhan Jan 18, 2007 12:31 PM (in response to dunks80)You've lost me :-) I tried reproducing the problem, but with no luck. Can you mail me an example, or create a NEW jira issue?
Thanks -
17. Re: Inteception on field inherited through generic superclas
dunks80 Jan 18, 2007 1:10 PM (in response to dunks80)Ugh sorry yeah it's hard to explain i reopened http://jira.jboss.org/jira/browse/JBAOP-339 and added an expanded test case.
It seems that if I access an inherited field (one which is not inherited from the immediate parent class) from within the subclass the interceptor is not run. Does that make sense? -
18. Re: Inteception on field inherited through generic superclas
kabirkhan Jan 18, 2007 2:08 PM (in response to dunks80)You cannot reopen issues that have been released. I have added the new stuff to http://jira.jboss.org/jira/browse/JBAOP-346 and will investigate
-
19. Re: Inteception on field inherited through generic superclas
dunks80 Jan 18, 2007 2:10 PM (in response to dunks80)I apologize. Thanks for looking into it.
-
20. Re: Inteception on field inherited through generic superclas
kabirkhan Jan 18, 2007 2:46 PM (in response to dunks80)That is odd indeed, I cannot see any difference between your test and mine apart from that in my test org.jboss.test.aop.field.FieldTestCase all the classes actually have some advised fields in addition to the inherited ones. I will add a test for this and fix.
-
21. Re: Inteception on field inherited through generic superclas
kabirkhan Jan 19, 2007 9:28 AM (in response to dunks80)OK, I have reproduced your problem and fixed in svn for Branch_AOP_1_5. Please let me know if I got it right this time :-)
I can't remember if you had problems building it from svn, but once you check it out
1) delete all subfolders of the thirdparty/ folder
2) go to the build/ folder and touch build-thirdparty.xml
3) execute build.sh/bat to download the thirdparty libs, it will then continue to build all of JBoss
If 3) works and builds all of JBoss then that's fine. Otherwise, you will need to:
- go to the common/ directory, and execute build.sh/bat
- go to the aop/ directory and execute build.sh/bat -
22. Re: Inteception on field inherited through generic superclas
kabirkhan Feb 20, 2007 7:34 PM (in response to dunks80)JBAOP-346 has been released
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4019626#4019626 -
23. Re: Inteception on field inherited through generic superclas
dunks80 Mar 7, 2007 11:00 AM (in response to dunks80)Hi Kabir
I finally got around to upgrading to 1.4.5.SP2 when I installed Jboss-4.2.0.CR1 and I ran my test case against the latest build. It's almost right. Here is the out put I'm seeing from my test case (I've expanded the test case a bit b/c i was testing some other things as well).[debug] Passed in instrumentor: null [debug] Defaulting instrumentor to: org.jboss.aop.instrument.ClassicInstrumentor [debug] jboss.aop.class.path: /home/gdunkle/workspace/aop-problem/src/java [debug] Looking for aspects in: testcase.ZImpl [debug] Looking for aspects in: testcase.B [debug] Looking for aspects in: testcase.MyFieldAnnotation [debug] Looking for aspects in: testcase.MyMethodInterceptor [debug] Found @InterceptorDef in: testcase.MyMethodInterceptor [debug] Looking for aspects in: testcase.A [debug] Looking for aspects in: testcase.Main [debug] Looking for aspects in: testcase.MyMethodAnnotation [debug] Looking for aspects in: testcase.MyFieldInterceptor [debug] Found @InterceptorDef in: testcase.MyFieldInterceptor [debug] Looking for aspects in: testcase.C [debug] Looking for aspects in: testcase.Z [debug] Looking for aspects in: testcase.D [debug] jboss.aop.search.classpath: 'null' true [deploying] file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml AspectXMLLoader using managerorg.jboss.aop.AspectManager@558385e3 [debug] jboss.aop.path: /home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml jboss.aop.path[0]: /home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml [deploying] file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml AspectXMLLoader using managerorg.jboss.aop.AspectManager@558385e3 [trying to transform] testcase.Main [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] javassist.CtMethod@44a4fe33[public static main ([Ljava/lang/String;)V] matches no pointcuts [debug] javassist.CtConstructor@159b5217[public Main ()V] matches no pointcuts [debug] javassist.CtConstructor@5e7808b9[public C ()V] matches no pointcuts [debug] javassist.CtConstructor@1a84da23[public D ()V] matches no pointcuts [debug] javassist.CtConstructor@80d3d6f[public B ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] javassist.CtConstructor@380e28b9[public A ()V] matches no pointcuts [debug] was testcase.Main converted: true [trying to transform] testcase.C [debug] javassist.CtMethod@69cb6c6d[public toString ()Ljava/lang/String;] matches no pointcuts [debug] javassist.CtConstructor@2d5253d5[public C ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] was testcase.C converted: false [trying to transform] testcase.B [debug] javassist.CtConstructor@3b835282[public B ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] was testcase.B converted: true [trying to transform] testcase.A [debug] javassist.CtMethod@69e1d179[public getMyField ()Ljava/lang/String;] matches pointcut: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] javassist.CtConstructor@4ce32802[public A ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] was testcase.A converted: true iterate binding testcase.MyMethodInterceptor iterate binding testcase.MyFieldInterceptor iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml0 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml2 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml4 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml6 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml8 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml10 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml12 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml14 [debug] added advisor: testcase.Main from binding: file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml8 Using context classloader sun.misc.Launcher$AppClassLoader@181afa3 to load aspect org.jboss.aop.reflection.ReflectionAspect iterate binding testcase.MyMethodInterceptor [debug] added advisor: testcase.A from binding: testcase.MyMethodInterceptor Using context classloader sun.misc.Launcher$AppClassLoader@181afa3 to load aspect testcase.MyMethodInterceptor [trying to transform] testcase.MyMethodInterceptor [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] javassist.CtMethod@26562bc2[public getName ()Ljava/lang/String;] matches no pointcuts [debug] javassist.CtMethod@2ff3c113[public invoke (Lorg/jboss/aop/joinpoint/Invocation;)Ljava/lang/Object;] matches no pointcuts [debug] javassist.CtConstructor@6e811c88[public MyMethodInterceptor ()V] matches no pointcuts [debug] was testcase.MyMethodInterceptor converted: false iterate binding testcase.MyFieldInterceptor [debug] added advisor: testcase.A from binding: testcase.MyFieldInterceptor Using context classloader sun.misc.Launcher$AppClassLoader@181afa3 to load aspect testcase.MyFieldInterceptor [trying to transform] testcase.MyFieldInterceptor [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* jmethod call matched binding call(* java.lang.Class->getMethod(..)) method matched binding execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) public java.lang.String testcase.A.getMyField() field matched binding testcase.MyFieldInterceptor ava.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] MethodCall does not match: execution(* $instanceof{testcase.A}->@testcase.MyMethodAnnotation(..)) [debug] MethodCall does not match: get(* *->@testcase.MyFieldAnnotation) [debug] MethodCall does not match: call(* java.lang.Class->getInterfaces()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getMethods()) [debug] MethodCall does not match: call(* java.lang.Class->getMethod(..)) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredFields()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredClasses()) [debug] MethodCall does not match: call(* java.lang.Class->getDeclaredField(..)) [debug] javassist.CtMethod@26562bc2[public getName ()Ljava/lang/String;] matches no pointcuts [debug] javassist.CtMethod@2ff3c113[public invoke (Lorg/jboss/aop/joinpoint/Invocation;)Ljava/lang/Object;] matches no pointcuts [debug] javassist.CtConstructor@5d5bdc50[public MyFieldInterceptor ()V] matches no pointcuts [debug] was testcase.MyFieldInterceptor converted: false iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml0 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml2 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml4 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml6 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml8 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml10 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml12 iterate binding file:/home/gdunkle/workspace/aop-problem/src/java/META-INF/jboss-aop.xml14 [trying to transform] testcase.D [debug] javassist.CtMethod@69cb6c6d[public toString ()Ljava/lang/String;] matches no pointcuts [debug] javassist.CtConstructor@bd86fd3[public D ()V] matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] testcase.A.myField:Ljava/lang/String; matches no pointcuts [debug] testcase.A.myField:Ljava/lang/String; matches pointcut: get(* *->@testcase.MyFieldAnnotation) [debug] was testcase.D converted: true /*THIS IS THE PROBLEM THIS SHOULD NOT RETURN NULL*/ cInstance.toString()=null cInstance.getMyField()=Invoked testcase.MyMethodInterceptor on testcase.C method getMyField cInstance.myField=Invoked testcase.MyFieldInterceptor on testcase.C field myField cInstance.cInstance.getClass().getMethod("getMyField",new Class[0]).getName()=getMyField dInstance.toString()=Invoked testcase.MyFieldInterceptor on testcase.D field myField dInstance.getMyField()=Invoked testcase.MyMethodInterceptor on testcase.D method getMyField dInstance.myField=Invoked testcase.MyFieldInterceptor on testcase.D field myField dInstance.cInstance.getClass().getMethod("getMyField",new Class[0]).getName()=getMyField
The call to C.toString() returns the inherited A.myField which should be intercepted my MyFieldInterceptor.
What do you think, should I open another jira issue?
Also the latest version of javassist and aop seems to hate java 6. Have your tested the latest release against java 6 or is it just me? -
24. Re: Inteception on field inherited through generic superclas
dunks80 Mar 8, 2007 12:31 PM (in response to dunks80)I've been running my application in jboss-4.2.0.CR1 and i've been seeing some really odd behavior with the aop system. Sometimes my pointcuts won't get picked up..i change nothing...i touch nothing..i just restart the server and bam! it works the next time.
Anyway trying to test this stuff to figure out what the problem is I noticed something in my test case. From my previous post I was getting this output which is wrong...... cInstance.toString()=null cInstance.getMyField()=Invoked testcase.MyMethodInterceptor on testcase.C method getMyField cInstance.myField=Invoked testcase.MyFieldInterceptor on testcase.C field myField cInstance.cInstance.getClass().getMethod("getMyField",new Class[0]).getName()=getMyField dInstance.toString()=Invoked testcase.MyFieldInterceptor on testcase.D field myField dInstance.getMyField()=Invoked testcase.MyMethodInterceptor on testcase.D method getMyField dInstance.myField=Invoked testcase.MyFieldInterceptor on testcase.D field myField dInstance.cInstance.getClass().getMethod("getMyField",new Class[0]).getName()=getMyField ...
As i said cInstance.toString() should not result in null because my interceptor should return a value but it doens't. Ok so I added another protected annotated field to the C class called myOtherField. Now checkout the output of cInstance.toString()...cInstance.toString()=Invoked testcase.MyFieldInterceptor on testcase.C field myField cInstance.getMyField()=Invoked testcase.MyMethodInterceptor on testcase.C method getMyField cInstance.myField=Invoked testcase.MyFieldInterceptor on testcase.C field myField cInstance.myOtherField=Invoked testcase.MyFieldInterceptor on testcase.C field myOtherField cInstance.cInstance.getClass().getMethod("getMyField",new Class[0]).getName()=getMyField dInstance.toString()=Invoked testcase.MyFieldInterceptor on testcase.D field myField dInstance.getMyField()=Invoked testcase.MyMethodInterceptor on testcase.D method getMyField dInstance.myField=Invoked testcase.MyFieldInterceptor on testcase.D field myField dInstance.myOtherField=Invoked testcase.MyFieldInterceptor on testcase.D field myOtherField dInstance.cInstance.getClass().getMethod("getMyField",new Class[0]).getName()=getMyField
Suddenly the interceptor is run on the inherited myField attribute for C. It's almost like the aop system doens't see any direct annotations in the C class so it doesn't bother applying any aspects but if there is an annotation in C then it will also take the time to look for any inherited fields that may be annotated. -
25. Re: Inteception on field inherited through generic superclas
kabirkhan Apr 3, 2007 8:30 AM (in response to dunks80)Sorry for the delay in getting back to you on this. Assuming that you have a checkout of jboss aop, would you be able to add a test demonstrating the behaviour and attach the svn diff and new classes to a new JIRA issue?
The test files to modify would be under
boss-aop\aop\src\test\org\jboss\test\aop\field
and the jboss-aop.xml file lives in
jboss-aop\aop\src\resources\test\field