@Override
 public Report generateReport(String reportId) {
   log.info("Generate report for reportId: '" + reportId + "'.");
   StorageKey storageKey = toCollect.remove(reportId);
   if (storageKey == null) {
     throw new IllegalArgumentException("No report for the given report id.");
   }
   registry.stopStoringEventsFor(storageKey);
   List<Event> events = eventStore.getEvents(storageKey);
   eventStore.clearEvents(storageKey);
   return generateReport(events);
 }