docs: public synchronized void setSource(Source source) {
          String sourceId = CollectorManagerUtils.getSourceId(source);
          SourceManager srcMgr = null;
          if (!sourceMgrs.containsKey(sourceId)) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
                  Tr.event(tc, "Adding source to the list", source.getClass());
              }
              srcMgr = new SourceManager(source);
              sourceMgrs.put(srcMgr.getSourceId(), srcMgr);
              /*
               * Obtain the conduit/bufferManager and put it in bufferManagerMap
               * if the source being set is message/log or trace.
               *
               * This is to make up for the prior logic where conduit/bufferManager
               * were created before the source was created and were set into the bufferManagerMap
               *
               * With the new logic concerning LogSource and TraceSource for JsonLogging, the LogSource
               * and TraceSource and their respective Conduit/BufferManager were created outside of
               * CollectorManager and OSGI serviceability. Thus, the following call to processInitializedConduits
               * retrieves the conduits/bufferManagers that were created 'outside' collectorManager's realm of
               * control and places them into bufferManagerMap because the following logic expects the prior
               * statement to be true.
               *
               * Alas, continue 'as normal' afterwards.
               */
              processInitializedConduits(source);
  
              //Passes BufferManager onto SourceManager which will then associate a Handler to it.
              srcMgr.setBufferManager(bufferManagerMap.get(sourceId));
              //Handle pending subscriptions for this source
              for (Entry<String, HandlerManager> entry : handlerMgrs.entrySet()) {
                  HandlerManager hdlrMgr = entry.getValue();
                  //Check if source is in the pending subscription list for this handler
                  if (hdlrMgr.getPendingSubscriptions().contains(sourceId)) {
                      List<String> sourceIds = new ArrayList<String>();
                      sourceIds.add(sourceId);
                      try {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                              Tr.debug(tc, "Handling pending subscription " + sourceId,
                                       hdlrMgr.getHandlerId());
                          }
                          subscribe(hdlrMgr.getHandler(), sourceIds);
                      } catch (Exception e) {
  
                      }
                  }
              }
          }
      }