public static void playback(int idCompetition) {
    // Get distances from start

    // Get the distances
    final List<DistanceFromStart> distances = HsqldbInterface.getDistancesFromStart(idCompetition);
    // Remove the distances for not to duplicate them
    HsqldbInterface.removeDistancesFromStart(idCompetition);

    // Set has started
    HsqldbInterface.setCompetitionHasStarted(idCompetition);

    // DISTANCES
    new Thread() {

      public void run() {
        long startTime = new Date().getTime();
        for (DistanceFromStart d : distances) {
          // Time from start of the race
          long timeFromStart = new Date().getTime() - startTime;

          // If it's not its time, sleeps
          long sleepTime = d.getTime() - timeFromStart;
          if (sleepTime > 0) {
            try {
              Thread.sleep(sleepTime);
            } catch (InterruptedException ex) {
              Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
            }
          }
          // Save distance from start
          HsqldbInterface.saveDistanceFromStart(
              d.getIdAthlete(), d.getIdCompetition(), d.getDistance());
        }
      }
    }.start();

    // COMMENTS
    Competition comp = HsqldbInterface.getCompetition(idCompetition);
    final Comment c1 =
        new Comment(
            -1,
            "@luis, @victor y @jaime han salido un poco despacio... "
                + "Espero que no les ganen los robots!",
            "dani",
            new ArrayList<String>(),
            comp.getId(),
            40452722,
            -3727811,
            comp.getScheduledDate());
    final Comment c2 =
        new Comment(
            -1,
            "#1 en cabeza! Y #5 y #2 persiguiendo desde cerca! Vamos!!!",
            "sara",
            new ArrayList<String>(),
            comp.getId(),
            40452231,
            -3729784,
            comp.getScheduledDate());
    final Comment c3 =
        new Comment(
            -1,
            "Como van?? ya no alcanzo a verlos!!",
            "sara",
            new ArrayList<String>(),
            comp.getId(),
            40452112,
            -3729768,
            comp.getScheduledDate());
    final Comment c4 =
        new Comment(
            -1,
            "Por aqui pasa @luis con algo de ventaja... aunque #5 y #2 le tienen a tiro! Carreron!",
            "pablo",
            new ArrayList<String>(),
            comp.getId(),
            40450965,
            -3728459,
            comp.getScheduledDate());
    final Comment c5 =
        new Comment(
            -1,
            "vamos @luis!! La victoria es tuya!!!",
            "dani",
            new ArrayList<String>(),
            comp.getId(),
            40452081,
            -3727756,
            comp.getScheduledDate());
    final Comment c6 =
        new Comment(
            -1,
            "Venga @jaime!! Arriba ese podium!!",
            "dani",
            new ArrayList<String>(),
            comp.getId(),
            40452044,
            -3727745,
            comp.getScheduledDate());
    final Comment c7 =
        new Comment(
            -1,
            "Genial @victor!! Vaya carreron!",
            "dani",
            new ArrayList<String>(),
            comp.getId(),
            40451991,
            -3727743,
            comp.getScheduledDate());

    new Thread() {

      public void run() {
        try {
          Thread.sleep(8000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c1);
        try {
          Thread.sleep(44000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c2);
        try {
          Thread.sleep(38000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c3);
        try {
          Thread.sleep(10000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c4);
        try {
          Thread.sleep(40000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c5);
        try {
          Thread.sleep(7000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c6);
        try {
          Thread.sleep(6000);
        } catch (InterruptedException ex) {
          Logger.getLogger(RacePlayback.class.getName()).log(Level.SEVERE, null, ex);
        }
        HsqldbInterface.saveComment(c7);
      }
    }.start();
  }