diff --git a/lib/private/connector/sabre/directory.php b/lib/private/connector/sabre/directory.php index 85756f112e757caceb381124e7ad4fb44f2a7538..e99411068f18c160f302d12bda9dd43a587a55d5 100644 --- a/lib/private/connector/sabre/directory.php +++ b/lib/private/connector/sabre/directory.php @@ -30,6 +30,7 @@ namespace OC\Connector\Sabre; use OC\Connector\Sabre\Exception\InvalidPath; use OC\Connector\Sabre\Exception\FileLocked; use OCP\Lock\LockedException; +use Sabre\DAV\Exception\Locked; class Directory extends \OC\Connector\Sabre\Node implements \Sabre\DAV\ICollection, \Sabre\DAV\IQuota { @@ -191,7 +192,11 @@ class Directory extends \OC\Connector\Sabre\Node if (!is_null($this->dirContent)) { return $this->dirContent; } - $folderContent = $this->fileView->getDirectoryContent($this->path); + try { + $folderContent = $this->fileView->getDirectoryContent($this->path); + } catch (LockedException $e) { + throw new Locked(); + } $nodes = array(); foreach ($folderContent as $info) { diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php index c96a745fcd43dcd8f3a5e65ea1379162d776a249..1e9b9ba59e2548d1ca0187c3f965962ed758f153 100644 --- a/lib/private/connector/sabre/objecttree.php +++ b/lib/private/connector/sabre/objecttree.php @@ -150,6 +150,8 @@ class ObjectTree extends \Sabre\DAV\Tree { throw new \Sabre\DAV\Exception\ServiceUnavailable('Storage not available'); } catch (StorageInvalidException $e) { throw new \Sabre\DAV\Exception\NotFound('Storage ' . $path . ' is invalid'); + } catch (LockedException $e) { + throw new \Sabre\DAV\Exception\Locked(); } }