From 35ca3085ce7856f30594791207871d88633b259d Mon Sep 17 00:00:00 2001
From: Ere Maijala <ere.maijala@helsinki.fi>
Date: Thu, 5 Jul 2018 15:00:34 +0300
Subject: [PATCH] Guard against circular references when building record
 hierarchy from Solr. (#1213)

---
 module/VuFind/src/VuFind/Hierarchy/TreeDataSource/Solr.php | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/module/VuFind/src/VuFind/Hierarchy/TreeDataSource/Solr.php b/module/VuFind/src/VuFind/Hierarchy/TreeDataSource/Solr.php
index 451fea283bb..1fe4a1277dd 100644
--- a/module/VuFind/src/VuFind/Hierarchy/TreeDataSource/Solr.php
+++ b/module/VuFind/src/VuFind/Hierarchy/TreeDataSource/Solr.php
@@ -195,6 +195,10 @@ class Solr extends AbstractBase
             $parents = isset($current->hierarchy_parent_id)
                 ? $current->hierarchy_parent_id : [];
             foreach ($parents as $parentId) {
+                if ($current->id === $parentId) {
+                    // Ignore circular reference
+                    continue;
+                }
                 if (!isset($map[$parentId])) {
                     $map[$parentId] = [$current];
                 } else {
-- 
GitLab