Yes I think that's the correct behavior with a small twist.
Every non HibernateException and PersistenceException should mark for rollback.
HibernateException and PersistenceException have different rules that are implemented
somewhere nearby.
On 22 févr. 2010, at 18:47, Hardy Ferentschik wrote:
Hi,
I was just looking at HHH-4676 - "Any interceptor exception (RTE) should
mark the tx for rollback"
and was wondering whether we can generally say that in JPA any
RuntimeException will mark the current
transaction for a rollback.
Currently we have this in AbstractEntityManagerImpl:
public RuntimeException convert(RuntimeException e) {
RuntimeException result = e;
if ( e instanceof HibernateException ) {
result = convert( (HibernateException) e );
}
else if (e instanceof ConstraintViolationException) {
markAsRollback();
}
//if any RT exception should mark the tx for rollback, convert the last
else if into a else
return result;
}
Should this be changed to:
public RuntimeException convert(RuntimeException e) {
RuntimeException result = e;
if ( e instanceof HibernateException ) {
result = convert( ( HibernateException ) e, null );
}
else {
markAsRollback();
}
return result;
}
Meaning all RuntimeExceptions will mark the current transaction for
rollback? Any comments?
--Hardy
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev