Hello,

> The main reason is because allowing these exceptions to be (re-)thrown 
> opens up mixed heuristic issues.
> 
> Also bear in mind that we have no clue about the nature of the process 
> being performed by the synch.  It highly likely that "failure" of the 
> synch should *not* rollback the main transaction.  This is really one of 
> the 50/50 data points.  We really just do not know, and the contract 
> gives us no way to know.  However, if rolling back is that important it 
> is in fact possible in any case i can imagine to pass the 
> o.h.Transaction into the Synchronization constructor and actually roll 
> it back if an error occurs.

Right. Then I was thinking about two solutions:
1) as Hernan wrote above
2) check if the TX wasn't rolled back by the synchronization 
(tx.isMarkedForRollBack or sth similar) explicitly. If so, rethrow the 
exception.

-- 
Adam Warski
http://www.warski.org
http://www.softwaremill.eu





_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to