/**
  * @throws Tracker_FieldValueNotStoredException
  */
 private function storeFieldsValues(Tracker_Artifact $artifact, $previous_changeset, array $fields_data, PFUser $submitter, $changeset_id)
 {
     $used_fields = $this->formelement_factory->getUsedFields($artifact->getTracker());
     foreach ($used_fields as $field) {
         if (!$this->saveNewChangesetForField($field, $artifact, $previous_changeset, $fields_data, $submitter, $changeset_id)) {
             $this->changeset_dao->rollBack();
             throw new Tracker_FieldValueNotStoredException($GLOBALS['Language']->getText('plugin_tracker', 'field_not_stored_exception', array($field->getLabel())));
         }
     }
     return true;
 }