Ola a todos,
O método abaixo não captura a OptimisticLockException, sempre esta caindo direto na Exception logo abaixo. Algum palpite pessoal?
public String edit() {
EntityManager em = getEntityManager();
try {
em.getTransaction().begin();
cliente = em.merge(cliente);
em.getTransaction().commit();
addSuccessMessage("Cliente was successfully updated.");
} catch (OptimisticLockException ex) {
addErrorMessage(" Registro alterado por outro usuario !");
em.getTransaction().rollback();
} catch (Exception ex) {
try {
addErrorMessage(ex.getLocalizedMessage());
em.getTransaction().rollback();
} catch (Exception e) {
addErrorMessage(e.getLocalizedMessage());
}
} finally {
em.close();
}
return "cliente_list";
}
aqui esta a exception lançada:
Exception [TOPLINK-5010] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.OptimisticLockException Exception Description: The object [entidade.Cliente@1c66812] cannot be merged because it has changed or been deleted since it was last read. {3}Class> entidade.Cliente
Sds