From dced1505c36f24c2bfef7fac8f10bfa227e8b4f3 Mon Sep 17 00:00:00 2001 From: mhsdesign <85400359+mhsdesign@users.noreply.github.com> Date: Mon, 12 Feb 2024 19:44:02 +0100 Subject: [PATCH] BUGFIX: `LazyReference` cause odd error when private prop can be evaluated instead of the original error that something went wrong > Circular reference detected while evaluating prop: "private.thepath" is shown. That happens because the locking didnt anticipate this case. --- .../Classes/FusionObjects/Helpers/LazyReference.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Neos.Fusion/Classes/FusionObjects/Helpers/LazyReference.php b/Neos.Fusion/Classes/FusionObjects/Helpers/LazyReference.php index 559357b6f10..01b2d1132be 100644 --- a/Neos.Fusion/Classes/FusionObjects/Helpers/LazyReference.php +++ b/Neos.Fusion/Classes/FusionObjects/Helpers/LazyReference.php @@ -42,8 +42,11 @@ public function deref(): mixed } $this->isLocked = true; - $this->value = ($this->calculateValueCallback)(); - $this->hasBeenDereferenced = true; + try { + $this->value = ($this->calculateValueCallback)(); + } finally { + $this->hasBeenDereferenced = true; + } return $this->value; }