if (log.isDebugEnabled()) {
if (log.isInfoEnabled()) {
  public void execute() {//      if (log.isDebugEnabled()) {//        log.info("execute:" + this);//      }    long currentTime = currentTimeMillis();    for (Enumeration en = allocSub.getAddedList();         en.hasMoreElements();        ) {      if (log.isDebugEnabled()) {	log.info("execute:" + this +           ": got something from Alloc Subscription");      }      Allocation alloc = (Allocation)en.nextElement();      LocalAsset la = (LocalAsset)alloc.getAsset();      SimpleInventoryPG  trmPG = la.getSimpleInventoryPG();      // This call will immediately decrement the available       // resources in the asset.  The returned time is the time       // when the request will have been fully satisfied - some      // time in the future.  Therefore, if this PlugIn were to       // make an additional request at the same time, that       // second request would come in _after_ the first, event       // though they both happen simultaneously in some sense.      // And due to chaos, the returned time on the second request       // could be earlier than that on the first request.      // Note that this makes the PlugIn somewhat non-deterministic      // Also note the semantics of this call: the Request is       // immediate, but the response is delayed.  Therefore, an       // event visible at the returned time indicates when      // the request is fully completed and visible to the world,      // not when the request was received, nor when the ability       // of the local asset to satisfy another request was impacted.      long assetTime = trmPG.consume(currentTime);      // Create a new AllocationResult      AllocationResult nar = null;      //      AllocationResult earlynar = null; // send at start of successful alloc            // Set some aspect values that are relevant      int[] aspect_types = {AspectType.END_TIME}; // the Aspects that have been satisfied      double []results = {(double)assetTime}; // matching values for those Aspects            if(assetTime > 0) {	if (log.isDebugEnabled()) {	  log.info("execute:" + this + ": Alloc request met at time: " + assetTime);	}	nar = theLDMF.newAllocationResult(1.0, // confidence rating					  true, // success					  aspect_types, // the metrics of our results					  results); // and what we got	nar.addAuxiliaryQueryInfo(AuxiliaryQueryType.FAILURE_REASON, Constants.Rating.SUCCESS);	// Now create another AR for sending immediately with low confidence//  	earlynar = theLDMF.newAllocationResult(0.0, // confidence rating//  					  true, // success//  					  aspect_types, // the metrics of our results//  					  results); // and what we got//          // earlynar.setRatingDescription(Constants.Rating.SUCCESS);//  	earlynar.addAuxiliaryQueryInfo(AuxiliaryQueryType.FAILURE_REASON, Constants.Rating.SUCCESS);	// When Allocator / customer are re-done to handle these low-confidence answers,	// send them.      } else {	if (log.isDebugEnabled()) {	  log.info("execute:" + this + ": Alloc request failed!");	}	// do I need different results?	nar = theLDMF.newAllocationResult(1.0, // confidence rating					  false, // success					  aspect_types, // the metrics of our results					  results); // and what we got	nar.addAuxiliaryQueryInfo(AuxiliaryQueryType.FAILURE_REASON, Constants.Rating.FAIL_INV_EMPTY);	// Publish a Report as well?      }      // Set the estimated result now, and the observed later.      // Question: Must I wake myself up later and make the change later?//        if (assetTime > 0) {//  	alloc.setEstimatedResult(nar);//  	publishChange(alloc);//        }      // create a future "change" predicate      final AllocationResult finalNAR = nar;      UnaryPredicate futureChange =        new UnaryPredicate() {          public boolean execute(Object o) {            // o is our alloc, but cast here for simplicity            Allocation al = (Allocation)o;            // we could rethink our change, e.g. by examination of the alloc,            //   and return "false" -- for now we'll always do the change.            //            // put this new AllocationResult on the Allocation as Observed            al.setObservedResult(finalNAR);            return true;          }        };      // Make the change visible now for failure or at the returned time      // for sucess      publishChangeAt(          alloc,           (assetTime > 0 ? assetTime : currentTime),          futureChange);    }  } // end of execute()