From 289fcb48d758f4dd46012016beedb5c324cac6f5 Mon Sep 17 00:00:00 2001 From: Justus Dieckmann <justusdieckmann@wwu.de> Date: Thu, 19 Sep 2019 23:33:03 +0200 Subject: [PATCH] Prevent non-object error for workflow without any steps --- classes/processor.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/classes/processor.php b/classes/processor.php index 7ed8f10..f152055 100644 --- a/classes/processor.php +++ b/classes/processor.php @@ -102,18 +102,23 @@ class processor { $workflow = workflow_manager::get_workflow($process->workflowid); while (true) { - if ($process->stepindex == 0) { - process_manager::proceed_process($process); - } - - $step = step_manager::get_step_instance_by_workflow_index($process->workflowid, $process->stepindex); - $lib = lib_manager::get_step_lib($step->subpluginname); try { $course = get_course($process->courseid); } catch (\dml_missing_record_exception $e) { // Course no longer exists! break; } + + if ($process->stepindex == 0) { + if (!process_manager::proceed_process($process)) { + // Happens for a workflow with no step. + delayed_courses_manager::set_course_delayed_for_workflow($course->id, false, $workflow); + break; + } + } + + $step = step_manager::get_step_instance_by_workflow_index($process->workflowid, $process->stepindex); + $lib = lib_manager::get_step_lib($step->subpluginname); if ($process->waiting) { $result = $lib->process_waiting_course($process->id, $step->id, $course); } else { -- GitLab