diff options
author | Simon L <szaimen@e.mail.de> | 2023-06-12 13:53:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-12 13:53:37 +0200 |
commit | 83faba5e613b4ac8d7fce091e5b545a7a30b1640 (patch) | |
tree | cffed03ba4861a5754dae3ff61bdbf6ef1d5104e /apps | |
parent | e390a3569e97dabb373b3e9729d853a88ac2f723 (diff) | |
parent | b8c61b3515ef406c4feafc851f12262e417ba157 (diff) | |
download | nextcloud-server-83faba5e613b4ac8d7fce091e5b545a7a30b1640.tar.gz nextcloud-server-83faba5e613b4ac8d7fce091e5b545a7a30b1640.zip |
Merge pull request #38591 from nextcloud/fix/caching/avoid-haskey-get
fix(caching): Avoid checking existence before fetching
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_external/lib/Lib/Storage/Swift.php | 5 | ||||
-rw-r--r-- | apps/files_sharing/lib/External/Storage.php | 5 | ||||
-rw-r--r-- | apps/files_sharing/lib/SharedMount.php | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index 85b3727f4db..26e6c5315cb 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -126,9 +126,10 @@ class Swift extends \OC\Files\Storage\Common { * @throws \OCP\Files\StorageNotAvailableException */ private function fetchObject(string $path) { - if ($this->objectCache->hasKey($path)) { + $cached = $this->objectCache->get($path); + if ($cached !== null) { // might be "false" if object did not exist from last check - return $this->objectCache->get($path); + return $cached; } try { $object = $this->getContainer()->getObject($path); diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php index 506a2f83c2d..9e6c169e140 100644 --- a/apps/files_sharing/lib/External/Storage.php +++ b/apps/files_sharing/lib/External/Storage.php @@ -265,8 +265,9 @@ class Storage extends DAV implements ISharedStorage, IDisableEncryptionStorage, private function testRemoteUrl(string $url): bool { $cache = $this->memcacheFactory->createDistributed('files_sharing_remote_url'); - if ($cache->hasKey($url)) { - return (bool)$cache->get($url); + $cached = $cache->get($url); + if ($cached !== null) { + return (bool)$cached; } $client = $this->httpClient->newClient(); diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php index 943f14dc2bd..6cde9f82bec 100644 --- a/apps/files_sharing/lib/SharedMount.php +++ b/apps/files_sharing/lib/SharedMount.php @@ -117,8 +117,9 @@ class SharedMount extends MountPoint implements MoveableMount { $this->eventDispatcher->dispatchTyped($event); $parent = $event->getParent(); - if ($folderExistCache->hasKey($parent)) { - $parentExists = $folderExistCache->get($parent); + $cached = $folderExistCache->get($parent); + if ($cached) { + $parentExists = $cached; } else { $parentExists = $this->recipientView->is_dir($parent); $folderExistCache->set($parent, $parentExists); |