@SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
    public void unregisterEventFinishedListener(EventModel<EventModel> event, EventListenerModel eventListener) throws IllegalArgumentException {
        for (String id : event.getAllInformations()) {
            ArrayList<EventListenerModel> listenersList = finishListeners.get(id);
            if (listenersList == null) {
                return;
            }
            synchronized (listenersList) {
                listenersList.remove(eventListener);
            }
        }
    }
@ SuppressWarnings ( "SynchronizationOnLocalVariableOrMethodParameter" ) public void unregisterEventFinishedListener ( EventModel < EventModel > event , EventListenerModel eventListener ) throws IllegalArgumentException { for ( String id : event . getAllInformations ( ) ) { ArrayList < EventListenerModel > listenersList = finishListeners . get ( id ) ; if ( listenersList == null ) { return ; } synchronized ( listenersList ) { listenersList . remove ( eventListener ) ; } } }
unregister an EventListener that got called when the event finished processing.

It will unregister for all Descriptors individually!
It will also ignore if this listener is not listening to an Event.
Method is thread-safe.

@param event the Event to stop listen to
@param eventListener the ActivatorEventListener used to listen for events
@throws IllegalArgumentException if Listener is already listening to the Event or the id is not allowed