logger.error("Got a Notification for the wrong allocation:"+ "\n\tTask="+tuid+ "  ("+pe.getTask()+")"+ "\n\tFrom="+childuid+ "  ("+remoteTUID+")"+ "\n\tResult="+not.getAllocationResult()+"\n"+ "\n\tPE="+pe);
if (logger.isInfoEnabled()) { logger.info("Got a Notification for the wrong allocation:"+ "\n\tTask="+tuid+ "  ("+pe.getTask().getUID()+")"+ "\n\tFrom="+childuid+ "  ("+remoteTUID+")"+ "\n\tResult="+not.getAllocationResult()+"\n"+ "\n\tPE="+pe); } needToRescind = true;
  private void processNotification(Notification not, Collection changes) {    UID tuid = not.getTaskUID();    UID childuid = not.getChildTaskUID();    PlanElement pe = logplan.findPlanElement(tuid);    boolean needToRescind = (pe == null);    // verify that the pe matches the task    if (!needToRescind &&  (pe instanceof AllocationforCollections)) {      UID remoteTUID = ((AllocationforCollections)pe).getAllocationTaskUID();      if (remoteTUID == null) {        needToRescind = true;      } else {        if (!(remoteTUID.equals(childuid))) {          // this was likely due to a race condition...          logger.error("Got a Notification for the wrong allocation:"+                           "\n\tTask="+tuid+                           "  ("+pe.getTask()+")"+                           "\n\tFrom="+childuid+                           "  ("+remoteTUID+")"+                           "\n\tResult="+not.getAllocationResult()+"\n"+                           "\n\tPE="+pe);          // rescind the remote task?           return;        }      }    }    if (needToRescind) {      TaskRescind trm = ldmf.newTaskRescind(childuid, not.getSource());      rootplan.sendDirective(trm, changes);    } else {      AllocationResult ar = not.getAllocationResult();      propagateNotification(          rootplan, logplan, pe, tuid, ar, childuid, changes);    }  }