Paul,
Thanks for responding!!
I totally agree with the fact that one should stick to the specs.
The only other server I have is Websphere 6.1 which supports only EJB 2.x. So I am not able to
test it elsewhere.
Basically my question is about two things.
1) Why does the spec explicitly specify that the interceptor method should not be final or static?
2) Why does the "Reference Implementation" server allow me to deviate from the spec.
Anyway here's what I guess the answer is. If any one knows better, please correct me.
For 1, I think the spec team expects the implementer to use some Dynamic Proxying mechanism a la Spring's AOP to implement Interceptors. If they use something like CGLIB (which creates a proxy by extending the original class and then overriding the method) final or static methods are definitely no no.
For 2, I guess the Glassfish team is not using CGLIB

Probably they are manipulating the bytecode right away ... maybe ASM?