code: @Override
      public final synchronized void removePropertyChangeListener(
              PropertyChangeListener listener) {
          if (listener == null || changeSupport == null) {
              return;
          }
          changeSupport.removePropertyChangeListener(listener);
      }
docs: Removes a PropertyChangeListener from the listener list. This method should be used to remove
  PropertyChangeListeners that were registered for all bound properties of this class.<p>
  
  If listener is {@code null}, no exception is thrown and no action is performed.
  
  @param listener the PropertyChangeListener to be removed
  @see #addPropertyChangeListener(PropertyChangeListener)
  @see #addPropertyChangeListener(String, PropertyChangeListener)
  @see #removePropertyChangeListener(String, PropertyChangeListener)
  @see #getPropertyChangeListeners()