aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files
diff options
context:
space:
mode:
authorLucas Azevedo <lhs_azevedo@hotmail.com>2023-09-04 08:02:35 -0300
committerLucas Azevedo <lhs_azevedo@hotmail.com>2023-09-04 08:02:35 -0300
commitc587f684bd18b2572249d46cd9ffe45e43f9c98f (patch)
tree54c16a51f8b26ef32ed5107598a15d8e226e78ec /lib/private/Files
parent5de021cb9aed754191072ffd9b81cac39c5b8f86 (diff)
downloadnextcloud-server-c587f684bd18b2572249d46cd9ffe45e43f9c98f.tar.gz
nextcloud-server-c587f684bd18b2572249d46cd9ffe45e43f9c98f.zip
Wrap mimetype insert and getLastInsertId in a transaction
Signed-off-by: Lucas Azevedo <lhs_azevedo@hotmail.com>
Diffstat (limited to 'lib/private/Files')
-rw-r--r--lib/private/Files/Type/Loader.php16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/private/Files/Type/Loader.php b/lib/private/Files/Type/Loader.php
index 7ca1b677fb5..7032e619385 100644
--- a/lib/private/Files/Type/Loader.php
+++ b/lib/private/Files/Type/Loader.php
@@ -117,13 +117,15 @@ class Loader implements IMimeTypeLoader {
*/
protected function store($mimetype) {
try {
- $insert = $this->dbConnection->getQueryBuilder();
- $insert->insert('mimetypes')
- ->values([
- 'mimetype' => $insert->createNamedParameter($mimetype)
- ])
- ->executeStatement();
- $mimetypeId = $insert->getLastInsertId();
+ $mimetypeId = $this->atomic(function () use ($mimetype) {
+ $insert = $this->dbConnection->getQueryBuilder();
+ $insert->insert('mimetypes')
+ ->values([
+ 'mimetype' => $insert->createNamedParameter($mimetype)
+ ])
+ ->executeStatement();
+ return $insert->getLastInsertId();
+ }, $this->dbConnection);
} catch (DbalException $e) {
if ($e->getReason() !== DBException::REASON_UNIQUE_CONSTRAINT_VIOLATION) {
throw $e;