diff options
author | Robin Appelman <robin@icewind.nl> | 2025-04-25 18:35:12 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2025-04-25 18:40:03 +0200 |
commit | bb4cf2830aca984c001542b3cdc2ebc78bba6941 (patch) | |
tree | ae68a2574ea38a2b833be627df600c1f14096681 /apps/files/lib | |
parent | 5f40fad790a16f9613e796728c23f47e80bcb6ee (diff) | |
download | nextcloud-server-scan-locked-error.tar.gz nextcloud-server-scan-locked-error.zip |
fix: better error message when trying to scan a folder that is already being scannedscan-locked-error
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps/files/lib')
-rw-r--r-- | apps/files/lib/Command/Scan.php | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php index 9c57f4b2971..7f45a9ea518 100644 --- a/apps/files/lib/Command/Scan.php +++ b/apps/files/lib/Command/Scan.php @@ -24,6 +24,7 @@ use OCP\Files\NotFoundException; use OCP\Files\StorageNotAvailableException; use OCP\FilesMetadata\IFilesMetadataManager; use OCP\IUserManager; +use OCP\Lock\LockedException; use OCP\Server; use Psr\Log\LoggerInterface; use Symfony\Component\Console\Helper\Table; @@ -165,6 +166,12 @@ class Scan extends Base { } catch (NotFoundException $e) { $output->writeln('<error>Path not found: ' . $e->getMessage() . '</error>'); ++$this->errorsCounter; + } catch (LockedException $e) { + if (str_starts_with($e->getPath(), 'scanner::')) { + $output->writeln('<error>Another process is already scanning \'' . substr($e->getPath(), strlen('scanner::')) . '\'</error>'); + } else { + throw $e; + } } catch (\Exception $e) { $output->writeln('<error>Exception during scan: ' . $e->getMessage() . '</error>'); $output->writeln('<error>' . $e->getTraceAsString() . '</error>'); |