public synchronized @Nullable EncodedImage get(final CacheKey key) {
    Preconditions.checkNotNull(key);
    EncodedImage storedEncodedImage = mMap.get(key);
    if (storedEncodedImage != null) {
      synchronized (storedEncodedImage) {
        if (!EncodedImage.isValid(storedEncodedImage)) {
          // Reference is not valid, this means that someone cleared reference while it was still in
          // use. Log error
          // TODO: 3697790
          mMap.remove(key);
          FLog.w(
              TAG,
              "Found closed reference %d for key %s (%d)",
              System.identityHashCode(storedEncodedImage),
              key.getUriString(),
              System.identityHashCode(key));
          return null;
        }
        storedEncodedImage = EncodedImage.cloneOrNull(storedEncodedImage);
      }
    }
    return storedEncodedImage;
  }
@param key
@return value associated with given key or null if no value is associated
imagepipeline/src/main/java/com/facebook/imagepipeline/cache/StagingArea.java