@Override
  public void execute(Executor executor) {
    setActive(); /*
                 currentRequestor = null;
                  Check if there is a valid host to which return the task output
                 for(int i=0; i<delegationChain.size() && currentRequestor == null; i++){
                 	if(myRouter.getPresenceCollector().isHostInRange(delegationChain.get(i))){
                 		currentRequestor = delegationChain.get(i);
                 	}
                 } */

    if (
    /*currentRequestor != null*/ myRouter.getPresenceCollector().isHostInRange(requestor)
        && executor.moreCommunicatorsAvailable()) {
      int[] missingRestOfMap =
          ((M2MShareRouter) requestor.getRouter()).getIntervalsForDownloadFwd(getID());
      if (missingRestOfMap == null) {
        setCompleted();
        return;
      }
      System.err.println(
          myRouter.getHost() + " - in DTNDownloadFwd.execute comincio a trasferire a " + requestor);
      executor.addCommunicator(
          myRouter.getPresenceCollector().getConnectionFor(requestor),
          myRouter.getHost(),
          filehash,
          missingRestOfMap);
      /* keep state = ACTIVE */
      return;
    }
    // no communicator started
    setIncomplete();
  }