diff --git a/core/lib/Drupal/Core/Form/FormBuilder.php b/core/lib/Drupal/Core/Form/FormBuilder.php index 6d549ad..377a4e9 100644 --- a/core/lib/Drupal/Core/Form/FormBuilder.php +++ b/core/lib/Drupal/Core/Form/FormBuilder.php @@ -390,7 +390,7 @@ public function setCache($form_build_id, $form, FormStateInterface $form_state) // the one passed in as a parameter. This is an additional safety measure to // prevent legacy code operating directly with form_get_cache and // form_set_cache from accidentally overwriting immutable form state. - if ($form['#build_id'] != $form_build_id) { + if (isset($form['#build_id']) && $form['#build_id'] != $form_build_id) { $this->logger->get('form')->log(WATCHDOG_ERROR, 'Form build-id mismatch detected while attempting to store a form in the cache.', array()); return; } diff --git a/core/modules/system/tests/modules/form_test/form_test.routing.yml b/core/modules/system/tests/modules/form_test/form_test.routing.yml index 70856de..ae2b989 100644 --- a/core/modules/system/tests/modules/form_test/form_test.routing.yml +++ b/core/modules/system/tests/modules/form_test/form_test.routing.yml @@ -429,10 +429,10 @@ form_test.two_instances: form_test.storage_legacy_handler: path: '/form-test/form-storage-legacy/{form_build_id}' defaults: - _content: '\Drupal\form_test\Controller\FormTestController::storageLegacyHandler' + _controller: '\Drupal\form_test\Controller\FormTestController::storageLegacyHandler' form_build_id: NULL requirements: - _permission: 'access content' + _access: 'TRUE' form_test.form_storage_page_cache: path: '/form-test/form-storage-page-cache'