public @NotNull IntObjectLRUMap.MapEntry<T> cacheEntry(int key, T value) {
    IntObjectLRUMap.MapEntry<T> cached = myProtectedQueue.getEntry(key);
    if (cached == null) {
      cached = myProbationalQueue.getEntry(key);
    }
    if (cached != null) {
      return cached;
    }

    IntObjectLRUMap.MapEntry<T> entry = new IntObjectLRUMap.MapEntry<>(key, value);
    myProbationalQueue.putEntry(entry);
    return entry;
  }
public @NotNull IntObjectLRUMap.MapEntry<T> cacheEntry(int key, T value)