diff --git a/thirdparty/propel/Propel.php b/thirdparty/propel/Propel.php index 22122f369..b1471941f 100644 --- a/thirdparty/propel/Propel.php +++ b/thirdparty/propel/Propel.php @@ -601,7 +601,9 @@ class Propel foreach (self::$connectionMap as $cnn) { if (get_class($cnn) != "DBArrayConnection") { if (isset($cnn->lastQuery)) { - if (gettype($cnn->getResource()) == "resource" && $cnn->isConnected() && $cnn->lastQuery != $lastQuery) { + $existsIsConnectedMethod = method_exists($cnn, "isConnected"); + $existsCloseMethod = method_exists($cnn, "close"); + if ($existsIsConnectedMethod && $existsCloseMethod && $cnn->isConnected() && $cnn->lastQuery != $lastQuery) { $cnn->close(); } $lastQuery = $cnn->lastQuery; diff --git a/workflow/engine/src/ProcessMaker/Core/JobsManager.php b/workflow/engine/src/ProcessMaker/Core/JobsManager.php index e96b998fe..e1df5de01 100644 --- a/workflow/engine/src/ProcessMaker/Core/JobsManager.php +++ b/workflow/engine/src/ProcessMaker/Core/JobsManager.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Core; +use Bootstrap; use Exception; use Illuminate\Support\Facades\Log; use ProcessMaker\BusinessModel\Factories\Jobs; @@ -140,12 +141,14 @@ class JobsManager $_SESSION = $environment['session']; $_SERVER = $environment['server']; - Propel::initConfiguration($environment['configuration']); foreach ($environment['constants'] as $key => $value) { if (!defined($key)) { define($key, $value); } } + + Propel::close(); + Propel::init(PATH_CONFIG . "databases.php"); } /** @@ -190,6 +193,11 @@ class JobsManager $callback($environment); } catch (Exception $e) { Log::error($e->getMessage() . ": " . $e->getTraceAsString()); + $context = [ + "trace" => $e->getTraceAsString(), + "workspace" => $environment["constants"]["SYS_SYS"] + ]; + Bootstrap::registerMonolog("queue:work", 400, $e->getMessage(), $context, ""); throw $e; } }); diff --git a/workflow/engine/src/ProcessMaker/Model/Delegation.php b/workflow/engine/src/ProcessMaker/Model/Delegation.php index 61222bcfb..17453fd60 100644 --- a/workflow/engine/src/ProcessMaker/Model/Delegation.php +++ b/workflow/engine/src/ProcessMaker/Model/Delegation.php @@ -534,9 +534,10 @@ class Delegation extends Model $selfServiceTasks = TaskUser::getSelfServicePerUser($usrUid); if (!empty($selfServiceTasks)) { - // Start the first query + // Start the second query $query2 = Delegation::query()->select('APP_NUMBER'); $query2->tasksIn($selfServiceTasks); + $query2->isThreadOpen(); $query2->noUserInThread(); // Build the complex query that uses "UNION DISTINCT" clause diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index bdbddfe9b..869592e64 100644 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -1079,15 +1079,24 @@ Ext.onReady(function(){ try { var data = Ext.util.JSON.decode(result.responseText); if (data.status == true) { - // The case was cancelled - parent.notify('', _("ID_CASE_CANCELLED", stringReplace("\\: ", "", _APP_NUM))); + if (!isBrowserIE()) { + // The case was cancelled + parent.notify('', _("ID_CASE_CANCELLED", stringReplace("\\: ", "", _APP_NUM))); + } } else { - // The case wasn't cancel - parent.notify('', data.msg); + if (!isBrowserIE()) { + // The case wasn't cancel + parent.notify('', data.msg); + } } parent.updateCasesTree(); } catch (e) { - parent.notify('', _('ID_SOMETHING_WRONG')); + if (isBrowserIE()) { + Ext.MessageBox.alert(_('ID_FAILED'), _('ID_SOMETHING_WRONG')); + } else { + parent.notify('', _('ID_SOMETHING_WRONG')); + } + } location.href = 'casesListExtJs'; },