code: @Override
      protected Object internalGet(String key) {
          try {
              Object result = cache.get(key);
              if (result instanceof CacheEntry) {
                  // update entry's private TTL if needed.
                  CacheEntry ce = (CacheEntry) result;
                  if (ce.touch()) {
                      set(key, ce);
                  }
              }
              return cloneCacheEntries ? CacheUtils.tryClone(result) : result;
          } catch (Exception e) {
              Throwable t = e.getCause();
              if (t instanceof CacheException.CacheEntryNotFoundException) {
                  return null;
              } else {
                  throw new RuntimeException(e);
              }
          }
      }
docs: {@inheritDoc}