docs: protected void doRetrieveMatchingFiles(String fullPattern, File dir, Set<File> result) throws IOException {
          File[] dirContents = dir.listFiles();
          if (dirContents == null) {
              return;
          }
          for (File content : dirContents) {
              String currPath = content.getAbsolutePath().replace(File.separator, "/");
              if (content.isDirectory() && getPathMatcher().matchStart(fullPattern, currPath + "/")) {
                  if (content.canRead()) {
                      doRetrieveMatchingFiles(fullPattern, content, result);
                  }
              }
              if (getPathMatcher().match(fullPattern, currPath)) {
                  result.add(content);
              }
          }
      }