Details
Description
i have already resolved the bug in Doctrine/Hytrator.php but i don't comit that because i have no access
the recourds now would be updated when State said that record is not complete and not locked
Attached svn_status
Index: Doctrine/Hydrator.php
===================================================================
--- Doctrine/Hydrator.php (revision 6574)
+++ Doctrine/Hydrator.php (working copy)
@@ -232,7 +232,7 @@
$indexExists = isset($identifierMap[$path][$id[$parent]][$id[$dqlAlias]]);
$index = $indexExists ? $identifierMap[$path][$id[$parent]][$id[$dqlAlias]] : false;
$indexIsValid = $index !== false ? isset($prev[$parent][$relationAlias][$index]) : false;
- if ( ! $indexExists || ! $indexIsValid) {
+ if ( ! $indexExists || ! $indexIsValid || !in_array($prev[$parent][$relationAlias][$index]->state(), array(Doctrine_Record::STATE_CLEAN, Doctrine_Record::STATE_TCLEAN, Doctrine_Record::STATE_LOCKED, Doctrine_Record::STATE_TLOCKED))) {
$element = $driver->getElement($data, $componentName);
$event->set('data', $element);
$listeners[$componentName]->postHydrate($event);
@@ -258,7 +258,8 @@
$oneToOne = true;
if ( ! isset($nonemptyComponents[$dqlAlias]) && ! isset($prev[$parent][$relationAlias])) {
$prev[$parent][$relationAlias] = $driver->getNullPointer();
- } else if ( ! isset($prev[$parent][$relationAlias])) {
+ } else if ( ! isset($prev[$parent][$relationAlias]) || !in_array($prev[$parent][$relationAlias]->state(), array(Doctrine_Record::STATE_CLEAN, Doctrine_Record::STATE_TCLEAN, Doctrine_Record::STATE_LOCKED, Doctrine_Record::STATE_TLOCKED))) {
+
$element = $driver->getElement($data, $componentName);
// [FIX] Tickets #1205 and #1237
I want to commit your patch but I don't understand it or understand what is broken without it. Can you show a failing test case for it?