JBoss 4.0.5.GA
JBoss AOP 1.5.2.GA load time weaving 
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-b105, mixed mode)

I'm seeing the following unexpected behavior 

  
  | public abstract class A
  | {
  |    @MyFieldAnnotation
  |    protected Object myField;
  | ...
  | }
  | 
  | 
  | public abstract class B<Z> extends A
  | {
  | ...
  | }
  | 
  | public class C extends B<Y>
  | {
  | ...
  | }  
  | 
  | @InterceptorDef(scope = Scope.PER_VM)
  | @Bind(pointcut = "get(* *->@MyFieldAnnotation)")
  | public class MyFieldInterceptor implements Interceptor
  | {
  | ...
  | }
  | 
  | 

When i try to call myField on an instance of C from within a method in C my 
interceptor is not run. However if I duplicate the annotated field in class B 
like this...

  

  | public abstract class A
  | {
  |    @MyFieldAnnotation
  |    protected Object myField;
  | ...
  | }
  | 
  | 
  | public abstract class B<Z> extends A
  | {
  |  @MyFieldAnnotation
  |    protected Object myField;
  | ...
  | }
  | 

...then the interceptor works when calling myField from an instance of C. I'm 
guess that since B is generic some sort of erasure of the annotation is 
happening. As a work around in the meantime I've just duplicated the annotated 
field. I just wanted to know whether this issue was known to the developers (if 
not I'll post it to jira) and whether or not there was some way to get this 
working without the need to duplicate that field.     


Thanks

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3999553#3999553

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3999553
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to