docs: public void removeReferenceListener(ReferenceListener listener) {
  		final List<ReferenceListener> list = this.listeners;
  		if (list != null) {
  			synchronized (list) {
  				list.remove(listener);
  				if (list.isEmpty()) {
  					this.listeners = null;
  				}
  			}
  		}
  	}