@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); }