code: @Override
      @SuppressWarnings("unchecked")
      public <T> T get(final Object key, final Callable<T> valueLoader) {
          if (!cache.isEnabled()) {
              LOGGER.warn("Cache {} is disabled. Cannot get {} from cache", cache.getName(), key);
              return loadValue(key, valueLoader);
          }
          final ValueWrapper valueWrapper = get(key);
          if (valueWrapper != null) {
              return (T) valueWrapper.get();
          }
          synchronized (key.toString().intern()) {
              final T value = loadValue(key, valueLoader);
              put(key, value);
              return value;
          }
      }
docs: Required by Spring 4.3
  
  @since 3.6.1