namespace OC\Lock;
+use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
use OC\DB\QueryBuilder\Literal;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\DB\QueryBuilder\IQueryBuilder;
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;
+ }
}
/**