4 Replies Latest reply: Jan 11, 2012 9:03 AM by Jozef Hartinger RSS

Abstract method and Interceptor

Vitaly Masterov Newbie

There is an AbstractSimpleBean abstract class with the doAction() method and the handle() abstract method. SimpleBean is a child of AbstractSimpleBean, SimpleBean implements the handle() method. Also there are an Interceptor class and the @Simple qualifier with @InterceptorBinding.
If the handle() method is annotated as @Simple, the interceptor class does not work.

@Target({TYPE, METHOD})
public @interface Simple {


@Interceptor @Simple
public class SimpleInterceptor implements Serializable {
     private static final long serialVersionUID = 6824959430435594183L;
     private Logger log;
     public Object around(InvocationContext ctx) throws Exception {
          log.info("... around() ...");
          return ctx.proceed();


public abstract class AbstractSimpleBean {
     protected Logger log;
     public abstract void handle();
     public void doAction() {
          log.info("... doAction() ...");


public class SimpleBean extends AbstractSimpleBean {

     private static final long serialVersionUID = 7944713842447575257L;
     public void handle() {
          log.info("... handle() ...");

When the doAction() method is annotated as @Simple in the AbstractSimpleBean parent class, all works fine. Is this a limitation for abstract methods in CDI and Weld or is it a bug?