Looking at the order of interceptors in your -aop.xml and the code you posted, I don't see a reason why it would be null. If you have a sample application which reproduces this, please attach it here.
(So far it's just been a few snippets of code from some classes, so I can't really say whether it's a bug in your code or whether it's some config issue or it's some bug in JBoss EJB3 code).