TimeInterval requestedTimeInterval = getPreferenceTimeInterval(relay.getServiceRequest().getServicePreferences());
TimeSpan requestedTimeInterval = SDFactory.getTimeSpanFromPreferences(relay.getServiceRequest().getServicePreferences());
  protected Collection getCurrentlyUncoveredIntervalsWithoutOutstandingRequests(      long desiredStart, long desiredEnd, Role role) {    Collection stillNeeded = getCurrentlyUncoveredIntervals(desiredStart,							    desiredEnd, 							    role);    //go through the existing service contracts and remove the    //time periods that have been requested but not yet responded to    for (Iterator relayIterator = myServiceContractRelaySubscription.iterator();         relayIterator.hasNext();) {      ServiceContractRelay relay =        (ServiceContractRelay) relayIterator.next();      if (!relay.getClient().equals(getSelfOrg())) {        continue;      }      if (relay.getServiceContract() == null  &&          relay.getServiceRequest().getServiceRole().equals(role)) {	TimeInterval requestedTimeInterval = 	  getPreferenceTimeInterval(relay.getServiceRequest().getServicePreferences());			stillNeeded = TimeInterval.removeInterval(requestedTimeInterval,						  stillNeeded);      }    }        return stillNeeded;  }