Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2020-08-31 17:28:35 +0300
committerGitHub <noreply@github.com>2020-08-31 17:28:35 +0300
commit24e522a5d0795ac4301865f1ae1b93be044ada3b (patch)
tree5cf3f7eb8b9695c136e59dc4a90fbf58202c75b7
parentf696311e34907281d77b3f2e7af0421c0490f036 (diff)
parent078da1067199a7df75fe15ac333940f3270cd059 (diff)
Merge pull request #1001 from nextcloud/backport/993/stable19v19.0.3RC1
[stable19] Catch StorageNotAvailable exceptions
-rw-r--r--lib/Controller/WorkspaceController.php5
-rw-r--r--lib/DAV/WorkspacePlugin.php11
-rw-r--r--lib/Service/WorkspaceService.php1
3 files changed, 14 insertions, 3 deletions
diff --git a/lib/Controller/WorkspaceController.php b/lib/Controller/WorkspaceController.php
index 8e9f43685..57d90cd59 100644
--- a/lib/Controller/WorkspaceController.php
+++ b/lib/Controller/WorkspaceController.php
@@ -60,6 +60,7 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
+use OCP\Files\StorageNotAvailableException;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\Share\Exceptions\ShareNotFound;
@@ -132,6 +133,8 @@ class WorkspaceController extends OCSController {
}
} catch (NotFoundException $e) {
return new DataResponse(['message' => 'No valid folder found'], Http::STATUS_BAD_REQUEST);
+ } catch (StorageNotAvailableException $e) {
+ return new DataResponse(['message' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR);
}
}
@@ -165,6 +168,8 @@ class WorkspaceController extends OCSController {
return new DataResponse(['message' => 'No valid folder found'], Http::STATUS_BAD_REQUEST);
} catch (ShareNotFound $e) {
return new DataResponse(['message' => 'No valid folder found'], Http::STATUS_BAD_REQUEST);
+ } catch (StorageNotAvailableException $e) {
+ return new DataResponse(['message' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR);
}
}
diff --git a/lib/DAV/WorkspacePlugin.php b/lib/DAV/WorkspacePlugin.php
index c39b5b364..79a8a393a 100644
--- a/lib/DAV/WorkspacePlugin.php
+++ b/lib/DAV/WorkspacePlugin.php
@@ -31,6 +31,7 @@ use OCA\DAV\Files\FilesHome;
use OCA\Text\AppInfo\Application;
use OCA\Text\Service\WorkspaceService;
use OCP\Files\IRootFolder;
+use OCP\Files\StorageNotAvailableException;
use OCP\IConfig;
use Sabre\DAV\INode;
use Sabre\DAV\PropFind;
@@ -98,9 +99,13 @@ class WorkspacePlugin extends ServerPlugin {
$nodes = $this->rootFolder->getUserFolder($this->userId)->getById($node->getId());
if (count($nodes) > 0) {
/** @var File $file */
- $file = $this->workspaceService->getFile($nodes[0]);
- if ($file instanceof File) {
- return $file->getContent();
+ try {
+ $file = $this->workspaceService->getFile($nodes[0]);
+ if ($file instanceof File) {
+ return $file->getContent();
+ }
+ } catch (StorageNotAvailableException $e) {
+ // If a storage is not available we can for the propfind response assume that there is no rich workspace present
}
}
return '';
diff --git a/lib/Service/WorkspaceService.php b/lib/Service/WorkspaceService.php
index ae5d57f60..b967eeae7 100644
--- a/lib/Service/WorkspaceService.php
+++ b/lib/Service/WorkspaceService.php
@@ -6,6 +6,7 @@ namespace OCA\Text\Service;
use OCP\Files\Folder;
use OCP\Files\NotFoundException;
+use OCP\Files\StorageNotAvailableException;
use OCP\IL10N;
class WorkspaceService {