diff options
-rw-r--r-- | core/Controller/TextProcessingApiController.php | 3 | ||||
-rw-r--r-- | lib/private/TextProcessing/Manager.php | 10 | ||||
-rw-r--r-- | lib/public/TextProcessing/Exception/TaskFailureException.php | 7 | ||||
-rw-r--r-- | lib/public/TextProcessing/IManager.php | 5 |
4 files changed, 15 insertions, 10 deletions
diff --git a/core/Controller/TextProcessingApiController.php b/core/Controller/TextProcessingApiController.php index 6b975a7ed61..a6b85fd46ae 100644 --- a/core/Controller/TextProcessingApiController.php +++ b/core/Controller/TextProcessingApiController.php @@ -38,6 +38,7 @@ use OCP\Common\Exception\NotFoundException; use OCP\DB\Exception; use OCP\IL10N; use OCP\IRequest; +use OCP\TextProcessing\Exception\TaskFailureException; use OCP\TextProcessing\ITaskType; use OCP\TextProcessing\Task; use OCP\TextProcessing\IManager; @@ -121,7 +122,7 @@ class TextProcessingApiController extends \OCP\AppFramework\OCSController { try { try { $this->textProcessingManager->runOrScheduleTask($task); - } catch(\RuntimeException) { + } catch(TaskFailureException) { // noop, because the task object has the failure status set already, we just return the task json } diff --git a/lib/private/TextProcessing/Manager.php b/lib/private/TextProcessing/Manager.php index bee70b53a33..439ffde4521 100644 --- a/lib/private/TextProcessing/Manager.php +++ b/lib/private/TextProcessing/Manager.php @@ -28,6 +28,7 @@ namespace OC\TextProcessing; use OC\AppFramework\Bootstrap\Coordinator; use OC\TextProcessing\Db\Task as DbTask; use OCP\IConfig; +use OCP\TextProcessing\Exception\TaskFailureException; use OCP\TextProcessing\IProvider2; use OCP\TextProcessing\Task; use OCP\TextProcessing\Task as OCPTask; @@ -139,22 +140,17 @@ class Manager implements IManager { $task->setStatus(OCPTask::STATUS_SUCCESSFUL); $this->taskMapper->update(DbTask::fromPublicTask($task)); return $output; - } catch (\RuntimeException $e) { - $this->logger->info('LanguageModel call using provider ' . $provider->getName() . ' failed', ['exception' => $e]); - $task->setStatus(OCPTask::STATUS_FAILED); - $this->taskMapper->update(DbTask::fromPublicTask($task)); - throw $e; } catch (\Throwable $e) { $this->logger->info('LanguageModel call using provider ' . $provider->getName() . ' failed', ['exception' => $e]); $task->setStatus(OCPTask::STATUS_FAILED); $this->taskMapper->update(DbTask::fromPublicTask($task)); - throw new RuntimeException('LanguageModel call using provider ' . $provider->getName() . ' failed: ' . $e->getMessage(), 0, $e); + throw new TaskFailureException('LanguageModel call using provider ' . $provider->getName() . ' failed: ' . $e->getMessage(), 0, $e); } } $task->setStatus(OCPTask::STATUS_FAILED); $this->taskMapper->update(DbTask::fromPublicTask($task)); - throw new RuntimeException('Could not run task'); + throw new TaskFailureException('Could not run task'); } /** diff --git a/lib/public/TextProcessing/Exception/TaskFailureException.php b/lib/public/TextProcessing/Exception/TaskFailureException.php new file mode 100644 index 00000000000..5f7b308757b --- /dev/null +++ b/lib/public/TextProcessing/Exception/TaskFailureException.php @@ -0,0 +1,7 @@ +<?php + +namespace OCP\TextProcessing\Exception; + +class TaskFailureException extends \RuntimeException { + +} diff --git a/lib/public/TextProcessing/IManager.php b/lib/public/TextProcessing/IManager.php index aae686e318c..ff1222b094d 100644 --- a/lib/public/TextProcessing/IManager.php +++ b/lib/public/TextProcessing/IManager.php @@ -29,6 +29,7 @@ namespace OCP\TextProcessing; use OCP\Common\Exception\NotFoundException; use OCP\DB\Exception; use OCP\PreConditionNotMetException; +use OCP\TextProcessing\Exception\TaskFailureException; use RuntimeException; /** @@ -57,7 +58,7 @@ interface IManager { /** * @param Task $task The task to run * @throws PreConditionNotMetException If no or not the requested provider was registered but this method was still called - * @throws RuntimeException If something else failed + * @throws TaskFailureException If running the task failed * @since 27.1.0 */ public function runTask(Task $task): string; @@ -82,7 +83,7 @@ interface IManager { * @param Task $task The task to schedule * @returns bool A boolean indicating whether the task was run synchronously (`true`) or offloaded to a background job (`false`) * @throws PreConditionNotMetException If no or not the requested provider was registered but this method was still called - * @throws RuntimeException If running the task failed + * @throws TaskFailureException If running the task failed * @throws Exception storing the task in the database failed * @since 28.0.0 */ |