@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(); }