diff --git a/lib/Doctrine/ORM/UnitOfWork.php b/lib/Doctrine/ORM/UnitOfWork.php index 49b3fcd349e..bf821cb6885 100644 --- a/lib/Doctrine/ORM/UnitOfWork.php +++ b/lib/Doctrine/ORM/UnitOfWork.php @@ -390,7 +390,7 @@ private function computeScheduleInsertsChangeSets() */ private function computeSingleEntityChangeSet($entity) { - if ( ! $this->isInIdentityMap($entity) ) { + if ( $this->getEntityState($entity) !== self::STATE_MANAGED) { throw new \InvalidArgumentException("Entity has to be managed for single computation " . self::objToStr($entity)); } diff --git a/tests/Doctrine/Tests/ORM/Functional/BasicFunctionalTest.php b/tests/Doctrine/Tests/ORM/Functional/BasicFunctionalTest.php index 3955387e001..695e10c559f 100644 --- a/tests/Doctrine/Tests/ORM/Functional/BasicFunctionalTest.php +++ b/tests/Doctrine/Tests/ORM/Functional/BasicFunctionalTest.php @@ -1141,6 +1141,21 @@ public function testFlushSingleAndNoCascade() $this->_em->flush($user); } + /** + * @group DDC-720 + * @group DDC-1612 + */ + public function testFlushSingleNewEntity() + { + $user = new CmsUser; + $user->name = 'Dominik'; + $user->username = 'domnikl'; + $user->status = 'developer'; + + $this->_em->persist($user); + $this->_em->flush($user); + } + /** * @group DDC-720 */