summaryrefslogtreecommitdiffstats
path: root/lib/private/Files
diff options
context:
space:
mode:
authorLucas Azevedo <lhs_azevedo@hotmail.com>2023-09-04 08:02:35 -0300
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>2023-09-16 19:31:27 +0000
commitcfae699d6e682a57f6ab5dce436ddb3e8bed6ea0 (patch)
treeabda8fd7ad2f8e6950f39aa266febc4fbbca8f39 /lib/private/Files
parentf0a1716bb59b19d7cbc1d497682b9734039d348d (diff)
downloadnextcloud-server-cfae699d6e682a57f6ab5dce436ddb3e8bed6ea0.tar.gz
nextcloud-server-cfae699d6e682a57f6ab5dce436ddb3e8bed6ea0.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;