rebuildPGCustomerHash();
  public HashSet updateAllocationResult(Collection sub) {    //    System.out.println("ex alloc update ARs being called in" + inventoryPlugin.getClusterId());      HashSet backwardFlowInventories = new HashSet();    // Set up the affected inventories for the AllocationAssessor    Task refill;    Asset asset;    Allocation alloc;    Inventory inventory;    LogisticsInventoryPG logInvPG = null;    Iterator refill_list = sub.iterator(); // ###    while (refill_list.hasNext()) {      alloc = (Allocation) refill_list.next();      //      refill = (Task)refill_list.next();      refill = alloc.getTask();      asset = (Asset)refill.getDirectObject();      inventory = inventoryPlugin.findOrMakeInventory(asset);      if (inventory != null) {        logInvPG = (LogisticsInventoryPG)          inventory.searchForPropertyGroup(LogisticsInventoryPG.class);        if (refill.getVerb().equals(Constants.Verb.PROJECTSUPPLY)) {          logInvPG.updateRefillProjection(refill);        } else {          logInvPG.updateRefillRequisition(refill);        }      } // else { this is a pass-thru }              if (PluginHelper.updatePlanElement(alloc)) {        inventoryPlugin.publishChange(alloc);        if (inventory != null) {          //System.out.println("ex all publish changing and added to AA's inventory list " + logInvPG.getResource());          backwardFlowInventories.add(inventory);        }      }    }    rebuildPGCustomerHash();    return backwardFlowInventories;  }