You can't add the same interceptor class twice in the same chain... I tried using a DynamicProxy before, but it didn't work because CommandVisitor is not an interface (it's an abstract class).