code: public static void removeDeepPropertyChangeListener(
          Object object, PropertyChangeListener propertyChangeListener)
      {
          Objects.requireNonNull(object, "The object may not be null");
          Objects.requireNonNull(propertyChangeListener, 
              "The propertyChangeListener may not be null");
          removeRecursive(object, propertyChangeListener);
      }
docs: Remove the given property change listener from the given object
  and all its sub-objects.
  
  @param object The object
  @param propertyChangeListener The property change listener