diff options
| author | Ants Aasma <ants.aasma@gmail.com> | 2008-01-20 04:31:53 +0000 |
|---|---|---|
| committer | Ants Aasma <ants.aasma@gmail.com> | 2008-01-20 04:31:53 +0000 |
| commit | e15f6c7327588bc11bb73ba1535ecf8e88791e02 (patch) | |
| tree | 488cb027106f25bbcdf1a827a6912c8bfdc37bf5 /lib/sqlalchemy | |
| parent | f645c0a420c2253f13d04b48a6037cbd52b75e2f (diff) | |
| download | sqlalchemy-e15f6c7327588bc11bb73ba1535ecf8e88791e02.tar.gz | |
fix rollback behavior with transaction context manager and failed two phase transactions
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/orm/session.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py index f32ec25ec..03471df34 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() |
