diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-02-22 00:33:38 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-02-22 00:33:38 +0000 |
| commit | eb8cd46bf5d64038892c7c2fd3b68c49517d094e (patch) | |
| tree | 9dc40f5469597e6e68a3235eb6be2bc55f776327 /lib/sqlalchemy/mapping | |
| parent | 24e22e2e5a20c6dea4e8030feb1f579b7dfc2bcd (diff) | |
| download | sqlalchemy-eb8cd46bf5d64038892c7c2fd3b68c49517d094e.tar.gz | |
when begin/commit, an exception should still reset the transactional state
Diffstat (limited to 'lib/sqlalchemy/mapping')
| -rw-r--r-- | lib/sqlalchemy/mapping/objectstore.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/sqlalchemy/mapping/objectstore.py b/lib/sqlalchemy/mapping/objectstore.py index e68c59e30..311a6c542 100644 --- a/lib/sqlalchemy/mapping/objectstore.py +++ b/lib/sqlalchemy/mapping/objectstore.py @@ -119,9 +119,11 @@ class Session(object): def _trans_commit(self, trans): if trans.uow is self.uow and trans.isactive: - self.uow.commit() - self.uow = self.parent_uow - self.parent_uow = None + try: + self.uow.commit() + finally: + self.uow = self.parent_uow + self.parent_uow = None def _trans_rollback(self, trans): if trans.uow is self.uow: self.uow = self.parent_uow |
