code: private Object loadListener(Class<?> listenerClass) {
      synchronized (listenerClass) {
        Object listener = listeners.get(listenerClass);
        if (listener == null) {
          listener = IntrospectionUtils.instantiateObject(listenerClass);
          listeners.put(listenerClass, listener);
        }
        return listener;
      }
    }
docs: Instantiates the listener of given type and caches it.
  
  @param listenerClass
  the listener type
  @return the instantiated object