docs: private void addComplementaryThreadContextConfigurationsTo(ContextServiceImpl contextSvc) {
          final boolean trace = TraceComponent.isAnyTracingEnabled();
  
          lock.writeLock().lock();
          try {
              // Detect and stop infinite recursion from baseContextRef
              if (lock.getWriteHoldCount() > 1) {
                  IllegalArgumentException x = ignoreWarnOrFail(null, IllegalArgumentException.class, "CWWKC1020.baseContextRef.infinite", name);
                  if (x == null)
                      return;
                  else
                      throw x;
              } else if (threadContextConfigurations == null)
                  init();
  
              modificationListeners.add(contextSvc);
  
              for (Map.Entry<String, Map<String, ?>> threadContextConfig : threadContextConfigurations.entrySet()) {
                  String name = threadContextConfig.getKey();
                  if (!contextSvc.threadContextConfigurations.containsKey(name)) {
                      contextSvc.threadContextConfigurations.put(name, threadContextConfig.getValue());
                      if (trace && tc.isDebugEnabled())
                          Tr.debug(this, tc, "adding " + name, threadContextConfig.getValue());
                  }
              }
          } finally {
              lock.writeLock().unlock();
          }
      }