_gp.getLoggingService().error ("Sizer.provide : ERROR - Expansion queue is not null - we will drop tasks :");
logger.error ("Sizer.provide : ERROR - Expansion queue is not null - we will drop tasks :");
  Task provide(double requestedAmt) {    Task ret = null;    // first, if we've gotten a request, we need to check    // to see if the _curTask has anything left in it...    if (_remainder == 0.0) {      if ((_curTask = getNextTask()) != null) {	Mass taskMass = getTaskMass(_curTask, _quantityType);	_remainder = taskMass.getShortTons();	if (_expansionQueue != null) {	  _gp.getLoggingService().error ("Sizer.provide : ERROR - Expansion queue is not null - we will drop tasks :");	  for (Iterator iter = _expansionQueue.iterator(); iter.hasNext(); )	    _gp.getLoggingService().error ("\t" + ((Task)iter.next()).getUID());	}        _expansionQueue = new ArrayList();      } else {        return null;      }    }    // precondition:  _curTask is bound to a Task and remainder >= 0.0    // remainder can be == 0.0 because some Plugin developers make such    // tasks instead of rescinding requests.    if (_remainder <= requestedAmt ) {      // we are going to use up the entire _curTask and need to      // take care of the expansion      ret = sizedTask(_curTask, _remainder);      _expansionQueue.add(0, ret);      makeExpansion(_curTask, _expansionQueue);      _expansionQueue = null; // it has been used - we shouldn't try to use it again      _remainder = 0.0;    } else {      ret = sizedTask(_curTask, requestedAmt);      _expansionQueue.add(0, ret);      _remainder = _remainder - requestedAmt;      if (_remainder == 0.0)	_gp.getLoggingService().error ("Sizer.provide : ERROR - We will drop task " + ret.getUID());    }    return ret;  }