diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index cee84b9c8c6b0..5aee32c378745 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -62,7 +62,7 @@ class Cache implements ICache { */ protected array $partial = []; protected string $storageId; - protected Storage $storageCache; + protected ?Storage $storageCache = null; protected IMimeTypeLoader $mimetypeLoader; protected IDBConnection $connection; protected SystemConfig $systemConfig; @@ -70,6 +70,7 @@ class Cache implements ICache { protected QuerySearchHelper $querySearchHelper; protected IEventDispatcher $eventDispatcher; protected IFilesMetadataManager $metadataManager; + private CacheDependencies $cacheDependencies; public function __construct( private IStorage $storage, @@ -84,7 +85,7 @@ public function __construct( if (!$dependencies) { $dependencies = Server::get(CacheDependencies::class); } - $this->storageCache = new Storage($this->storage, true, $dependencies->getConnection()); + $this->cacheDependencies = $dependencies; $this->mimetypeLoader = $dependencies->getMimeTypeLoader(); $this->connection = $dependencies->getConnection(); $this->systemConfig = $dependencies->getSystemConfig(); @@ -102,6 +103,9 @@ protected function getQueryBuilder() { } public function getStorageCache(): Storage { + if (!$this->storageCache) { + $this->storageCache = new Storage($this->storage, true, $this->cacheDependencies->getConnection()); + } return $this->storageCache; } @@ -112,7 +116,7 @@ public function getStorageCache(): Storage { */ #[\Override] public function getNumericStorageId() { - return $this->storageCache->getNumericId(); + return $this->getStorageCache()->getNumericId(); } /**