Fixed #21166 -- Reset errors_occurred flag after commit and rollback.

This commit is contained in:
Aymeric Augustin 2014-04-11 22:55:07 +02:00
parent 5c0333de2e
commit 3033a7193a
1 changed files with 6 additions and 0 deletions

View File

@ -166,6 +166,8 @@ class BaseDatabaseWrapper(object):
self.validate_thread_sharing() self.validate_thread_sharing()
self.validate_no_atomic_block() self.validate_no_atomic_block()
self._commit() self._commit()
# A successful commit means that the database connection works.
self.errors_occurred = False
def rollback(self): def rollback(self):
""" """
@ -174,6 +176,8 @@ class BaseDatabaseWrapper(object):
self.validate_thread_sharing() self.validate_thread_sharing()
self.validate_no_atomic_block() self.validate_no_atomic_block()
self._rollback() self._rollback()
# A successful rollback means that the database connection works.
self.errors_occurred = False
def close(self): def close(self):
""" """
@ -381,6 +385,8 @@ class BaseDatabaseWrapper(object):
self.close() self.close()
return return
# If an exception other than DataError or IntegrityError occurred
# since the last commit / rollback, check if the connection works.
if self.errors_occurred: if self.errors_occurred:
if self.is_usable(): if self.is_usable():
self.errors_occurred = False self.errors_occurred = False