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

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorRichard Steinmetz <richard@steinmetz.cloud>2021-09-14 12:15:26 +0300
committerRichard Steinmetz <richard@steinmetz.cloud>2021-09-14 16:10:44 +0300
commit8bd8e9718181aedfd2da9ebded1baea66d97f8f4 (patch)
treef3bacd0b5b5f56c06f133951d42a59d6df9ff956 /apps
parenta994ef0c4fae63b40cc0bb4ace2766b75a22ff0b (diff)
Do not cache file ids in FileSystemTags inside group folders
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Diffstat (limited to 'apps')
-rw-r--r--apps/workflowengine/lib/Check/FileSystemTags.php12
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php
index b69f7492e02..a879a8e1703 100644
--- a/apps/workflowengine/lib/Check/FileSystemTags.php
+++ b/apps/workflowengine/lib/Check/FileSystemTags.php
@@ -6,6 +6,7 @@
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Joas Schilling <coding@schilljs.com>
* @author Julius Härtl <jus@bitgrid.net>
+ * @author Richard Steinmetz <richard@steinmetz.cloud>
*
* @license GNU AGPL version 3 or any later version
*
@@ -131,8 +132,13 @@ class FileSystemTags implements ICheck, IFileCheck {
* @return int[]
*/
protected function getFileIds(ICache $cache, $path, $isExternalStorage) {
+ // TODO: Fix caching inside group folders
+ // Do not cache file ids inside group folders because multiple file ids might be mapped to
+ // the same combination of cache id + path.
+ $shouldCacheFileIds = !$this->storage
+ ->instanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class);
$cacheId = $cache->getNumericStorageId();
- if (isset($this->fileIds[$cacheId][$path])) {
+ if ($shouldCacheFileIds && isset($this->fileIds[$cacheId][$path])) {
return $this->fileIds[$cacheId][$path];
}
@@ -148,7 +154,9 @@ class FileSystemTags implements ICheck, IFileCheck {
$parentIds[] = $cache->getId($path);
}
- $this->fileIds[$cacheId][$path] = $parentIds;
+ if ($shouldCacheFileIds) {
+ $this->fileIds[$cacheId][$path] = $parentIds;
+ }
return $parentIds;
}