docs: @Override
      public IEntityGroup find(String key) throws GroupsException {
          if (log.isDebugEnabled()) {
              log.debug(DEBUG_CLASS_NAME + ".find(): group key: " + key);
          }
  
          String path = getFilePathFromKey(key);
          File f = new File(path);
  
          GroupHolder groupHolder = cacheGet(key);
  
          if (groupHolder == null || (groupHolder.getLastModified() != f.lastModified())) {
              if (log.isDebugEnabled()) {
                  log.debug(
                          DEBUG_CLASS_NAME
                                  + ".find(): retrieving group from file system for "
                                  + path);
              }
  
              if (!f.exists()) {
                  if (log.isDebugEnabled()) {
                      log.debug(DEBUG_CLASS_NAME + ".find(): file does not exist: " + path);
                  }
                  return null;
              }
  
              IEntityGroup group = newInstance(f);
              groupHolder = new GroupHolder(group, f.lastModified());
              cachePut(key, groupHolder);
          }
          return groupHolder.getGroup();
      }