diff --git a/core/model/Hierarchy.php b/core/model/Hierarchy.php index 8017f3b2e..2ad230a7e 100755 --- a/core/model/Hierarchy.php +++ b/core/model/Hierarchy.php @@ -369,7 +369,10 @@ class Hierarchy extends DataObjectDecorator { continue; } $idList[] = $child->ID; - $child->getExtensionInstance('Hierarchy')->loadDescendantIDListInto($idList); + $ext = $child->getExtensionInstance('Hierarchy'); + $ext->setOwner($child); + $ext->loadDescendantIDListInto($idList); + $ext->clearOwner(); } } } diff --git a/tests/model/HierarchyTest.php b/tests/model/HierarchyTest.php index 304e3bae5..977afaebe 100644 --- a/tests/model/HierarchyTest.php +++ b/tests/model/HierarchyTest.php @@ -101,7 +101,9 @@ class HierarchyTest extends SapphireTest { $this->assertContains($page2a->ID, $page2IdList); $this->assertContains($page2b->ID, $page2IdList); - $this->assertEquals(2, count($page2IdList)); + $this->assertContains($page2aa->ID, $page2IdList); + $this->assertContains($page2ab->ID, $page2IdList); + $this->assertEquals(4, count($page2IdList)); $this->assertContains($page2aa->ID, $page2aIdList); $this->assertContains($page2ab->ID, $page2aIdList);