]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix(TaskProcessing): Don't break if provider methods throw 46872/head
authorMarcel Klehr <mklehr@gmx.net>
Tue, 30 Jul 2024 11:25:39 +0000 (13:25 +0200)
committerMarcel Klehr <mklehr@gmx.net>
Tue, 30 Jul 2024 11:25:39 +0000 (13:25 +0200)
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
lib/private/TaskProcessing/Manager.php

index cb1e4e1e04136df059bb6e252f66bf4632eb23ea..dbb85e5063786dfeccd1377b2b5a01e875dc67c2 100644 (file)
@@ -678,20 +678,24 @@ class Manager implements IManager {
                                        continue;
                                }
                                $taskType = $taskTypes[$provider->getTaskTypeId()];
-                               $availableTaskTypes[$provider->getTaskTypeId()] = [
-                                       'name' => $taskType->getName(),
-                                       'description' => $taskType->getDescription(),
-                                       'optionalInputShape' => $provider->getOptionalInputShape(),
-                                       'inputShapeEnumValues' => $provider->getInputShapeEnumValues(),
-                                       'inputShapeDefaults' => $provider->getInputShapeDefaults(),
-                                       'inputShape' => $taskType->getInputShape(),
-                                       'optionalInputShapeEnumValues' => $provider->getOptionalInputShapeEnumValues(),
-                                       'optionalInputShapeDefaults' => $provider->getOptionalInputShapeDefaults(),
-                                       'outputShape' => $taskType->getOutputShape(),
-                                       'outputShapeEnumValues' => $provider->getOutputShapeEnumValues(),
-                                       'optionalOutputShape' => $provider->getOptionalOutputShape(),
-                                       'optionalOutputShapeEnumValues' => $provider->getOptionalOutputShapeEnumValues(),
-                               ];
+                               try {
+                                       $availableTaskTypes[$provider->getTaskTypeId()] = [
+                                               'name' => $taskType->getName(),
+                                               'description' => $taskType->getDescription(),
+                                               'optionalInputShape' => $provider->getOptionalInputShape(),
+                                               'inputShapeEnumValues' => $provider->getInputShapeEnumValues(),
+                                               'inputShapeDefaults' => $provider->getInputShapeDefaults(),
+                                               'inputShape' => $taskType->getInputShape(),
+                                               'optionalInputShapeEnumValues' => $provider->getOptionalInputShapeEnumValues(),
+                                               'optionalInputShapeDefaults' => $provider->getOptionalInputShapeDefaults(),
+                                               'outputShape' => $taskType->getOutputShape(),
+                                               'outputShapeEnumValues' => $provider->getOutputShapeEnumValues(),
+                                               'optionalOutputShape' => $provider->getOptionalOutputShape(),
+                                               'optionalOutputShapeEnumValues' => $provider->getOptionalOutputShapeEnumValues(),
+                                       ];
+                               } catch (\Throwable $e) {
+                                       $this->logger->error('Failed to set up TaskProcessing provider ' . $provider::class, ['exception' => $e]);
+                               }
                        }
 
                        $this->availableTaskTypes = $availableTaskTypes;