diff options
-rw-r--r-- | lib/private/connector/sabre/directory.php | 7 | ||||
-rw-r--r-- | lib/private/connector/sabre/objecttree.php | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/private/connector/sabre/directory.php b/lib/private/connector/sabre/directory.php index 85756f112e7..e99411068f1 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 c96a745fcd4..1e9b9ba59e2 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(); } } |