diff options
| author | Raphael Collet <rco@openerp.com> | 2016-01-15 11:53:15 +0100 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2016-01-15 17:04:45 +0100 |
| commit | c4494b9868621c0bf8c6ac683bf7faab2f3b6f74 (patch) | |
| tree | 1e98190e8cd656685746a1c404448b88738f2d82 /openerp/sql_db.py | |
| parent | 8c3eb91e57c549db5dd0f86a213129d6d69b8ca8 (diff) | |
[FIX] sql_db: do not handle errors when releasing savepoint
If you commit the transaction inside the context manager `cr.savepoint()`, the
savepoint is lost. In that case, releasing the savepoint fails. That failure
should not be handled by rolling back to the savepoint...
Diffstat (limited to 'openerp/sql_db.py')
| -rw-r--r-- | openerp/sql_db.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/openerp/sql_db.py b/openerp/sql_db.py index bd60572d184..ea34aac9295 100644 --- a/openerp/sql_db.py +++ b/openerp/sql_db.py @@ -374,10 +374,11 @@ class Cursor(object): self.execute('SAVEPOINT "%s"' % name) try: yield - self.execute('RELEASE SAVEPOINT "%s"' % name) - except: + except Exception: self.execute('ROLLBACK TO SAVEPOINT "%s"' % name) raise + else: + self.execute('RELEASE SAVEPOINT "%s"' % name) @check def __getattr__(self, name): |
