Diferente de outras partes do código em que uma anotação é posta acima do método/atributo, no método close da classe JPAUtil a anotação @Disposes foi inserida ao lado do parâmetro do método (ver abaixo).
public void close(@Disposes EntityManager em){
if( em.isOpen()) {
em.close();
}
}
Isso muda alguma coisa? Eu poderia ter colocado essa anotação acima do método também?