diff --git a/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php b/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php index a137153..8d7f982 100644 --- a/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php +++ b/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php @@ -564,7 +564,9 @@ public function save(EntityInterface $entity) { if ($this->revisionDataTable) { $this->savePropertyData($entity, 'revision_data_table'); } - $entity->setNewRevision(FALSE); + if ($this->revisionTable) { + $entity->setNewRevision(FALSE); + } $this->invokeFieldMethod('update', $entity); $this->saveFieldItems($entity, TRUE); $this->resetCache(array($entity->id())); @@ -591,8 +593,11 @@ public function save(EntityInterface $entity) { $this->savePropertyData($entity, 'revision_data_table'); } - $entity->enforceIsNew(FALSE); + if ($this->revisionTable) { + $entity->setNewRevision(FALSE); + } + $this->invokeFieldMethod('insert', $entity); $this->saveFieldItems($entity, FALSE); // Reset general caches, but keep caches specific to certain entities. @@ -751,7 +756,6 @@ protected function saveRevision(EntityInterface $entity) { // Make sure to update the new revision key for the entity. $entity->{$this->revisionKey}->value = $record->{$this->revisionKey}; - $entity->setNewRevision(FALSE); return $record->{$this->revisionKey}; }