Problema estranho com reflect

Olá pessoal,

Estou rodando uma aplicação EJB3 no JBOSS e estou com um problema. Sempre que tento acessar javax.persistence.Version.class acontece um null pointer. Consigo acessar a classe Id (do mesmo pacote) normalmente, mas especificamente com a Version acontece o problema.
Segue o código:

[code]public class ChangeLoggerInterceptor {

@PersistenceContext(unitName = "agenda")
private EntityManager entityManager;

public ChangeLoggerInterceptor() {

}

@AroundInvoke
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public Object registrar(InvocationContext context) throws Exception {
	Object parametroNovo = context.getParameters()[0];

	Object id = null;
	Long version = null;
	Method[] methods = parametroNovo.getClass().getDeclaredMethods();
	int i = 0;
	while ((id == null || version == null) && i < methods.length) {
		methods[i].setAccessible(true);
		try {
			if ((id == null) && methods[i].getAnnotation(Id.class) != null) {
				id = methods[i].invoke(parametroNovo);
			}
			if (methods[i].getAnnotation(Version.class) != null) {
				version = (Long) methods[i].invoke(parametroNovo);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			i++;
		}
	}
	if (version == null) {
		version = new Long(0);
	}
	Object parametroAntigo = entityManager.find(parametroNovo.getClass(),
			id);
	Date d = Calendar.getInstance().getTime();
	Object ref = new InitialContext().lookup("ChangeLoggerBean/remote");
	ChangeLogger logger = (ChangeLogger) PortableRemoteObject.narrow(ref,
			ChangeLoggerRemote.class);
	logger.log("eu", d, parametroNovo, parametroAntigo, (Integer) id,
			version);

	return context.proceed();
}

}[/code]

O problema está aqui:
if (methods[i].getAnnotation(Version.class) != null)
Só pelo Version.class acontece um NullPointerException. E o mais estranho de tudo: esse código já funcionou, mas após adicionar segurança aos EJBs o problema começou a acontecer. Alguém já teve problema parecido?

Grato,
Thiago Jamir