code: public V put(K key, V val) {
          //synchronized( this ) {
              //WeakReference<V> ref = new WeakReference<V>(val);
              SoftReference<V> ref = new SoftReference<V>(val);
              
              cache.put(key, ref);
              return get(key);
          //}
      }
docs: Places the specified value into the cache.
  @param key the key for the item being placed into the cache
  @param val the item to be cached
  @return the resulting value stored in the cache