diff --git a/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php b/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php index 6a7061285..38bbacb4a 100644 --- a/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php +++ b/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php @@ -143,6 +143,9 @@ abstract class AbstractHydrator $this->_rsm = $resultSetMapping; $this->_hints = $hints; + $evm = $this->_em->getEventManager(); + $evm->addEventListener(array(Events::onClear), $this); + $this->prepare(); $result = $this->hydrateAllData(); diff --git a/tests/Doctrine/Tests/ORM/Hydration/AbstractHydratorTest.php b/tests/Doctrine/Tests/ORM/Hydration/AbstractHydratorTest.php index 1cd49d5ca..1d02b6c2b 100644 --- a/tests/Doctrine/Tests/ORM/Hydration/AbstractHydratorTest.php +++ b/tests/Doctrine/Tests/ORM/Hydration/AbstractHydratorTest.php @@ -52,6 +52,17 @@ class AbstractHydratorTest extends OrmFunctionalTestCase ->method('removeEventListener') ->with([Events::onClear], $mockAbstractHydrator); + $mockEventManager + ->expects(self::at(2)) + ->method('addEventListener') + ->with([Events::onClear], $mockAbstractHydrator); + + $mockEventManager + ->expects(self::at(3)) + ->method('removeEventListener') + ->with([Events::onClear], $mockAbstractHydrator); + iterator_to_array($mockAbstractHydrator->iterate($mockStatement, $mockResultMapping)); + $mockAbstractHydrator->hydrateAll($mockStatement, $mockResultMapping); } }