docs: private void sweep()
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); // d532639.2
  
          if (isTraceOn && isTraceEnabled(false))
              Tr.entry(tc.isEntryEnabled() ? tc : tcOOM,
                       ivCache.getName() + ": Sweep (" + ivCache.numSweeps +
                                       "," + ivDiscardThreshold + "," + ivSweepInterval + ")" +
                                       " - Cache limit exceeded : " + ivCache.getSize() +
                                       "/" + ivPreferredMaxSize);
  
          int numEvicted = 0;
          long sweepCount = 0;
          Element element = null;
  
          try
          {
              while ((element = (Element) ivElements.nextElemNoEx()) != null)
              {
                  // Basic operations on basic types are atomic, and we
                  // don't care about out-of-sync reads, so we don't
                  // bother synchronizing access to the LRU flag here
  
                  if (element.accessedSweep <= ivCache.numSweeps)
                      sweepCount = ivCache.numSweeps - element.accessedSweep;
                  else
                      sweepCount = (Long.MAX_VALUE - element.accessedSweep) + ivCache.numSweeps;
  
                  // Very simple algorithm, if the element has been around for
                  // more than the discard threshold number of sweep intervals,
                  // we evict it or at least try.
                  if (element.pinned == 0 &&
                      sweepCount > ivDiscardThreshold)
                  {
                      if (ivCache.evictObject(element.key))
                      {
                          numEvicted++;
                      }
                  }
              }
          } catch (NoSuchElementException e)
          {
              // Enumeration may fail earlier than expected due to
              // concurrent cache access; this is not an error
              FFDCFilter.processException(e, CLASS_NAME + ".sweep", "499", this);
  
              if (isTraceOn && isTraceEnabled(false))
                  Tr.exit(tc.isEntryEnabled() ? tc : tcOOM,
                          ivCache.getName() + ": Sweep (" + ivCache.numSweeps +
                                          "," + ivDiscardThreshold + "," + ivSweepInterval + ")" +
                                          " - Evicted = " + numEvicted + " : " + ivCache.getSize() +
                                          " : NoSuchElementException");
              return;
          } finally { //PM11713
  
              // Reset the cached enumaration, so it is just like new.  This is
              // done for performance, so a new enumeration doesn't have to be
              // created (and discarded) every sweep.                          d103404.2
              // Note: performing the reset AFTER the sweep insures that the
              // cached enumerator does not hold any resources while not in
              // use (such as a copy of one of the cache buckets).               //d310114 
              ivElements.reset();
  
          }
          if (isTraceOn && isTraceEnabled(false))
              Tr.exit(tc.isEntryEnabled() ? tc : tcOOM,
                      ivCache.getName() + ": Sweep (" + ivCache.numSweeps +
                                      "," + ivDiscardThreshold + "," + ivSweepInterval + ")" +
                                      " - Evicted = " + numEvicted + " : " + ivCache.getSize() +
                                      "/" + ivPreferredMaxSize);
      }