void (@NotNull Phase phase) { if (myListeners == null) { return; } Iterator<Listener> iterator = myListeners.iterator(); while (iterator.hasNext()) { try { iterator.next().update(phase); } catch (Throwable t) { iterator.remove(); Logger.getInstance(Animation.class).error("Listener caused an error and was removed from listeners", t); } } }