code: protected void refreshItem(CacheItem item, Cache cache) throws Exception {
          CacheLoader loader = item.getLoader();
          Object[] loaderParams = item.getLoaderParams();
  
          if (loader == null) {
              throw new InternalCacheEngineException("No cache loader for " + getScopeAndKeyString(item));
          }
  
          if (logger.isDebugEnabled()) {
              logger.debug("Refreshing " + getScopeAndKeyString(item));
          }
  
          Object newValue = loader.load(loaderParams);
          if (newValue != null) {
              cache.put(item.getScope(), item.getKey(), newValue, item.getTicksToExpire(), item.getTicksToRefresh(),
                        item.getLoader(), item.getLoaderParams());
          } else {
              // If newValue returned is null, remove the item from the cache
              cache.remove(item.getScope(), item.getKey());
          }
      }
docs: Refreshes only one item. To refresh the item, its {@link CacheLoader} is called to get a new value of the item.
  If the value returned by the loader is null, the item is removed from the cache instead.
  
  @throws Exception