From a5ece5063ae7ef73a7fe1f0e2ff19707d9981975 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 21 Feb 2013 02:20:11 +0100 Subject: [PATCH] Fixing DDC-2306 --- lib/Doctrine/ORM/UnitOfWork.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Doctrine/ORM/UnitOfWork.php b/lib/Doctrine/ORM/UnitOfWork.php index 9848499d9..99fe9fb5f 100644 --- a/lib/Doctrine/ORM/UnitOfWork.php +++ b/lib/Doctrine/ORM/UnitOfWork.php @@ -2475,14 +2475,14 @@ class UnitOfWork implements PropertyChangedListener && isset($hints[Query::HINT_REFRESH_ENTITY]) && ($unmanagedProxy = $hints[Query::HINT_REFRESH_ENTITY]) !== $entity && $unmanagedProxy instanceof Proxy + && (($unmanagedProxyClass = $this->em->getClassMetadata(get_class($unmanagedProxy))) === $class) ) { // DDC-1238 - we have a managed instance, but it isn't the provided one. // Therefore we clear its identifier. Also, we must re-fetch metadata since the // refreshed object may be anything - $class = $this->em->getClassMetadata(get_class($unmanagedProxy)); - foreach ($class->identifier as $fieldName) { - $class->reflFields[$fieldName]->setValue($unmanagedProxy, null); + foreach ($unmanagedProxyClass->identifier as $fieldName) { + $unmanagedProxyClass->reflFields[$fieldName]->setValue($unmanagedProxy, null); } return $unmanagedProxy;