code: public Image getImage(GraphicsConfiguration config, int w, int h, Object... args) {
          lock.readLock().lock();
  
          try {
              PixelCountSoftReference ref = map.get(hash(config, w, h, args));
  
              // check reference has not been lost and the key truly matches, in
              // case of false positive hash match
              if (ref != null && ref.equals(config, w, h, args)) {
                  return ref.get();
              } else {
                  return null;
              }
          } finally {
              lock.readLock().unlock();
          }
      }
docs: Get the cached image for given keys
  
  @param  config The graphics configuration, needed if cached image is a
  Volatile Image. Used as part of cache key
  @param  w      The image width, used as part of cache key
  @param  h      The image height, used as part of cache key
  @param  args   Other arguments to use as part of the cache key
  
  @return Returns the cached Image, or null there is no cached image for
  key