diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/ContentEntity.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/ContentEntity.php index 77e4824..cb8d7e6 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/source/ContentEntity.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/ContentEntity.php @@ -7,6 +7,7 @@ use Drupal\Core\Entity\ContentEntityTypeInterface; use Drupal\Core\Entity\EntityFieldManagerInterface; use Drupal\Core\Entity\EntityTypeManagerInterface; +use Drupal\Core\Entity\FieldableEntityInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\migrate\Plugin\migrate\source\SourcePluginBase; use Drupal\migrate\Plugin\MigrationInterface; @@ -224,6 +225,11 @@ protected function doCount() { * {@inheritdoc} */ public function fields() { + // Retrieving fields from a non-fieldable content entity will return a + // LogicException. Return an empty list of fields instead. + if (!$this->entityType->entityClassImplements(FieldableEntityInterface::class)) { + return []; + } $field_definitions = $this->entityFieldManager->getBaseFieldDefinitions($this->entityType->id()); if (!empty($this->configuration['bundle'])) { $field_definitions += $this->entityFieldManager->getFieldDefinitions($this->entityType->id(), $this->configuration['bundle']);