@Override
  @Transactional
  public String update() {
    info("Atempt to update request {0} for user {1}", getInstance(), utilisateurCourant);

    try {
      // Verification du pseudo
      if (!annonceHome.validerDateDebut() || !annonceHome.validerDateFin()) {
        return "dates_incorrectes";
      }

      // Maj du lieu
      getInstance().setLieuDepart(annonceHome.getLieuDepart().getLieu());
      getInstance().setLieuArrivee(annonceHome.getLieuArrivee().getLieu());

      getInstance().setDateMaj(new Date());

      getInstance().setNote(demandeHelper.getNote(getInstance()));

      // Enregistrement de l'utilisateur
      String retour = super.update();
      if (!UPDATED.equals(retour)) {
        throw new BSException("error.demande.update");
      }

      // annonceList.updateDemande(getInstance());
      events.raiseTransactionSuccessEvent("demandeUpdated", getInstance());

      info("Updated request {0} for user {1}", getInstance(), utilisateurCourant);

      return UPDATED;
    } catch (BSException bse) {
      error(
          "Error while updating request {0} for user {1} : {2} ",
          getInstance(), utilisateurCourant, bse.getMessage());
      throw bse;
    } catch (Exception e) {
      error(
          "Error while updating request {0} for user {1} : {2} ",
          getInstance(), utilisateurCourant, e.getMessage());
      throw new BSException("error.demande.update");
    }
  }