diff --git a/odoo/addons/base/models/ir_module.py b/odoo/addons/base/models/ir_module.py index f197a154b140751933fb5de1ce24a4017b9dbdca..6dd1228491078a0f17bd8176c5038a529c8d35c2 100644 --- a/odoo/addons/base/models/ir_module.py +++ b/odoo/addons/base/models/ir_module.py @@ -614,6 +614,10 @@ class Module(models.Model): self._cr.commit() registry = modules.registry.Registry.new(self._cr.dbname, update_module=True) self._cr.commit() + if request and request.registry is self.env.registry: + request.env.cr.reset() + request.registry = request.env.registry + assert request.env.registry is registry self._cr.reset() assert self.env.registry is registry diff --git a/odoo/http.py b/odoo/http.py index 575554ba93e66d1cc852d3be7573c90e3b0be3ab..aa7369e9a5f29b511598e542e7c576cff40cff71 100644 --- a/odoo/http.py +++ b/odoo/http.py @@ -1608,7 +1608,8 @@ class Request: ir_http._authenticate(rule.endpoint) ir_http._pre_dispatch(rule, args) response = self.dispatcher.dispatch(rule.endpoint, args) - ir_http._post_dispatch(response) + # the registry can have been reniewed by dispatch + self.registry['ir.http']._post_dispatch(response) return response