code: @Override
      public Object get(String key, ICacheLoader cacheLoader) {
          Object value = internalGet(key);
          boolean fromCacheLoader = false;
          if (value == null && cacheLoader != null) {
              try {
                  value = cacheLoader.load(key);
                  fromCacheLoader = true;
              } catch (Exception e) {
                  throw e instanceof CacheException ? (CacheException) e : new CacheException(e);
              }
          }
          if (value instanceof CacheEntry) {
              CacheEntry ce = (CacheEntry) value;
              value = ce.getValue();
          }
          if (fromCacheLoader || value == null) {
              stats.miss();
          } else {
              stats.hit();
          }
          return value;
      }
docs: {@inheritDoc}