Program: 7087
Project: 7087
Buggy source:
private Set<FileInfo> resolveFiles(List<String> files,boolean serveOnly){
  if (files != null) {
    Set<FileInfo> resolvedFiles=new LinkedHashSet<FileInfo>();
    for (    String f : files) {
      boolean isPatch=f.startsWith("String_Node_Str");
      if (isPatch) {
        String[] tokens=f.split("String_Node_Str",2);
        f=tokens[1].trim();
      }
      if (f.startsWith("String_Node_Str") || f.startsWith("String_Node_Str")) {
        resolvedFiles.add(new FileInfo(f,-1,false,false));
      }
 else {
        File file=basePath != null ? new File(basePath,f) : new File(f);
        File testFile=file.getAbsoluteFile();
        File dir=testFile.getParentFile().getAbsoluteFile();
        final String pattern=file.getName();
        String[] filteredFiles=dir.list(new GlobFilenameFilter(pattern,GlobCompiler.DEFAULT_MASK | GlobCompiler.CASE_INSENSITIVE_MASK));
        if (filteredFiles == null) {
          System.err.println("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
          System.exit(1);
        }
        Arrays.sort(filteredFiles,String.CASE_INSENSITIVE_ORDER);
        for (        String filteredFile : filteredFiles) {
          String resolvedFile=pathResolver.resolvePath(dir.getAbsolutePath().replaceAll("String_Node_Str","String_Node_Str") + "String_Node_Str" + filteredFile.replaceAll("String_Node_Str","String_Node_Str"));
          resolvedFiles.add(new FileInfo(resolvedFile,file.lastModified(),isPatch,serveOnly));
        }
      }
    }
    return resolvedFiles;
  }
  return Collections.emptySet();
}

Fixed version (ground truth):
private Set<FileInfo> resolveFiles(List<String> files,boolean serveOnly){
  if (files != null) {
    Set<FileInfo> resolvedFiles=new LinkedHashSet<FileInfo>();
    for (    String f : files) {
      boolean isPatch=f.startsWith("String_Node_Str");
      if (isPatch) {
        String[] tokens=f.split("String_Node_Str",2);
        f=tokens[1].trim();
      }
      if (f.startsWith("String_Node_Str") || f.startsWith("String_Node_Str")) {
        resolvedFiles.add(new FileInfo(f,-1,false,false));
      }
 else {
        File file=basePath != null ? new File(basePath,f) : new File(f);
        File testFile=file.getAbsoluteFile();
        File dir=testFile.getParentFile().getAbsoluteFile();
        final String pattern=file.getName();
        String[] filteredFiles=dir.list(new GlobFilenameFilter(pattern,GlobCompiler.DEFAULT_MASK | GlobCompiler.CASE_INSENSITIVE_MASK));
        if (filteredFiles == null) {
          System.err.println("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
          System.exit(1);
        }
        Arrays.sort(filteredFiles,String.CASE_INSENSITIVE_ORDER);
        for (        String filteredFile : filteredFiles) {
          String resolvedFilePath=pathResolver.resolvePath(dir.getAbsolutePath().replaceAll("String_Node_Str","String_Node_Str") + "String_Node_Str" + filteredFile.replaceAll("String_Node_Str","String_Node_Str"));
          File resolvedFile=new File(resolvedFilePath);
          resolvedFiles.add(new FileInfo(resolvedFilePath,resolvedFile.lastModified(),isPatch,serveOnly));
        }
      }
    }
    return resolvedFiles;
  }
  return Collections.emptySet();
}