Program: 7083
Project: 7083
Buggy source:
public void checkFileSet(String fileSet,String browserId,PrintWriter writer){
  Collection<FileInfo> clientFileSet=gson.fromJson(fileSet,new TypeToken<Collection<FileInfo>>(){
  }
.getType());
  SlaveBrowser browser=capturedBrowsers.getBrowser(browserId);
  Set<FileInfo> browserFileSet=browser.getFileSet();
  Set<FileInfo> filesToRequest=new LinkedHashSet<FileInfo>();
  if (browserFileSet.isEmpty() || !clientFileSet.containsAll(browserFileSet)) {
    for (    FileInfo info : clientFileSet) {
      filesToRequest.add(info);
    }
  }
 else {
    Set<FileInfo> diff=new LinkedHashSet<FileInfo>(clientFileSet);
    diff.removeAll(browserFileSet);
    for (    FileInfo info : diff) {
      filesToRequest.add(info);
    }
    for (    FileInfo browserFileInfo : browserFileSet) {
      for (      FileInfo clientFileInfo : clientFileSet) {
        if (clientFileInfo.equals(browserFileInfo) && clientFileInfo.getTimestamp() > browserFileInfo.getTimestamp()) {
          filesToRequest.add(clientFileInfo);
          break;
        }
      }
    }
  }
  if (!filesToRequest.isEmpty()) {
    if (browser.getBrowserInfo().getName().contains("String_Node_Str") || browser.getBrowserInfo().getName().contains("String_Node_Str") || browser.getBrowserInfo().getName().contains("String_Node_Str")) {
      filesToRequest.clear();
      for (      FileInfo info : clientFileSet) {
        filesToRequest.add(info);
      }
    }
    Set<FileInfo> filteredFilesToRequest=filterServeOnlyFiles(clientFileSet,filesToRequest);
    writer.write(gson.toJson(filteredFilesToRequest));
  }
  writer.flush();
}

Fixed version (ground truth):
public void checkFileSet(String fileSet,String browserId,PrintWriter writer){
  Collection<FileInfo> clientFileSet=gson.fromJson(fileSet,new TypeToken<Collection<FileInfo>>(){
  }
.getType());
  SlaveBrowser browser=capturedBrowsers.getBrowser(browserId);
  Set<FileInfo> browserFileSet=browser.getFileSet();
  Set<FileInfo> filesToRequest=new LinkedHashSet<FileInfo>();
  if (browserFileSet.isEmpty() || !clientFileSet.containsAll(browserFileSet)) {
    for (    FileInfo info : clientFileSet) {
      filesToRequest.add(info);
    }
  }
 else {
    Set<FileInfo> diff=new LinkedHashSet<FileInfo>(clientFileSet);
    diff.removeAll(browserFileSet);
    for (    FileInfo info : diff) {
      filesToRequest.add(info);
    }
    for (    FileInfo browserFileInfo : browserFileSet) {
      for (      FileInfo clientFileInfo : clientFileSet) {
        if (clientFileInfo.equals(browserFileInfo) && clientFileInfo.getTimestamp() > browserFileInfo.getTimestamp()) {
          filesToRequest.add(clientFileInfo);
          break;
        }
      }
    }
  }
  if (!filesToRequest.isEmpty()) {
    if (browser.getBrowserInfo().getName().contains("String_Node_Str") || browser.getBrowserInfo().getName().contains("String_Node_Str") || browser.getBrowserInfo().getName().contains("String_Node_Str")) {
      filesToRequest.clear();
      for (      FileInfo info : clientFileSet) {
        filesToRequest.add(info);
      }
    }
    Set<FileInfo> filteredFilesToRequest=filterServeOnlyFiles(filesToRequest);
    writer.write(gson.toJson(filteredFilesToRequest));
  }
  writer.flush();
}