TransactionNoActiveException example


  public function rollBack($savepoint_name = 'drupal_transaction') {
    if (!$this->inTransaction()) {
      throw new TransactionNoActiveException();
    }
    // A previous rollback to an earlier savepoint may mean that the savepoint     // in question has already been accidentally committed.     if (!isset($this->transactionLayers[$savepoint_name])) {
      throw new TransactionNoActiveException();
    }

    // We need to find the point we're rolling back to, all other savepoints     // before are no longer needed. If we rolled back other active savepoints,     // we need to throw an exception.     $rolled_back_other_active_savepoints = FALSE;
    
    // created (DDL transactions are not supported). Prevent triggering an     // exception to ensure that the error that has caused the rollback is     // properly reported.     if (!$this->connection->inTransaction()) {
      // On PHP 7 $this->connection->inTransaction() will return TRUE and       // $this->connection->rollback() does not throw an exception; the       // following code is unreachable.
      // If \Drupal\Core\Database\Connection::rollBack() would throw an       // exception then continue to throw an exception.       if (!$this->inTransaction()) {
        throw new TransactionNoActiveException();
      }
      // A previous rollback to an earlier savepoint may mean that the savepoint       // in question has already been accidentally committed.       if (!isset($this->transactionLayers[$savepoint_name])) {
        throw new TransactionNoActiveException();
      }

      trigger_error('Rollback attempted when there is no active transaction. This can cause data integrity issues.', E_USER_WARNING);
      return;
    }
    return parent::rollBack($savepoint_name);
  }
Home | Imprint | This part of the site doesn't use cookies.