code: @Override
      protected T readCacheDataFromFile(File file) throws CacheLoadingException {
          try {
              String resultJson = null;
              synchronized (file.getAbsolutePath().intern()) {
                  resultJson = FileUtils.readFileToString(file, CharEncoding.UTF_8);
              }
              if (!StringUtils.isEmpty(resultJson)) {
                  T result = deserializeData(resultJson);
                  return result;
              }
              throw new CacheLoadingException("Unable to restore cache content : cache file is empty");
          } catch (FileNotFoundException e) {
              // Should not occur (we test before if file exists)
              // Do not throw, file is not cached
              Ln.w("file " + file.getAbsolutePath() + " does not exists", e);
              return null;
          } catch (CacheLoadingException e) {
              throw e;
          } catch (Exception e) {
              throw new CacheLoadingException(e);
          }
      }
docs: ============================================================================================