public void fireEvent(@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);
      }
    }
  }
public void fireEvent(@NotNull Phase phase)