public List<CounterRequest> getRequests() {
		// thread-safe :
		// on crée une copie de la collection et on clone ici chaque CounterRequest de manière synchronisée
		// de manière à ce que l'appelant n'ai pas à se préoccuper des synchronisations nécessaires
		// Rq : l'Iterator sur ConcurrentHashMap.values() est garanti ne pas lancer ConcurrentModificationException
		// même s'il y a des ajouts concurrents
		final List<CounterRequest> result = new ArrayList<>(requests.size());
		for (final CounterRequest request : requests.values()) {
			// on synchronize sur request en cas d'ajout en parallèle d'un hit sur cette request
			synchronized (request) {
				result.add(request.clone());
			}
		}
		return result;
	}
@Test
	public void testGetRequests() {
		counter.clear();
		final CounterRequest counterRequest = createCounterRequest();
		counter.addHits(counterRequest);
		final List<CounterRequest> requests = counter.getRequests();
		assertEquals("requests size", 1, requests.size());
		assertEquals("request", counterRequest.toString(), requests.get(0).toString());
	}