From cded6e48dbb71bffbda85999d2fb959535e0542a Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 19 Jul 2013 09:44:25 -0700 Subject: [PATCH] CRM-13085 - Fix premature transaction commit stemming from TRUNCATE TABLE civicrm_acl_contact_cache ---------------------------------------- * CRM-13085: Transaction rollback doesn't work with contact creation (due to ACL TRUNCATE) http://issues.civicrm.org/jira/browse/CRM-13085 --- CRM/ACL/BAO/Cache.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CRM/ACL/BAO/Cache.php b/CRM/ACL/BAO/Cache.php index 7d0eff64f6..4543474a1f 100644 --- a/CRM/ACL/BAO/Cache.php +++ b/CRM/ACL/BAO/Cache.php @@ -140,7 +140,15 @@ WHERE modified_date IS NULL "; CRM_Core_DAO::singleValueQuery($query); - CRM_Core_DAO::singleValueQuery("TRUNCATE TABLE civicrm_acl_contact_cache"); + // CRM_Core_DAO::singleValueQuery("TRUNCATE TABLE civicrm_acl_contact_cache"); // No, force-commits transaction + // CRM_Core_DAO::singleValueQuery("DELETE FROM civicrm_acl_contact_cache"); // Transaction-safe + if (CRM_Core_Transaction::isActive()) { + CRM_Core_Transaction::addCallback(CRM_Core_Transaction::PHASE_POST_COMMIT, function(){ + CRM_Core_DAO::singleValueQuery("TRUNCATE TABLE civicrm_acl_contact_cache"); + }); + } else { + CRM_Core_DAO::singleValueQuery("TRUNCATE TABLE civicrm_acl_contact_cache"); + } } } -- 2.25.1