diff options
-rw-r--r-- | lib/private/connector/sabre/custompropertiesbackend.php | 4 | ||||
-rw-r--r-- | tests/lib/connector/sabre/custompropertiesbackend.php | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/private/connector/sabre/custompropertiesbackend.php b/lib/private/connector/sabre/custompropertiesbackend.php index 6827cb9ae0d..9bd6452674b 100644 --- a/lib/private/connector/sabre/custompropertiesbackend.php +++ b/lib/private/connector/sabre/custompropertiesbackend.php @@ -30,6 +30,7 @@ use Sabre\DAV\PropFind; use Sabre\DAV\PropPatch; use Sabre\DAV\Tree; use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\Exception\ServiceUnavailable; class CustomPropertiesBackend implements BackendInterface { @@ -100,6 +101,9 @@ class CustomPropertiesBackend implements BackendInterface { if (!($node instanceof Node)) { return; } + } catch (ServiceUnavailable $e) { + // might happen for unavailable mount points, skip + return; } catch (NotFound $e) { // in some rare (buggy) cases the node might not be found, // we catch the exception to prevent breaking the whole list with a 404 diff --git a/tests/lib/connector/sabre/custompropertiesbackend.php b/tests/lib/connector/sabre/custompropertiesbackend.php index 8b6d1a90db1..212bece9402 100644 --- a/tests/lib/connector/sabre/custompropertiesbackend.php +++ b/tests/lib/connector/sabre/custompropertiesbackend.php @@ -105,11 +105,16 @@ class CustomPropertiesBackend extends \Test\TestCase { * Test that propFind on a missing file soft fails */ public function testPropFindMissingFileSoftFail() { - $this->tree->expects($this->any()) + $this->tree->expects($this->at(0)) ->method('getNodeForPath') ->with('/dummypath') ->will($this->throwException(new \Sabre\DAV\Exception\NotFound())); + $this->tree->expects($this->at(1)) + ->method('getNodeForPath') + ->with('/dummypath') + ->will($this->throwException(new \Sabre\DAV\Exception\ServiceUnavailable())); + $propFind = new \Sabre\DAV\PropFind( '/dummypath', array( @@ -125,6 +130,11 @@ class CustomPropertiesBackend extends \Test\TestCase { $propFind ); + $this->plugin->propFind( + '/dummypath', + $propFind + ); + // no exception, soft fail $this->assertTrue(true); } |