From f381927ec6bca75e9c588725318f6682bf74d103 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Mon, 6 Jul 2009 07:39:36 -0700 Subject: Catch exceptions that are thrown within the task and log them to the task log and then set the task to done, the state to error and the status message set to the Exception Message. --- modules/gallery/helpers/task.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'modules/gallery/helpers/task.php') diff --git a/modules/gallery/helpers/task.php b/modules/gallery/helpers/task.php index 79a7c93b..06568887 100644 --- a/modules/gallery/helpers/task.php +++ b/modules/gallery/helpers/task.php @@ -76,9 +76,17 @@ class task_Core { throw new Exception("@todo MISSING_TASK"); } - $task->state = "running"; - call_user_func_array($task->callback, array(&$task)); - $task->save(); + try { + $task->state = "running"; + call_user_func_array($task->callback, array(&$task)); + $task->save(); + } catch (Exception $e) { + $task->log($e->__toString()); + $task->state = "error"; + $task->done = true; + $task->status = $e->getMessage(); + $task->save(); + } return $task; } -- cgit v1.2.3