allocateEarlyProjections(firstProjectBucket, inventory, thePG);
allocateEarlyProjections(inventory, thePG);
  public void reconcileInventoryLevels(Collection inventories) {    Iterator inv_list = inventories.iterator();    long today = inventoryPlugin.getCurrentTimeMillis();    int today_bucket;    Inventory inventory;    LogisticsInventoryPG thePG;    long endOfLevel2 = inventoryPlugin.getEndOfLevelTwo();    while (inv_list.hasNext()) {      // clear out the trailing pointers every time we get another inventory      trailingPointersHash = new HashMap();;      trailingPointers = new ArrayList();      trailingPointersRemove = new ArrayList();      inventory = (Inventory)inv_list.next();      thePG = (LogisticsInventoryPG)        inventory.searchForPropertyGroup(LogisticsInventoryPG.class);      today_bucket = thePG.convertTimeToBucket(today, true);      reconcileThePast(today_bucket, thePG);      int end_bucket = thePG.getLastDemandBucket();      int endOfLevel2Bucket = thePG.convertTimeToBucket(endOfLevel2, true);      if (end_bucket > endOfLevel2Bucket) {	end_bucket = endOfLevel2Bucket;      }      int firstProjectBucket = thePG.getFirstProjectWithdrawBucket();      if (firstProjectBucket == -1) {	  firstProjectBucket = today_bucket;      }      createAllocations(today_bucket, end_bucket, inventory, thePG);      allocateEarlyProjections(firstProjectBucket, inventory, thePG);    }  }