code: public V fetch(K key, Factory<V> factory, Object... args) throws Exception {
          return locate(key).get(factory, args);
      }
docs: Fetches an object from the cache. Synchronization at cache level is kept to minimum. The provider is called upon cache miss.
  
  @param key the identity of the object
  @param factory a factory to provide the object upon cache miss
  @param args arguments to pass to the factory
  @return the object requested
  @throws Exception if the provider fails to create a new object