docs: public synchronized void unsetSource(Source source) {
          String sourceId = CollectorManagerUtils.getSourceId(source);
          SourceManager srcMgr = null;
          if (sourceMgrs.containsKey(sourceId)) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "Removing source from the list", source.getClass());
              }
              srcMgr = sourceMgrs.get(sourceId);
              /*
               * Change all subscriptions to pending subscriptions
               * Need to make a copy to avoid a ConcurrentModification Exception when unsubscribe is called
               * and subsequent call to SrcMgr to remove the handler from the subscriptions list.
               */
              Set<String> srcMgrSubscriptions = new HashSet<String>(srcMgr.getSubscriptions());
              for (String handlerId : srcMgrSubscriptions) {
                  List<String> sourceIds = new ArrayList<String>();
                  sourceIds.add(sourceId);
                  try {
                      HandlerManager hdlrMgr = handlerMgrs.get(handlerId);
                      Handler handler = hdlrMgr.getHandler();
                      unsubscribe(handler, sourceIds);
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                          Tr.debug(tc, "Source not available, adding to pending subscription list " + sourceId,
                                   handlerId);
                      }
                      hdlrMgr.addPendingSubscription(sourceId);
                  } catch (Exception e) {
  
                  }
              }
              srcMgr.unsetSource(source);
              sourceMgrs.remove(sourceId);
          }
      }