diff --git a/core/modules/field/field.module b/core/modules/field/field.module index faafebdf521a8d50de1dc68b6fea07f1253afde2..534d0718f125a5e8c59a2075422ff9a107dd4709 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 03532ffbce57c17cee5421d42876a71987f82ef5..ef12736e38f2bc3e1bf5b9968f0eb736295a7dcd 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')); } /**