summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/lib/Command/Scan.php19
-rw-r--r--lib/private/Files/Utils/Scanner.php4
2 files changed, 16 insertions, 7 deletions
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index 24b47aca9a4..d81beb0eaf3 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -32,6 +32,7 @@ use Doctrine\DBAL\Connection;
use OC\Core\Command\Base;
use OC\Core\Command\InterruptedException;
use OC\ForbiddenException;
+use OCP\Files\NotFoundException;
use OCP\Files\StorageNotAvailableException;
use OCP\IDBConnection;
use OCP\IUserManager;
@@ -131,7 +132,7 @@ class Scan extends Base {
$scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function (StorageNotAvailableException $e) use ($output) {
$output->writeln("Error while scanning, storage not available (" . $e->getMessage() . ")");
});
- # count only
+ # count only
} else {
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function () use ($output) {
$this->filesCounter += 1;
@@ -146,17 +147,17 @@ class Scan extends Base {
}
});
}
- $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) use ($output) {
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
$this->checkScanWarning($path, $output);
});
- $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) use ($output) {
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
$this->checkScanWarning($path, $output);
});
try {
if ($backgroundScan) {
$scanner->backgroundScan($path);
- }else {
+ } else {
$scanner->scan($path);
}
} catch (ForbiddenException $e) {
@@ -165,6 +166,8 @@ class Scan extends Base {
} catch (InterruptedException $e) {
# exit the function if ctrl-c has been pressed
$output->writeln('Interrupted by user');
+ } catch (NotFoundException $e) {
+ $output->writeln('<error>Path not found: ' . $e->getMessage() . '</error>');
} catch (\Exception $e) {
$output->writeln('<error>Exception during scan: ' . $e->getMessage() . '</error>');
$output->writeln('<error>' . $e->getTraceAsString() . '</error>');
@@ -194,7 +197,7 @@ class Scan extends Base {
$verbose = $input->getOption('verbose');
$quiet = $input->getOption('quiet');
# restrict the verbosity level to VERBOSITY_VERBOSE
- if ($output->getVerbosity()>OutputInterface::VERBOSITY_VERBOSE) {
+ if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
$output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
}
if ($quiet) {
@@ -223,7 +226,9 @@ class Scan extends Base {
$user_count += 1;
if ($this->userManager->userExists($user)) {
# add an extra line when verbose is set to optical separate users
- if ($verbose) {$output->writeln(""); }
+ if ($verbose) {
+ $output->writeln("");
+ }
$output->writeln("Starting scan for user $user_count out of $users_total ($user)");
# full: printout data if $verbose was set
$this->scanFiles($user, $path, $verbose, $output, $input->getOption('unscanned'));
@@ -327,7 +332,7 @@ class Scan extends Base {
* @return \OCP\IDBConnection
*/
protected function reconnectToDatabase(OutputInterface $output) {
- /** @var Connection | IDBConnection $connection*/
+ /** @var Connection | IDBConnection $connection */
$connection = \OC::$server->getDatabaseConnection();
try {
$connection->close();
diff --git a/lib/private/Files/Utils/Scanner.php b/lib/private/Files/Utils/Scanner.php
index e76f3225c3c..f845ac31fe2 100644
--- a/lib/private/Files/Utils/Scanner.php
+++ b/lib/private/Files/Utils/Scanner.php
@@ -32,6 +32,7 @@ use OC\ForbiddenException;
use OC\Hooks\PublicEmitter;
use OC\Lock\DBLockingProvider;
use OCA\Files_Sharing\SharedStorage;
+use OCP\Files\NotFoundException;
use OCP\Files\Storage\IStorage;
use OCP\Files\StorageNotAvailableException;
use OCP\ILogger;
@@ -216,6 +217,9 @@ class Scanner extends PublicEmitter {
try {
$propagator = $storage->getPropagator();
$propagator->beginBatch();
+ if (!$storage->file_exists($relativePath)) {
+ throw new NotFoundException($dir);
+ }
$scanner->scan($relativePath, \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE);
$cache = $storage->getCache();
if ($cache instanceof Cache) {