Hi,
I try to intercept the methods of javax.ejb.SessionSynchronization with a decorator. My decorator looks like that:
@Decoratorpublic abstract class EJBRollbackDecorator implements MyTestBean{
@Inject
@Delegate
@Any
private MyTestBean myTestBean;
ByteArrayOutputStream serializedObject = new ByteArrayOutputStream();
Logger logger = Logger.getLogger(this.getClass().getName());
public EJBRollbackDecorator() {
}
@PostConstruct
public void postConstruct() {
logger.info("[DECORATOR]: constructed = " + this);
}
@Override
public void afterBegin() {
logger.info("[DECORATOR]: afterBegin");
}
@Override
public void afterCompletion(boolean committed) {
logger.info("[DECORATOR]: afterCompletion");
}
@Override
public void decoratorTest() {
logger.info("[DECORATOR]: decoratorTest = " + this);
}
}
Of course, MyTestBean implements SessionSynchronization.
When a new transaction is started (or committed) none of the methods of the decorator is called. But if I call the decoratorTest() method of my test bean everything works fine.
Is this a bug or are the methods of SessionSynchronization not supposed to be intercepted?
Thanks in advance,
Moe