/**
  * {@inheritdoc}
  */
 public function save(EntityInterface $entity)
 {
     $id = $entity->id();
     if ($id === NULL || $id === '') {
         throw new EntityMalformedException('The entity does not have an ID.');
     }
     // Check the entity ID length.
     // @todo This is not config-specific, but serial IDs will likely never hit
     //   this limit. Consider renaming the exception class.
     if (strlen($entity->id()) > static::MAX_ID_LENGTH) {
         throw new ConfigEntityIdLengthException("Entity ID {$entity->id()} exceeds maximum allowed length of " . static::MAX_ID_LENGTH . ' characters.');
     }
     return parent::save($entity);
 }
 /**
  * Implements Drupal\Core\Entity\EntityStorageInterface::save().
  *
  * @throws EntityMalformedException
  *   When attempting to save a configuration entity that has no ID.
  */
 public function save(EntityInterface $entity)
 {
     // Configuration entity IDs are strings, and '0' is a valid ID.
     $id = $entity->id();
     if ($id === NULL || $id === '') {
         throw new EntityMalformedException('The entity does not have an ID.');
     }
     // Check the configuration entity ID length.
     // @see \Drupal\Core\Config\Entity\ConfigEntityStorage::MAX_ID_LENGTH
     // @todo Consider moving this to a protected method on the parent class, and
     //   abstracting it for all entity types.
     if (strlen($entity->get($this->idKey)) > self::MAX_ID_LENGTH) {
         throw new ConfigEntityIdLengthException(SafeMarkup::format('Configuration entity ID @id exceeds maximum allowed length of @length characters.', array('@id' => $entity->get($this->idKey), '@length' => self::MAX_ID_LENGTH)));
     }
     return parent::save($entity);
 }
 /**
  * {@inheritdoc}
  */
 public function save(EntityInterface $entity)
 {
     $transaction = $this->database->startTransaction();
     try {
         $return = parent::save($entity);
         // Ignore replica server temporarily.
         db_ignore_replica();
         return $return;
     } catch (\Exception $e) {
         $transaction->rollback();
         watchdog_exception($this->entityTypeId, $e);
         throw new EntityStorageException($e->getMessage(), $e->getCode(), $e);
     }
 }