diff --git a/addons/web/controllers/database.py b/addons/web/controllers/database.py index 255d981fa2a..fd99cd198b5 100644 --- a/addons/web/controllers/database.py +++ b/addons/web/controllers/database.py @@ -116,8 +116,6 @@ class Database(http.Controller): dispatch_rpc('db', 'change_admin_password', ["admin", master_pwd]) try: dispatch_rpc('db', 'drop', [master_pwd, name]) - if request.db == name: - request.env.cr._closed = True # the underlying connection was closed if request.session.db == name: request.session.logout() return request.redirect('/web/database/manager') diff --git a/odoo/service/model.py b/odoo/service/model.py index d6ebf8c0c9a..46774552642 100644 --- a/odoo/service/model.py +++ b/odoo/service/model.py @@ -161,7 +161,7 @@ def retrying(func, env): env.registry.reset_changes() raise - if not env.cr._closed: + if not env.cr.closed: env.cr.commit() # effectively commits and execute post-commits env.registry.signal_changes() return result diff --git a/odoo/sql_db.py b/odoo/sql_db.py index 45917e22763..37e82f1b9cb 100644 --- a/odoo/sql_db.py +++ b/odoo/sql_db.py @@ -391,7 +391,7 @@ class Cursor(BaseCursor): _logger.setLevel(level) def close(self): - if not self._closed: + if not self.closed: return self._close(False) def _close(self, leak=False): @@ -463,7 +463,7 @@ class Cursor(BaseCursor): @property def closed(self): - return self._closed + return self._closed or self._cnx.closed def now(self): """ Return the transaction's timestamp ``NOW() AT TIME ZONE 'UTC'``. """