From e15f6c7327588bc11bb73ba1535ecf8e88791e02 Mon Sep 17 00:00:00 2001 From: Ants Aasma Date: Sun, 20 Jan 2008 04:31:53 +0000 Subject: [PATCH] fix rollback behavior with transaction context manager and failed two phase transactions --- lib/sqlalchemy/orm/session.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index f32ec25ec2..03471df341 100644 --- a/lib/sqlalchemy/orm/session.py +++ b/lib/sqlalchemy/orm/session.py @@ -238,11 +238,7 @@ class SessionTransaction(object): for t in util.Set(self._connections.values()): t[1].prepare() except: - for t in util.Set(self._connections.values()): - try: - t[1].rollback() - except: - pass + self.rollback() raise self._deactivate() @@ -310,7 +306,11 @@ class SessionTransaction(object): if self.session.transaction is None: return if type is None: - self.commit() + try: + self.commit() + except: + self.rollback() + raise else: self.rollback() -- 2.47.3