rootplan.sendDirective(remoteTask);
sendTask(remoteTask, null);
  public void restart(final MessageAddress cid) {    if (logger.isInfoEnabled()) {      logger.info(        self+": Reconcile with "+        (cid==null?"all agents":cid.toString()));    }    UnaryPredicate pred = new UnaryPredicate() {      public boolean execute(Object o) {        if (o instanceof Allocation) {          Allocation alloc = (Allocation) o;          Asset asset = alloc.getAsset();          ClusterPG cpg = asset.getClusterPG();          if (cpg == null) return false;          MessageAddress destination = cpg.getMessageAddress();          return             RestartLogicProviderHelper.matchesRestart(              self, cid, destination);        }        return false;      }    };    Enumeration enum = rootplan.searchBlackboard(pred);    while (enum.hasMoreElements()) {      AllocationforCollections alloc = (AllocationforCollections) enum.nextElement();      Task remoteTask = alloc.getAllocationTask();      if (remoteTask != null && taskShouldBeSent(remoteTask)) {        if (logger.isInfoEnabled()) {          Task localTask = alloc.getTask();          logger.info(              self+": Resend"+(cid==null?"*":"")+              " task to "+remoteTask.getDestination()+              " with remoteUID="+remoteTask.getUID()+              " "+localTask);        }        rootplan.sendDirective(remoteTask);      }    }