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):