]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
when begin/commit, an exception should still reset the transactional state
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 22 Feb 2006 00:33:38 +0000 (00:33 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 22 Feb 2006 00:33:38 +0000 (00:33 +0000)
lib/sqlalchemy/mapping/objectstore.py

index e68c59e30d629a427f95b2ae440d2d2046579292..311a6c54206968671e4f0f32ad741f3fe56e77b2 100644 (file)
@@ -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