| Q | A
|------------ | ------
| BC Break | no
| Version | 2.6.4
DBAL have been recently updated. It's now 2.10 (https://github.com/doctrine/dbal/pull/3588).
It fix issue with the commit() method. But it's not handled in ORM.
If commit() fails without exception (commit() return false but no exception), there is no information about that.
Throw an exception if commit() fails and return false.
@Hamael18 thanks. This seems to be an easy thing to solve and to isolate in a unit test.
Planning it for the next patch milestone :+1:
@lcobucci Unfortunately this needs to be moved to 2.7, since it requires a bump in the doctrine/dbal version from ^2.6 to ^2.10 and we're not able to do this on a patch level release.
I'm moving this to 2.7, which can tolerate dependency bumps like the required one here, and we can work on a quick/simple patch after we have 2.6.5 out of the door.
if (!$conn->commit()) {
throw new OptimisticLockException('Commit failed', $entity);
}
} catch (Throwable $e) {
$this->em->close();
if ($conn->isTransactionActive()) {
$conn->rollBack();
}
Small proposal for UnitOfWork::commit()
I'll not have time to made a PR with unit tests, but hope this will help someone else for a better proposal
@chosroes thanks!
I'm moving this to version 2.8.0 because DBAL requires PHP 7.2+ and we'll release 2.7.0 still supporting PHP 7.1+.
Looks like this should have been closed by 1da002ca2f84d9d5da11b4c60e24d957cb8f6c16?
Yes, fixed by https://github.com/doctrine/orm/pull/7946
Most helpful comment
Small proposal for UnitOfWork::commit()
I'll not have time to made a PR with unit tests, but hope this will help someone else for a better proposal