docs: private void waitForDispatchersToFinish(Long mdbQuiescingTimeout) {
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled())
              SibTr.entry(this, TRACE, "waitForDispatchersToFinish", mdbQuiescingTimeout);
  
          final long wakeupInterval = 10000; //How long we wait for.
          long startTime = System.currentTimeMillis();
          if (mdbQuiescingTimeout >= 0) // if we have a negative custom property then we don't wait at all.
          {
              while (_dispatcherCount.get() > 0) {
                  long timeWaiting = System.currentTimeMillis() - startTime; //How long we have been waiting so far
                  long timeToWaitThisTimeRound;
  
                  if (mdbQuiescingTimeout > 0) //We have the custom property set to a time
                  {
                      long timeLeftToWait = mdbQuiescingTimeout - timeWaiting; // Calculate how much time we have left
                      if (timeLeftToWait <= 0) {
                          if (TraceComponent.isAnyTracingEnabled() && TRACE.isDebugEnabled())
                              SibTr.debug(this, TRACE, "Breaking out of loop as we have finished waiting");
  
                          break; // We have run out of time, so break from the loop
                      }
                      timeToWaitThisTimeRound = Math.min(timeLeftToWait, wakeupInterval);
                  } else {
                      timeToWaitThisTimeRound = wakeupInterval;
                  }
  
                  if (TraceComponent.isAnyTracingEnabled() && TRACE.isDebugEnabled())
                      SibTr.debug(this, TRACE, "Entering wait for " + timeToWaitThisTimeRound + "ms. Waited " + timeWaiting + "ms so far. " + _dispatcherCount.get()
                                               + " dispatcher(s) still active");
  
                  try {
                      _dispatcherCount.wait(timeToWaitThisTimeRound); //Lets do the actual wait
                  } catch (InterruptedException ex) {
                      // No FFDC code needed
                  }
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled())
              SibTr.exit(this, TRACE, "waitForDispatchersToFinish");
      }