rootplan.sendDirective(copytask, changes);
sendTask(copytask, changes);
  private void examine(Object obj, Collection changes) {    if (! (obj instanceof Allocation)) return;    Allocation all = (Allocation) obj;    Task task = all.getTask();    Asset asset = all.getAsset();    ClusterPG cpg = asset.getClusterPG();    if (cpg == null) return;    MessageAddress destination = cpg.getMessageAddress();    if (destination == null) return;    if (!taskShouldBeSent(task)) return; // In past    // see if we're reissuing the task... if so, we'll just use it.    Task copytask = ((AllocationforCollections)all).getAllocationTask();    if (copytask == null) {      // if not, make a new task to send.      copytask = prepareNewTask(task, destination);      ((AllocationforCollections)all).setAllocationTask(copytask);      rootplan.change(all, changes);     }    // Give the task directive to the blackboard for transmission    rootplan.sendDirective(copytask, changes);  }