From 02142010084173655296a5bd973910a9cf582579 Mon Sep 17 00:00:00 2001
From: Joas Schilling <coding@schilljs.com>
Date: Fri, 16 Apr 2021 09:07:32 +0200
Subject: [PATCH] Fix constraint violation detection in QB Mapper

Signed-off-by: Joas Schilling <coding@schilljs.com>
---
 lib/public/AppFramework/Db/QBMapper.php | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/public/AppFramework/Db/QBMapper.php b/lib/public/AppFramework/Db/QBMapper.php
index 72373ba26c3..fb5215895a2 100644
--- a/lib/public/AppFramework/Db/QBMapper.php
+++ b/lib/public/AppFramework/Db/QBMapper.php
@@ -30,7 +30,7 @@ declare(strict_types=1);
 
 namespace OCP\AppFramework\Db;
 
-use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
+use OCP\DB\Exception;
 use OCP\DB\QueryBuilder\IQueryBuilder;
 use OCP\IDBConnection;
 
@@ -157,8 +157,11 @@ abstract class QBMapper {
 	public function insertOrUpdate(Entity $entity): Entity {
 		try {
 			return $this->insert($entity);
-		} catch (UniqueConstraintViolationException $ex) {
-			return $this->update($entity);
+		} catch (Exception $ex) {
+			if ($ex->getReason() === Exception::REASON_UNIQUE_CONSTRAINT_VIOLATION) {
+				return $this->update($entity);
+			}
+			throw $ex;
 		}
 	}
 
-- 
GitLab