summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/session.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/orm/session.py')
-rw-r--r--lib/sqlalchemy/orm/session.py16
1 files changed, 2 insertions, 14 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index 56513860a..0af8f60fb 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -408,23 +408,11 @@ class SessionTransaction(object):
for subtransaction in stx._iterate_parents(upto=self):
subtransaction.close()
- if _capture_exception:
- captured_exception = sys.exc_info()[1]
-
boundary = self
if self._state in (ACTIVE, PREPARED):
for transaction in self._iterate_parents():
if transaction._parent is None or transaction.nested:
- try:
- transaction._rollback_impl()
- except Exception:
- if _capture_exception:
- util.warn(
- "An exception raised during a Session "
- "persistence operation cannot be raised "
- "due to an additional ROLLBACK exception; "
- "the exception is: %s" % captured_exception)
- raise
+ transaction._rollback_impl()
transaction._state = DEACTIVE
boundary = transaction
break
@@ -446,7 +434,7 @@ class SessionTransaction(object):
self.close()
if self._parent and _capture_exception:
- self._parent._rollback_exception = captured_exception
+ self._parent._rollback_exception = sys.exc_info()[1]
sess.dispatch.after_soft_rollback(sess, self)