docs: public synchronized void updatePath(PropertyChangeListener listener, Object newObject, Set updateSet) {
          if (currentObject != newObject) {
              removeListeners();
          }
          if ((children != null) && (children.length > 0)) {
              try {
                  Object newValue = null;
                  if (newObject != null) {
                      updateSet.add(newObject);
                      newValue = extractNewValue(newObject);
                  }
                  for (BindPath child : children) {
                      child.updatePath(listener, newValue, updateSet);
                  }
              } catch (Exception e) {
                  //LOGME
                  // do we ignore it, or fail?
              }
          }
          if (currentObject != newObject) {
              addListeners(listener, newObject, updateSet);
          }
      }