Merge pull request #12413 from nextcloud/bugfix/9305/oc_file_locks-unique-constraint
Fix UniqueConstraintViolationException while insert into oc_file_locks
This commit is contained in:
commit
9e1ec0cf46
1 changed files with 12 additions and 1 deletions
|
@ -26,6 +26,7 @@
|
|||
|
||||
namespace OC\Lock;
|
||||
|
||||
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
|
||||
use OC\DB\QueryBuilder\Literal;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
|
@ -133,7 +134,17 @@ class DBLockingProvider extends AbstractLockingProvider {
|
|||
|
||||
protected function initLockField(string $path, int $lock = 0): int {
|
||||
$expire = $this->getExpireTime();
|
||||
return $this->connection->insertIfNotExist('*PREFIX*file_locks', ['key' => $path, 'lock' => $lock, 'ttl' => $expire], ['key']);
|
||||
|
||||
try {
|
||||
$builder = $this->connection->getQueryBuilder();
|
||||
return $builder->insert('file_locks')
|
||||
->setValue('key', $builder->createNamedParameter($path))
|
||||
->setValue('lock', $builder->createNamedParameter($lock))
|
||||
->setValue('ttl', $builder->createNamedParameter($expire))
|
||||
->execute();
|
||||
} catch(UniqueConstraintViolationException $e) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue