 core/modules/datetime/src/DateTimeComputed.php                    | 7 ++-----
 core/modules/hal/src/Normalizer/FieldItemNormalizer.php           | 4 +++-
 core/modules/serialization/src/Normalizer/FieldItemNormalizer.php | 4 +++-
 core/modules/text/src/TextProcessed.php                           | 7 ++-----
 4 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/core/modules/datetime/src/DateTimeComputed.php b/core/modules/datetime/src/DateTimeComputed.php
index 2208ab7..32114bf 100644
--- a/core/modules/datetime/src/DateTimeComputed.php
+++ b/core/modules/datetime/src/DateTimeComputed.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\datetime;
 
+use Drupal\Core\TypedData\Exception\ReadOnlyException;
 use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
 use Drupal\Core\Datetime\DrupalDateTime;
 use Drupal\Core\TypedData\DataDefinitionInterface;
@@ -74,11 +75,7 @@ public function getValue($langcode = NULL) {
    * {@inheritdoc}
    */
   public function setValue($value, $notify = TRUE) {
-    $this->date = $value;
-    // Notify the parent of any changes.
-    if ($notify && isset($this->parent)) {
-      $this->parent->onChange($this->name);
-    }
+    throw new ReadOnlyException();
   }
 
 }
diff --git a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php
index 6d10b06..ded817d 100644
--- a/core/modules/hal/src/Normalizer/FieldItemNormalizer.php
+++ b/core/modules/hal/src/Normalizer/FieldItemNormalizer.php
@@ -55,7 +55,9 @@ public function denormalize($data, $class, $format = NULL, array $context = [])
       }
     }
 
-    $field_item->setValue($this->constructValue($data, $context));
+    $value = $this->constructValue($data, $context);
+    $value = array_intersect_key($value, $field_item->getProperties(FALSE));
+    $field_item->setValue($value);
     return $field_item;
   }
 
diff --git a/core/modules/serialization/src/Normalizer/FieldItemNormalizer.php b/core/modules/serialization/src/Normalizer/FieldItemNormalizer.php
index decca43..992908a 100644
--- a/core/modules/serialization/src/Normalizer/FieldItemNormalizer.php
+++ b/core/modules/serialization/src/Normalizer/FieldItemNormalizer.php
@@ -31,7 +31,9 @@ public function denormalize($data, $class, $format = NULL, array $context = [])
     /** @var \Drupal\Core\Field\FieldItemInterface $field_item */
     $field_item = $context['target_instance'];
 
-    $field_item->setValue($this->constructValue($data, $context));
+    $value = $this->constructValue($data, $context);
+    $value = array_intersect_key($value, $field_item->getProperties(FALSE));
+    $field_item->setValue($value);
     return $field_item;
   }
 
diff --git a/core/modules/text/src/TextProcessed.php b/core/modules/text/src/TextProcessed.php
index a1b5a97..0426e2b 100644
--- a/core/modules/text/src/TextProcessed.php
+++ b/core/modules/text/src/TextProcessed.php
@@ -5,6 +5,7 @@
 use Drupal\Core\Cache\CacheableDependencyInterface;
 use Drupal\Core\TypedData\ComputedPropertyTrait;
 use Drupal\Core\TypedData\DataDefinitionInterface;
+use Drupal\Core\TypedData\Exception\ReadOnlyException;
 use Drupal\Core\TypedData\TypedDataInterface;
 use Drupal\Core\TypedData\TypedData;
 use Drupal\filter\FilterProcessResult;
@@ -77,11 +78,7 @@ protected function computeValue() {
    * {@inheritdoc}
    */
   public function setValue($value, $notify = TRUE) {
-    $this->processed = $value;
-    // Notify the parent of any changes.
-    if ($notify && isset($this->parent)) {
-      $this->parent->onChange($this->name);
-    }
+    throw new ReadOnlyException();
   }
 
   /**
