tasks = getPrunedTaskList (tasks);
  public void processTasks (List tasks) {    if (isInfoEnabled()) {      info (getName () +            ".processTasks - processing " + tasks.size() + " tasks.");    }    tasks = getPrunedTaskList (tasks);    Map reservedToActual = new HashMap ();    for (int i = 0; i < tasks.size (); i++) {      Task task = (Task) tasks.get (i);      if (task.getVerb ().equals (Constants.Verb.TRANSPORT))        handleTransportTask (task, reservedToActual);      else        handleProjectSupplyTask (task);    }    for (Iterator iter = reservedToActual.keySet().iterator(); iter.hasNext(); ) {      Task reserved = (Task)iter.next ();      Task actual   = (Task) reservedToActual.get(reserved);      Task reservedParent = getParentTask (reserved);      synchronized (reserved.getWorkflow ()) {        if (ownWorkflow (reserved)) {          dealWithReservedTask (actual, reserved, reservedParent);        }        else if (isInfoEnabled()) {          info ("reserved task " + reserved.getUID () +                " not a member of it's own workflow " + reserved.getWorkflow () +                "\nworkflow task uids : " + uidsWorkflow(reserved) + " - assuming it will be removed.");        }      }    }  }