1
0
mirror of synced 2024-12-05 03:06:05 +03:00

Merge branch 'hotfix/#1338-identity-map-garbage-collection-prevention-on-canceled-remove'

Close #1338
This commit is contained in:
Marco Pivetta 2015-03-17 22:38:19 +00:00
commit ce41e35c1f
2 changed files with 20 additions and 0 deletions

View File

@ -1684,6 +1684,7 @@ class UnitOfWork implements PropertyChangedListener
case self::STATE_REMOVED:
// Entity becomes managed again
unset($this->entityDeletions[$oid]);
$this->addToIdentityMap($entity);
$this->entityStates[$oid] = self::STATE_MANAGED;
break;

View File

@ -302,6 +302,25 @@ class UnitOfWorkTest extends \Doctrine\Tests\OrmTestCase
$this->_unitOfWork->computeChangeSet($metadata, $user);
}
/**
* @group DDC-3619
* @group 1338
*/
public function testRemovedAndRePersistedEntitiesAreInTheIdentityMapAndAreNotGarbageCollected()
{
$entity = new ForumUser();
$entity->id = 123;
$this->_unitOfWork->registerManaged($entity, array('id' => 123), array());
$this->assertTrue($this->_unitOfWork->isInIdentityMap($entity));
$this->_unitOfWork->remove($entity);
$this->assertFalse($this->_unitOfWork->isInIdentityMap($entity));
$this->_unitOfWork->persist($entity);
$this->assertTrue($this->_unitOfWork->isInIdentityMap($entity));
}
/**
* Data Provider
*