From 22c9f6ebec3dbfe7395760da824ab50cce0f2a7d Mon Sep 17 00:00:00 2001 From: Marco Pivetta <ocramius@gmail.com> Date: Thu, 9 May 2013 21:14:58 +0200 Subject: [PATCH] applying required fixes for DDC-2432 --- lib/Doctrine/ORM/Proxy/ProxyFactory.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/Doctrine/ORM/Proxy/ProxyFactory.php b/lib/Doctrine/ORM/Proxy/ProxyFactory.php index c8964804e..dfac9a3e7 100644 --- a/lib/Doctrine/ORM/Proxy/ProxyFactory.php +++ b/lib/Doctrine/ORM/Proxy/ProxyFactory.php @@ -117,6 +117,9 @@ class ProxyFactory extends AbstractProxyFactory { if ($classMetadata->getReflectionClass()->hasMethod('__wakeup')) { return function (BaseProxy $proxy) use ($entityPersister, $classMetadata) { + $initializer = $proxy->__getInitializer(); + $cloner = $proxy->__getCloner(); + $proxy->__setInitializer(null); $proxy->__setCloner(null); @@ -136,12 +139,19 @@ class ProxyFactory extends AbstractProxyFactory $proxy->__wakeup(); if (null === $entityPersister->load($classMetadata->getIdentifierValues($proxy), $proxy)) { + $proxy->__setInitializer($initializer); + $proxy->__setCloner($cloner); + $proxy->__setInitialized(false); + throw new EntityNotFoundException(); } }; } return function (BaseProxy $proxy) use ($entityPersister, $classMetadata) { + $initializer = $proxy->__getInitializer(); + $cloner = $proxy->__getCloner(); + $proxy->__setInitializer(null); $proxy->__setCloner(null); @@ -160,6 +170,10 @@ class ProxyFactory extends AbstractProxyFactory $proxy->__setInitialized(true); if (null === $entityPersister->load($classMetadata->getIdentifierValues($proxy), $proxy)) { + $proxy->__setInitializer($initializer); + $proxy->__setCloner($cloner); + $proxy->__setInitialized(false); + throw new EntityNotFoundException(); } };