From 24c7cc856f71d07f82fa9a560b7912e76fbbf58e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Tue, 21 Mar 2023 16:15:29 +0000 Subject: [PATCH] [FIX] mail: no crash on call from another device Before this commit, when in a call on another device and then calling from another device, there might be the following traceback: ``` TypeError: Cannot read properties of undefined (reading 'lastObservedRecords') at ModelManager.removeListener at RelationSet.delete at RelationSet.clear at ModelField._setRelationReplace at ModelField.parseAndExecuteCommands at ModelManager._update at Listener.onChange at ModelManager._notifyListenersInUpdateCycle at ModelManager._flushUpdateCycle at ModelManager.update ``` This is caused by removing a non-existent listener on a field, very likely related to a relational field from the call being terminated. This commit fixes the issue by silently skipping removal of listener when it's undefined. Task-3241562 closes odoo/odoo#116192 X-original-commit: 24af22187ce8401d925edb1dda02652f993c7394 Signed-off-by: Louis Wicket (wil) --- addons/im_livechat/static/src/legacy/model/model_manager.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/im_livechat/static/src/legacy/model/model_manager.js b/addons/im_livechat/static/src/legacy/model/model_manager.js index da8c23672ae..c54629bee30 100644 --- a/addons/im_livechat/static/src/legacy/model/model_manager.js +++ b/addons/im_livechat/static/src/legacy/model/model_manager.js @@ -311,6 +311,9 @@ export class ModelManager { * @param {Listener} listener */ removeListener(listener) { + if (!listener) { + return; + } this._listeners.delete(listener); this._listenersToNotifyInUpdateCycle.delete(listener); this._listenersToNotifyAfterUpdateCycle.delete(listener);