Merge pull request #24248 from owncloud/d--j-master

D  j master
This commit is contained in:
Thomas Müller 2016-04-25 14:53:37 +02:00
commit 9e40b647f3
5 changed files with 34 additions and 10 deletions

View File

@ -480,7 +480,7 @@ class Scanner extends BasicEmitter implements IScanner {
try { try {
$callback(); $callback();
\OC_Hook::emit('Scanner', 'correctFolderSize', array('path' => $path)); \OC_Hook::emit('Scanner', 'correctFolderSize', array('path' => $path));
if ($this->cacheActive) { if ($this->cacheActive && $this->cache instanceof Cache) {
$this->cache->correctFolderSize($path); $this->cache->correctFolderSize($path);
} }
} catch (\OCP\Files\StorageInvalidException $e) { } catch (\OCP\Files\StorageInvalidException $e) {

View File

@ -126,7 +126,9 @@ class Updater implements IUpdater {
} else { } else {
// scanner didn't provide size info, fallback to full size calculation // scanner didn't provide size info, fallback to full size calculation
$sizeDifference = 0; $sizeDifference = 0;
$this->cache->correctFolderSize($path, $data); if ($this->cache instanceof Cache) {
$this->cache->correctFolderSize($path, $data);
}
} }
$this->correctParentStorageMtime($path); $this->correctParentStorageMtime($path);
$this->propagator->propagateChange($path, $time, $sizeDifference); $this->propagator->propagateChange($path, $time, $sizeDifference);
@ -148,7 +150,9 @@ class Updater implements IUpdater {
} }
$this->cache->remove($path); $this->cache->remove($path);
$this->cache->correctFolderSize($parent); if ($this->cache instanceof Cache) {
$this->cache->correctFolderSize($parent);
}
$this->correctParentStorageMtime($path); $this->correctParentStorageMtime($path);
$this->propagator->propagateChange($path, time()); $this->propagator->propagateChange($path, time());
} }
@ -190,8 +194,12 @@ class Updater implements IUpdater {
$this->cache->update($fileId, ['mimetype' => $mimeType]); $this->cache->update($fileId, ['mimetype' => $mimeType]);
} }
$sourceCache->correctFolderSize($source); if ($sourceCache instanceof Cache) {
$this->cache->correctFolderSize($target); $sourceCache->correctFolderSize($source);
}
if ($this->cache instanceof Cache) {
$this->cache->correctFolderSize($target);
}
if ($sourceUpdater instanceof Updater) { if ($sourceUpdater instanceof Updater) {
$sourceUpdater->correctParentStorageMtime($source); $sourceUpdater->correctParentStorageMtime($source);
} }

View File

@ -106,7 +106,9 @@ class Watcher implements IWatcher {
if ($cachedData['mimetype'] === 'httpd/unix-directory') { if ($cachedData['mimetype'] === 'httpd/unix-directory') {
$this->cleanFolder($path); $this->cleanFolder($path);
} }
$this->cache->correctFolderSize($path); if ($this->cache instanceof Cache) {
$this->cache->correctFolderSize($path);
}
} }
/** /**

View File

@ -23,6 +23,7 @@
*/ */
namespace OC\Files\Cache\Wrapper; namespace OC\Files\Cache\Wrapper;
use OC\Files\Cache\Cache;
/** /**
* Jail to a subdirectory of the wrapped 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 * @param array $data (optional) meta data of the folder
*/ */
public function correctFolderSize($path, $data = null) { 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 * @return int
*/ */
public function calculateFolderSize($path, $entry = null) { 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;
}
} }
/** /**

View File

@ -240,7 +240,9 @@ class CacheWrapper extends Cache {
* @param array $data (optional) meta data of the folder * @param array $data (optional) meta data of the folder
*/ */
public function correctFolderSize($path, $data = null) { 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 * @return int
*/ */
public function calculateFolderSize($path, $entry = null) { 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;
}
} }
/** /**