aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2015-06-16 14:37:41 +0200
committerRobin Appelman <icewind@owncloud.com>2015-06-17 14:13:10 +0200
commit24f0151f812568f63584fbece5a8c50947b51dcd (patch)
tree3b5740e903656870890956bbe24321dc4a1fb19a /lib
parenta89bb1d3839b80f8846b0ed9e462a42065d4ad9f (diff)
downloadnextcloud-server-24f0151f812568f63584fbece5a8c50947b51dcd.tar.gz
nextcloud-server-24f0151f812568f63584fbece5a8c50947b51dcd.zip
handle locked exceptions when getting file/directory info in sabre
Diffstat (limited to 'lib')
-rw-r--r--lib/private/connector/sabre/directory.php7
-rw-r--r--lib/private/connector/sabre/objecttree.php2
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();
}
}