From ae71f80f4a3262e3f12de4c71af1cc388904425d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 27 Nov 2015 14:02:50 +0100 Subject: Skip unavailable storages in scanner --- lib/private/files/utils/scanner.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'lib/private/files/utils') diff --git a/lib/private/files/utils/scanner.php b/lib/private/files/utils/scanner.php index 460c8007bf4..9b3bae0b9aa 100644 --- a/lib/private/files/utils/scanner.php +++ b/lib/private/files/utils/scanner.php @@ -32,6 +32,8 @@ use OC\Files\Filesystem; use OC\ForbiddenException; use OC\Hooks\PublicEmitter; use OC\Lock\DBLockingProvider; +use OCP\Files\StorageNotAvailableException; +use OCP\ILogger; /** * Class Scanner @@ -58,11 +60,18 @@ class Scanner extends PublicEmitter { */ protected $db; + /** + * @var ILogger + */ + protected $logger; + /** * @param string $user * @param \OCP\IDBConnection $db + * @param ILogger $logger */ - public function __construct($user, $db) { + public function __construct($user, $db, ILogger $logger) { + $this->logger = $logger; $this->user = $user; $this->propagator = new ChangePropagator(new View('')); $this->db = $db; @@ -161,7 +170,12 @@ class Scanner extends PublicEmitter { if (!$isDbLocking) { $this->db->beginTransaction(); } - $scanner->scan($relativePath, \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE); + try { + $scanner->scan($relativePath, \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE); + } catch (StorageNotAvailableException $e) { + $this->logger->error('Storage ' . $storage->getId() . ' not available'); + $this->emit('\OC\Files\Utils\Scanner', 'StorageNotAvailable', [$e]); + } if (!$isDbLocking) { $this->db->commit(); } -- cgit v1.2.3