details:   https://code.tryton.org/tryton/commit/1785dbf0a94d
branch:    8.0
user:      Nicolas Évrard <[email protected]>
date:      Fri Apr 24 11:47:03 2026 +0200
description:
        Ensure check_warnings and _datamanagers are valid when using them
        (grafted from ee9737c3a9c8618d09c491f5c3401fef0f0f078f)
diffstat:

 trytond/trytond/transaction.py |  8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diffs (25 lines):

diff -r 517703481f03 -r 1785dbf0a94d trytond/trytond/transaction.py
--- a/trytond/trytond/transaction.py    Tue Apr 21 11:40:53 2026 +0200
+++ b/trytond/trytond/transaction.py    Fri Apr 24 11:47:03 2026 +0200
@@ -368,7 +368,8 @@
         self._clear_warnings()
 
     def _clear_warnings(self):
-        self.check_warnings.clear()
+        if self.check_warnings:
+            self.check_warnings.clear()
 
     def commit(self):
         from trytond.cache import Cache
@@ -404,8 +405,9 @@
         from trytond.cache import Cache
         for cache in self.cache.values():
             cache.clear()
-        for datamanager in self._datamanagers:
-            datamanager.tpc_abort(self)
+        if self._datamanagers:
+            for datamanager in self._datamanagers:
+                datamanager.tpc_abort(self)
         Cache.rollback(self)
         self._clear_log_records()
         self._clear_user_notifications()

Reply via email to