code: @Override
      public synchronized Object put(Object key, Object value) {
          ValueWrapper valueWrapper = new ValueWrapper(value);
          return super.put(key, valueWrapper);
      }
docs: Add a new value to the cache. The value will expire in accordance with the cache's expiration
  timeout value which was set when the cache was created.
  
  @param key the key, typically a String
  @param value the value
  @return the previous value of the specified key in this hashtable, or null if it did not have
  one.