CRM-20802 - CaseType - Flush any in-memory caches that might reference case-type
authorTim Otten <totten@civicrm.org>
Sat, 1 Jul 2017 19:22:08 +0000 (12:22 -0700)
committerTim Otten <totten@civicrm.org>
Sat, 1 Jul 2017 19:22:08 +0000 (12:22 -0700)
CRM/Case/BAO/CaseType.php
CRM/Case/XMLRepository.php

index bf21b11f339627f144988098e8e7c602900b9660..5f028ec7442f3cf91011bf06c5c8bbc74b2ddff0 100644 (file)
@@ -80,7 +80,9 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType {
     }
 
     $caseTypeDAO->copyValues($params);
-    return $caseTypeDAO->save();
+    $result = $caseTypeDAO->save();
+    CRM_Case_XMLRepository::singleton()->flush();
+    return $result;
   }
 
   /**
index bf6e2c210b3aeb686e2c46b5771370b82c94eb95..a86e440160773feb5ed4e907e8c38159bf2abafb 100644 (file)
@@ -63,6 +63,13 @@ class CRM_Case_XMLRepository {
     return self::$singleton;
   }
 
+  public function flush() {
+    $this->xml = array();
+    $this->hookCache = NULL;
+    $this->allCaseTypes = NULL;
+    CRM_Core_DAO::$_dbColumnValueCache = array();
+  }
+
   /**
    * Class constructor.
    *