mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Let repair step query exceptions bubble up
And hide the type error caused by a constructor call with missing arguments. `new $repairStep();` only works for the rare case that no arguments are required. Anything else will throw. Then we previously hid the trace of the more important query exception. Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
parent
6d357d0f3a
commit
f68ab00811
1 changed files with 8 additions and 1 deletions
|
|
@ -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,7 +141,13 @@ 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");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue