aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Wurst <ChristophWurst@users.noreply.github.com>2021-11-30 12:53:52 +0100
committerGitHub <noreply@github.com>2021-11-30 12:53:52 +0100
commit2c3cf86ad31e20504bea39bad0bf912e946e2c5e (patch)
tree00a6e520e647fd4ef8b28c0bb57651fbcf4a17f0
parentd66e8816bfaa3572a007f6ec1bb98173b5ce042b (diff)
parentf6b5b1f51945ef083b893ac7a81428603381c1b7 (diff)
downloadnextcloud-server-2c3cf86ad31e20504bea39bad0bf912e946e2c5e.tar.gz
nextcloud-server-2c3cf86ad31e20504bea39bad0bf912e946e2c5e.zip
Merge pull request #29974 from nextcloud/fix/repair-step-query-exception-bubble
Let repair step query exceptions bubble up
-rw-r--r--lib/private/Repair.php11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index 688b053fa12..408d0f1b7aa 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -80,6 +80,7 @@ use OCP\Migration\IRepairStep;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
+use Throwable;
class Repair implements IOutput {
@@ -140,9 +141,15 @@ class Repair implements IOutput {
$s = \OC::$server->query($repairStep);
} catch (QueryException $e) {
if (class_exists($repairStep)) {
- $s = new $repairStep();
+ try {
+ // Last resort: hope there are no constructor arguments
+ $s = new $repairStep();
+ } catch (Throwable $inner) {
+ // Well, it was worth a try
+ throw new \Exception("Repair step '$repairStep' can't be instantiated: " . $e->getMessage(), 0, $e);
+ }
} else {
- throw new \Exception("Repair step '$repairStep' is unknown");
+ throw new \Exception("Repair step '$repairStep' is unknown", 0, $e);
}
}