void (@NotNull AWTEvent event, long finishedAtMs) { InvocationDescription description = new InvocationDescription(toDescription(event.toString()), Objects.requireNonNull(myCurrentResults.remove(event)), finishedAtMs); Class<? extends AWTEvent> eventClass = event.getClass(); myEventsByClass.putIfAbsent(eventClass, new ConcurrentLinkedQueue<>()); myEventsByClass.get(eventClass).offer(description); }