docs: @Override
      public synchronized boolean removeListener(ArtifactListener listenerToRemove) {
          ArtifactListenerSelector listenerSelectorToRemove = new ArtifactListenerSelector(listenerToRemove);
          List<Registration> rToRemove = new ArrayList<Registration>();
          for (Registration r : listeners) {
              if (r.listener.equals(listenerSelectorToRemove)) {
                  rToRemove.add(r);
              }
          }
          listeners.removeAll(rToRemove);
          rebuildPaths();
          reprocessChildrenNotifiers();
          processMonitoredPathList();
          return rToRemove.size() > 0;
      }