Call private cache methods only for OC\Files\Cache\Cache
The two implementation detail methods `correctFolderSize` and `calculateFolderSize` should only be called for instances of `OC\Files\Cache\Cache`. This commit adds guarding checks whenever they are called.
This commit is contained in:
parent
63a385d2b8
commit
5a0938ad8e
5 changed files with 34 additions and 10 deletions
2
lib/private/files/cache/scanner.php
vendored
2
lib/private/files/cache/scanner.php
vendored
|
@ -469,7 +469,7 @@ class Scanner extends BasicEmitter implements IScanner {
|
|||
try {
|
||||
$callback();
|
||||
\OC_Hook::emit('Scanner', 'correctFolderSize', array('path' => $path));
|
||||
if ($this->cacheActive) {
|
||||
if ($this->cacheActive && $this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($path);
|
||||
}
|
||||
} catch (\OCP\Files\StorageInvalidException $e) {
|
||||
|
|
16
lib/private/files/cache/updater.php
vendored
16
lib/private/files/cache/updater.php
vendored
|
@ -123,7 +123,9 @@ class Updater implements IUpdater {
|
|||
} else {
|
||||
// scanner didn't provide size info, fallback to full size calculation
|
||||
$sizeDifference = 0;
|
||||
$this->cache->correctFolderSize($path, $data);
|
||||
if ($this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($path, $data);
|
||||
}
|
||||
}
|
||||
$this->correctParentStorageMtime($path);
|
||||
$this->propagator->propagateChange($path, $time, $sizeDifference);
|
||||
|
@ -145,7 +147,9 @@ class Updater implements IUpdater {
|
|||
}
|
||||
|
||||
$this->cache->remove($path);
|
||||
$this->cache->correctFolderSize($parent);
|
||||
if ($this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($parent);
|
||||
}
|
||||
$this->correctParentStorageMtime($path);
|
||||
$this->propagator->propagateChange($path, time());
|
||||
}
|
||||
|
@ -187,8 +191,12 @@ class Updater implements IUpdater {
|
|||
$this->cache->update($fileId, ['mimetype' => $mimeType]);
|
||||
}
|
||||
|
||||
$sourceCache->correctFolderSize($source);
|
||||
$this->cache->correctFolderSize($target);
|
||||
if ($sourceCache instanceof Cache) {
|
||||
$sourceCache->correctFolderSize($source);
|
||||
}
|
||||
if ($this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($target);
|
||||
}
|
||||
if ($sourceUpdater instanceof Updater) {
|
||||
$sourceUpdater->correctParentStorageMtime($source);
|
||||
}
|
||||
|
|
4
lib/private/files/cache/watcher.php
vendored
4
lib/private/files/cache/watcher.php
vendored
|
@ -106,7 +106,9 @@ class Watcher implements IWatcher {
|
|||
if ($cachedData['mimetype'] === 'httpd/unix-directory') {
|
||||
$this->cleanFolder($path);
|
||||
}
|
||||
$this->cache->correctFolderSize($path);
|
||||
if ($this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
12
lib/private/files/cache/wrapper/cachejail.php
vendored
12
lib/private/files/cache/wrapper/cachejail.php
vendored
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
|
||||
namespace OC\Files\Cache\Wrapper;
|
||||
use OC\Files\Cache\Cache;
|
||||
|
||||
/**
|
||||
* Jail to a subdirectory of the wrapped cache
|
||||
|
@ -233,7 +234,9 @@ class CacheJail extends CacheWrapper {
|
|||
* @param array $data (optional) meta data of the folder
|
||||
*/
|
||||
public function correctFolderSize($path, $data = null) {
|
||||
$this->cache->correctFolderSize($this->getSourcePath($path), $data);
|
||||
if ($this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($this->getSourcePath($path), $data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -244,7 +247,12 @@ class CacheJail extends CacheWrapper {
|
|||
* @return int
|
||||
*/
|
||||
public function calculateFolderSize($path, $entry = null) {
|
||||
return $this->cache->calculateFolderSize($this->getSourcePath($path), $entry);
|
||||
if ($this->cache instanceof Cache) {
|
||||
return $this->cache->calculateFolderSize($this->getSourcePath($path), $entry);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
10
lib/private/files/cache/wrapper/cachewrapper.php
vendored
10
lib/private/files/cache/wrapper/cachewrapper.php
vendored
|
@ -240,7 +240,9 @@ class CacheWrapper extends Cache {
|
|||
* @param array $data (optional) meta data of the folder
|
||||
*/
|
||||
public function correctFolderSize($path, $data = null) {
|
||||
$this->cache->correctFolderSize($path, $data);
|
||||
if ($this->cache instanceof Cache) {
|
||||
$this->cache->correctFolderSize($path, $data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -251,7 +253,11 @@ class CacheWrapper extends Cache {
|
|||
* @return int
|
||||
*/
|
||||
public function calculateFolderSize($path, $entry = null) {
|
||||
return $this->cache->calculateFolderSize($path, $entry);
|
||||
if ($this->cache instanceof Cache) {
|
||||
return $this->cache->calculateFolderSize($path, $entry);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue