diff options
author | Robin Appelman <robin@icewind.nl> | 2019-06-21 17:14:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-21 17:14:27 +0200 |
commit | 1ad95caf24870dfb6d5cf36fa5822046522559ac (patch) | |
tree | de6b2fd7b0e473cb31e61b3639a3c7e1d87a9e92 | |
parent | 9d121985dc2980ca9c3b4a69d807926d2424757d (diff) | |
parent | 000898d932abd60ef1ae9f2167c437864f19087a (diff) | |
download | nextcloud-server-1ad95caf24870dfb6d5cf36fa5822046522559ac.tar.gz nextcloud-server-1ad95caf24870dfb6d5cf36fa5822046522559ac.zip |
Merge pull request #15889 from nextcloud/touch-handle-backend-exceptions
handle storage exceptions when trying to set mtime
-rw-r--r-- | lib/private/Files/View.php | 7 | ||||
-rw-r--r-- | tests/lib/Files/ViewTest.php | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index fef6153fb9a..2516b782ee7 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -566,7 +566,12 @@ class View { $hooks[] = 'create'; $hooks[] = 'write'; } - $result = $this->basicOperation('touch', $path, $hooks, $mtime); + try { + $result = $this->basicOperation('touch', $path, $hooks, $mtime); + } catch (\Exception $e) { + $this->logger->logException($e, ['level' => ILogger::INFO, 'message' => 'Error while setting modified time']); + $result = false; + } if (!$result) { // If create file fails because of permissions on external storage like SMB folders, // check file exists and return false if not. diff --git a/tests/lib/Files/ViewTest.php b/tests/lib/Files/ViewTest.php index 7a32736adb3..4697dbe89d8 100644 --- a/tests/lib/Files/ViewTest.php +++ b/tests/lib/Files/ViewTest.php @@ -1962,6 +1962,9 @@ class ViewTest extends \Test\TestCase { $operationArgs, $path ) { + if ($operation === 'touch') { + $this->markTestSkipped("touch handles storage exceptions internally"); + } $view = new View('/' . $this->user . '/files/'); /** @var Temporary|\PHPUnit_Framework_MockObject_MockObject $storage */ |