summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin McCorkell <rmccorkell@owncloud.com>2015-09-11 12:44:53 +0100
committerRobin McCorkell <rmccorkell@owncloud.com>2015-09-11 12:44:53 +0100
commit188d0e09b857e607b57b7686e95bbf0502359c2b (patch)
treedcd1fd2c38a81a7b99050d997092ab557011ce35 /lib
parentb8f7d85570f01a0d1baf3082b0d84b6bafc8ae8c (diff)
downloadnextcloud-server-188d0e09b857e607b57b7686e95bbf0502359c2b.tar.gz
nextcloud-server-188d0e09b857e607b57b7686e95bbf0502359c2b.zip
Add reset method to mimetype loader
Used to solve concurrency issues
Diffstat (limited to 'lib')
-rw-r--r--lib/private/files/cache/scanner.php2
-rw-r--r--lib/private/files/type/loader.php8
-rw-r--r--lib/public/files/imimetypeloader.php7
3 files changed, 16 insertions, 1 deletions
diff --git a/lib/private/files/cache/scanner.php b/lib/private/files/cache/scanner.php
index f76ef5ba0dd..fb60ee5aa53 100644
--- a/lib/private/files/cache/scanner.php
+++ b/lib/private/files/cache/scanner.php
@@ -377,7 +377,7 @@ class Scanner extends BasicEmitter {
// inserted mimetypes but those weren't available yet inside the transaction
// To make sure to have the updated mime types in such cases,
// we reload them here
- $this->cache->loadMimetypes();
+ \OC::$server->getMimeTypeLoader()->reset();
}
foreach ($childQueue as $child => $childData) {
diff --git a/lib/private/files/type/loader.php b/lib/private/files/type/loader.php
index df893306615..78bfcf60bff 100644
--- a/lib/private/files/type/loader.php
+++ b/lib/private/files/type/loader.php
@@ -97,6 +97,14 @@ class Loader implements IMimeTypeLoader {
}
/**
+ * Clear all loaded mimetypes, allow for re-loading
+ */
+ public function reset() {
+ $this->mimetypes = [];
+ $this->mimetypeIds = [];
+ }
+
+ /**
* Store a mimetype in the DB
*
* @param string $mimetype
diff --git a/lib/public/files/imimetypeloader.php b/lib/public/files/imimetypeloader.php
index 24937ea9b86..6d00c4a0b31 100644
--- a/lib/public/files/imimetypeloader.php
+++ b/lib/public/files/imimetypeloader.php
@@ -56,4 +56,11 @@ interface IMimeTypeLoader {
* @since 8.2.0
*/
public function exists($mimetype);
+
+ /**
+ * Clear all loaded mimetypes, allow for re-loading
+ *
+ * @since 8.2.0
+ */
+ public function reset();
}