From 31f9abeaa760723a8330a9bdf38827869957d93a Mon Sep 17 00:00:00 2001 From: Rune Kocher Date: Thu, 7 Aug 2025 08:07:11 +0200 Subject: [PATCH 1/2] Catch JSONException for invalid formRuntimeData #523 --- src/Form/Type/DynamicFormType.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Form/Type/DynamicFormType.php b/src/Form/Type/DynamicFormType.php index 9efcaf0e..ec095e7c 100644 --- a/src/Form/Type/DynamicFormType.php +++ b/src/Form/Type/DynamicFormType.php @@ -17,6 +17,7 @@ use FormBuilderBundle\Form\Data\FormData; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\CallbackTransformer; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Extension\Core\Type\HiddenType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormError; @@ -89,7 +90,11 @@ function ($runtimeData) { return is_array($runtimeData) ? json_encode($runtimeData, JSON_THROW_ON_ERROR) : null; }, function ($runtimeData) { - return empty($runtimeData) ? null : json_decode($runtimeData, true, 512, JSON_THROW_ON_ERROR); + try { + return empty($runtimeData) ? null : json_decode($runtimeData, true, 512, JSON_THROW_ON_ERROR); + } catch (\jsonException $e) { + throw new TransformationFailedException('', 0, $e); + } } )); From 6a1b6d8245c65cd87643c0f56bec6e4b9c57530d Mon Sep 17 00:00:00 2001 From: hitsoul11 Date: Thu, 16 Oct 2025 13:47:17 +0200 Subject: [PATCH 2/2] Implement requested code optimizations #523 --- src/Form/Type/DynamicFormType.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Form/Type/DynamicFormType.php b/src/Form/Type/DynamicFormType.php index ec095e7c..60505b00 100644 --- a/src/Form/Type/DynamicFormType.php +++ b/src/Form/Type/DynamicFormType.php @@ -92,8 +92,8 @@ function ($runtimeData) { function ($runtimeData) { try { return empty($runtimeData) ? null : json_decode($runtimeData, true, 512, JSON_THROW_ON_ERROR); - } catch (\jsonException $e) { - throw new TransformationFailedException('', 0, $e); + } catch (\JsonException $exception) { + throw new TransformationFailedException('Invalid runtime data JSON.', $exception->getCode(), $exception); } } ));