log.debug("Can't use this set of locations because one is required: " + loc.toString());
	private List<Location> resolveSourceLocations(final URI requestURI)			throws LocationmapException, MalformedURLException,			ProcessingException {		final List<List<Location>> possibleLocs = this.locationMap				.get(requestURI);		if (possibleLocs == null || possibleLocs.size() == 0)			throw new LocationmapException(					"Unable to find a source location for " + requestURI);		List<Location> result = new ArrayList<Location>();		Boolean isValid = false;		for (List<Location> locs : possibleLocs) {			result = new ArrayList<Location>();			isValid = true;			Iterator<Location> sourceLocs = locs.iterator();			Location loc;			while (sourceLocs.hasNext() && isValid) {				loc = sourceLocs.next();				if (sourceExists(requestURI, loc)) {					result.add(loc);				} else {					if (loc.isRequired()) {						isValid = false;					}				}			}			if (isValid)				break;		}		if (!isValid) {			throw new ProcessingException(					"Unable to find a valid source location for "							+ requestURI.toASCIIString());		}		return result;	}