Skip to content

Commit

Permalink
Merge pull request #49434 from nextcloud/artonge/fix/getting_cache_entry
Browse files Browse the repository at this point in the history
fix: Wrap partial cache entry in CacheEntry
  • Loading branch information
artonge authored Nov 21, 2024
2 parents 1681283 + f9cda54 commit e6648f3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
4 changes: 2 additions & 2 deletions lib/private/Files/Cache/Cache.php
Original file line number Diff line number Diff line change
Expand Up @@ -249,14 +249,14 @@ public function insert($file, array $data) {
$file = $this->normalize($file);

if (isset($this->partial[$file])) { //add any saved partial data
$data = array_merge($this->partial[$file], $data);
$data = array_merge($this->partial[$file]->getData(), $data);
unset($this->partial[$file]);
}

$requiredFields = ['size', 'mtime', 'mimetype'];
foreach ($requiredFields as $field) {
if (!isset($data[$field])) { //data not complete save as partial and return
$this->partial[$file] = $data;
$this->partial[$file] = new CacheEntry($data);
return -1;
}
}
Expand Down
7 changes: 4 additions & 3 deletions tests/lib/Files/Cache/CacheTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
namespace Test\Files\Cache;

use OC\Files\Cache\Cache;
use OC\Files\Cache\CacheEntry;
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
use OCP\EventDispatcher\IEventDispatcher;
Expand Down Expand Up @@ -127,13 +128,13 @@ public function testPartial(): void {
$file1 = 'foo';

$this->cache->put($file1, ['size' => 10]);
$this->assertEquals(['size' => 10], $this->cache->get($file1));
$this->assertEquals(new CacheEntry(['size' => 10]), $this->cache->get($file1));

$this->cache->put($file1, ['mtime' => 15]);
$this->assertEquals(['size' => 10, 'mtime' => 15], $this->cache->get($file1));
$this->assertEquals(new CacheEntry(['size' => 10, 'mtime' => 15]), $this->cache->get($file1));

$this->cache->put($file1, ['size' => 12]);
$this->assertEquals(['size' => 12, 'mtime' => 15], $this->cache->get($file1));
$this->assertEquals(new CacheEntry(['size' => 12, 'mtime' => 15]), $this->cache->get($file1));
}

/**
Expand Down

0 comments on commit e6648f3

Please sign in to comment.