tds/src/main/java/thredds/util/filesource/ChainedFileSource.java
public File getFile(String path) {
    File file;
    for (DescendantFileSource curLocator : chain) {
      file = curLocator.getFile(path);
      if (file != null)
        return file;
    }
    return null;
  }
public File getFile(String path) {
    File file;
    for (DescendantFileSource curLocator : chain) {
      file = curLocator.getFile(path);
      if (file != null)
        return file;
    }
    return null;
  }
This implementation requires a relative path. The relative path may
not start with "../" or once "normalized" start with "../". Here
"normalized" means that "./" and "path/.." segments are removed,
e.g., "dir1/../../dir2" once normalized would be "../dir2".

@param path the relative path to the desired File.
@return the File represented by the given relative path or null if the path is null or the File it represents does not exist.