From 65e255676ee95b37e99c81fbcf08ff07c31d9299 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Mon, 4 Mar 2024 10:12:58 +0000 Subject: [PATCH] Issue #3421731 by larowlan, byrond: field_field_config_create should check if the config installer is syncing (cherry picked from commit b32845ead7f6cc0d44ba9acbd2167c473ddc82a4) --- core/modules/field/field.module | 3 +++ .../EntityReference/EntityReferenceItemTest.php | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/core/modules/field/field.module b/core/modules/field/field.module index faafebdf521a..534d0718f125 100644 --- a/core/modules/field/field.module +++ b/core/modules/field/field.module @@ -392,6 +392,9 @@ function field_field_storage_config_update(FieldStorageConfigInterface $field_st * Determine the selection handler plugin ID for an entity reference field. */ function field_field_config_create(FieldConfigInterface $field) { + if ($field->isSyncing()) { + return; + } // Act on all sub-types of the entity_reference field type. /** @var \Drupal\Core\Field\FieldTypePluginManager $field_type_manager */ $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); diff --git a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php index 03532ffbce57..ef12736e38f2 100644 --- a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php +++ b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php @@ -404,6 +404,17 @@ public function testSelectionHandlerSettings() { $field_storage->save(); $field = FieldConfig::load($field->id()); $this->assertEquals('views', $field->getSetting('handler')); + + // Check that selection handlers aren't changed during sync. + $field = FieldConfig::create([ + 'field_storage' => $field_storage, + 'bundle' => 'entity_test', + 'settings' => [ + 'handler' => 'fake:thing', + ], + 'isSyncing' => TRUE, + ]); + $this->assertEquals('fake:thing', $field->getSetting('handler')); } /** -- GitLab