From 7fb1b6f30b168d199db7c46c508e13d1957dab52 Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Wed, 12 Oct 2016 17:29:41 +0200 Subject: [PATCH] [FIX] utm: dont try to set cookies if Response is Exception Also prefetch tracking_fields before the call to super to avoid to use a closed cursor. See odoo/odoo@6780597 this commit closes #13646 --- addons/utm/models/ir_http.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/utm/models/ir_http.py b/addons/utm/models/ir_http.py index dd0a93d3976..5c527fc276b 100644 --- a/addons/utm/models/ir_http.py +++ b/addons/utm/models/ir_http.py @@ -10,8 +10,16 @@ class ir_http(orm.AbstractModel): return request.httprequest.host def _dispatch(self): + tracked_fields = self.pool['utm.mixin'].tracking_fields() + response = super(ir_http, self)._dispatch() - for var, dummy, cook in self.pool['utm.mixin'].tracking_fields(): + + # no set_cookie on Exception + if isinstance(response, Exception): + return response + + for var, dummy, cook in tracked_fields: if var in request.params and request.httprequest.cookies.get(var) != request.params[var]: response.set_cookie(cook, request.params[var], domain=self.get_utm_domain_cookies()) + return response