code: private void cleanupIfNeccessary(JsonGetterContext excluded) {
          int cacheCount;
          while ((cacheCount = internalCache.size()) > maxContexts) {
              int sampleCount = Math.max(cacheCount - maxContexts, cleanupRemoveAtLeastItems) + 1;
              for (SamplingEntry sample: internalCache.getRandomSamples(sampleCount)) {
                  if (excluded != sample.getEntryValue()) {
                      internalCache.remove(sample.getEntryKey());
                  }
              }
          }
      }
docs: Cleanup on best effort basis. Concurrent calls to this method may
  leave the cache empty. In that case, lost entries are re-cached
  at a later call to {@link #getContext(String)}.
  
  @param excluded