Merge branch 'hotfix/#1338-identity-map-garbage-collection-prevention-on-canceled-remove-2.4' into 2.4
This commit is contained in:
commit
1c8f9ca1cc
@ -1630,6 +1630,7 @@ class UnitOfWork implements PropertyChangedListener
|
|||||||
case self::STATE_REMOVED:
|
case self::STATE_REMOVED:
|
||||||
// Entity becomes managed again
|
// Entity becomes managed again
|
||||||
unset($this->entityDeletions[$oid]);
|
unset($this->entityDeletions[$oid]);
|
||||||
|
$this->addToIdentityMap($entity);
|
||||||
|
|
||||||
$this->entityStates[$oid] = self::STATE_MANAGED;
|
$this->entityStates[$oid] = self::STATE_MANAGED;
|
||||||
break;
|
break;
|
||||||
|
@ -229,6 +229,25 @@ class UnitOfWorkTest extends \Doctrine\Tests\OrmTestCase
|
|||||||
$this->setExpectedException('InvalidArgumentException');
|
$this->setExpectedException('InvalidArgumentException');
|
||||||
$this->_unitOfWork->lock(null, null, null);
|
$this->_unitOfWork->lock(null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user