Currently the session implementor etc. takes care to catch and ignore all
exceptions raised by the  BeforeTransactionCompletion family of callbacks.

It has been suggested in NH-1082 that this behaviour is flawed and that an
exception from the interceptor should abort the transaction. Currently we
have a situation where something can go horribly wrong in the interceptor
and yet the transaction would proceed.

The current behaviour of ignoring exceptions in these places is consistent
with Hibernate, but I've been unable to find and reasoning to explain it.
There have been various questions about it in forums, but no real reply.

I opened https://hibernate.atlassian.net/browse/HHH-8585 for Hibernate a
while back, but these is no response so far.

Can anyone remember a reason (or think of one) for ignoring exceptions here?


Unless a reason is revealed, I suggest that NHibernate be changed so that
exceptions in this place are not ignored, but are allowed to bubble out of
and thus abort the commit. I'm also inclined to introduce a configuration
whereby the old behaviour can be reinstated for backwards compatibility. I
believe the default settings should be to not ignore exceptions, and the
configuration option itself might be considered as immediately deprecated.


There is code provided at
https://github.com/nhibernate/nhibernate-core/pull/225


/Oskar

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to