From da7f546adeff31eaa12c36335f33fa70fc8b96bd Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Tue, 9 Dec 2014 10:50:14 -0400 Subject: [PATCH] PM-1099 "El archivo plugin.singleton se reescribe muchas..." SOLVED Issue: El archivo plugin.singleton se reescribe muchas veces para un solo request Cause: Al instanciar un objeto de la clase "pmLicenseManager" se hace una llamada al metodo "activateFeatures", y este proceso ocasiona que cuando un usuario haga un request a un determinado modulo de ProcessMaker se hagan varias llamadas al metodo "activateFeatures" Solution: Se ha agregado un parametro al contructor de la clase "pmLicenseManager" el cual evita la ejecucion del metodo "activateFeatures" --- workflow/engine/classes/class.licensedFeatures.php | 3 ++- workflow/engine/classes/class.pmLicenseManager.php | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/workflow/engine/classes/class.licensedFeatures.php b/workflow/engine/classes/class.licensedFeatures.php index a7baf8d45..2136ec33c 100644 --- a/workflow/engine/classes/class.licensedFeatures.php +++ b/workflow/engine/classes/class.licensedFeatures.php @@ -68,7 +68,8 @@ class PMLicensedFeatures if (!class_exists("pmLicenseManager")) { require_once ("classes" . PATH_SEP . "class.pmLicenseManager.php"); } - $licenseManager = pmLicenseManager::getSingleton(); + + $licenseManager = pmLicenseManager::getSingleton(false); $_SESSION['__sw__'] = true; $padl = new padl(); diff --git a/workflow/engine/classes/class.pmLicenseManager.php b/workflow/engine/classes/class.pmLicenseManager.php index e2b2dd7a4..4e95560e2 100644 --- a/workflow/engine/classes/class.pmLicenseManager.php +++ b/workflow/engine/classes/class.pmLicenseManager.php @@ -10,7 +10,7 @@ class pmLicenseManager private static $instance = null; - public function __construct() + public function __construct($flagActivatePlugins = true) { G::LoadClass('serverConfiguration'); $oServerConf = &serverConf::getSingleton(); @@ -109,13 +109,15 @@ class pmLicenseManager $oServerConf->setProperty ( 'LICENSE_INFO', $licInfoA ); } - $this->activateFeatures (); + if ($flagActivatePlugins) { + $this->activateFeatures(); + } } - public static function getSingleton() + public static function getSingleton($flagActivatePlugins = true) { if (self::$instance == null) { - self::$instance = new pmLicenseManager(); + self::$instance = new pmLicenseManager($flagActivatePlugins); } return self::$instance; }