Program: 7110
Project: 7110
Buggy source:
private void uploadFileSet(){
  Map<String,String> fileSetParams=new LinkedHashMap<String,String>();
  fileSetParams.put("String_Node_Str",params.get("String_Node_Str"));
  fileSetParams.put("String_Node_Str",gson.toJson(fileSet));
  String postResult=server.post(baseUrl + "String_Node_Str",fileSetParams);
  if (postResult.length() > 0) {
    Collection<String> filesToUpload=gson.fromJson(postResult,new TypeToken<Collection<String>>(){
    }
.getType());
    boolean shouldReset=sameFiles(filesToUpload,fileSet);
    if (shouldReset) {
      JsonCommand cmd=new JsonCommand(CommandType.RESET,EMPTY_ARRAYLIST);
      Map<String,String> resetParams=new LinkedHashMap<String,String>();
      resetParams.put("String_Node_Str",params.get("String_Node_Str"));
      resetParams.put("String_Node_Str",gson.toJson(cmd));
      server.post(baseUrl + "String_Node_Str",resetParams);
      server.fetch(baseUrl + "String_Node_Str" + params.get("String_Node_Str"));
    }
    List<FileData> filesData=new ArrayList<FileData>();
    List<String> filesSrc=new ArrayList<String>();
    Set<String> finalFilesToUpload=new LinkedHashSet<String>();
    for (    String file : filesToUpload) {
      finalFilesToUpload.addAll(filter.resolveFilesDeps(file));
    }
    for (    String file : finalFilesToUpload) {
      String readFile=null;
      long timestamp=-1;
      if (file.startsWith("String_Node_Str") || file.startsWith("String_Node_Str")) {
        filesSrc.add(file);
        readFile="String_Node_Str";
      }
 else {
        filesSrc.add("String_Node_Str" + file);
        readFile=filter.filterFile(readFile(file),!shouldReset);
        timestamp=getTimestamp(file);
      }
      filesData.add(new FileData(file,readFile,timestamp));
    }
    Map<String,String> loadFileParams=new LinkedHashMap<String,String>();
    loadFileParams.put("String_Node_Str",params.get("String_Node_Str"));
    loadFileParams.put("String_Node_Str",gson.toJson(filesData));
    server.post(baseUrl + "String_Node_Str",loadFileParams);
    JsonCommand cmd=new JsonCommand(CommandType.LOADTEST,filesSrc);
    loadFileParams.put("String_Node_Str",gson.toJson(cmd));
    server.post(baseUrl + "String_Node_Str",loadFileParams);
    String jsonResponse=server.fetch(baseUrl + "String_Node_Str" + params.get("String_Node_Str"));
    StreamMessage message=gson.fromJson(jsonResponse,StreamMessage.class);
    Response response=message.getResponse();
    LoadedFiles loadedFiles=gson.fromJson(response.getResponse(),LoadedFiles.class);
    String loadStatus=loadedFiles.getMessage();
    if (loadStatus.length() > 0) {
      System.err.println(loadStatus);
    }
  }
}

Fixed version (ground truth):
private void uploadFileSet(){
  Map<String,String> fileSetParams=new LinkedHashMap<String,String>();
  Map<String,List<String>> patchMap=new HashMap<String,List<String>>();
  List<FileInfo> patchLessFileSet=createPatchLessFileSet(fileSet,patchMap);
  fileSetParams.put("String_Node_Str",params.get("String_Node_Str"));
  fileSetParams.put("String_Node_Str",gson.toJson(patchLessFileSet));
  String postResult=server.post(baseUrl + "String_Node_Str",fileSetParams);
  if (postResult.length() > 0) {
    Collection<String> filesToUpload=gson.fromJson(postResult,new TypeToken<Collection<String>>(){
    }
.getType());
    boolean shouldReset=sameFiles(filesToUpload,fileSet);
    if (shouldReset) {
      JsonCommand cmd=new JsonCommand(CommandType.RESET,EMPTY_ARRAYLIST);
      Map<String,String> resetParams=new LinkedHashMap<String,String>();
      resetParams.put("String_Node_Str",params.get("String_Node_Str"));
      resetParams.put("String_Node_Str",gson.toJson(cmd));
      server.post(baseUrl + "String_Node_Str",resetParams);
      server.fetch(baseUrl + "String_Node_Str" + params.get("String_Node_Str"));
    }
    List<FileData> filesData=new ArrayList<FileData>();
    List<String> filesSrc=new ArrayList<String>();
    Set<String> finalFilesToUpload=new LinkedHashSet<String>();
    for (    String file : filesToUpload) {
      finalFilesToUpload.addAll(filter.resolveFilesDeps(file));
    }
    for (    String file : finalFilesToUpload) {
      StringBuilder fileContent=new StringBuilder();
      long timestamp=-1;
      if (file.startsWith("String_Node_Str") || file.startsWith("String_Node_Str")) {
        filesSrc.add(file);
        fileContent.append("String_Node_Str");
      }
 else {
        filesSrc.add("String_Node_Str" + file);
        fileContent.append(filter.filterFile(readFile(file),!shouldReset));
        List<String> patches=patchMap.get(file);
        if (patches != null) {
          for (          String patch : patches) {
            fileContent.append(readFile(patch));
          }
        }
        timestamp=getTimestamp(file);
      }
      filesData.add(new FileData(file,fileContent.toString(),timestamp));
    }
    Map<String,String> loadFileParams=new LinkedHashMap<String,String>();
    loadFileParams.put("String_Node_Str",params.get("String_Node_Str"));
    loadFileParams.put("String_Node_Str",gson.toJson(filesData));
    server.post(baseUrl + "String_Node_Str",loadFileParams);
    JsonCommand cmd=new JsonCommand(CommandType.LOADTEST,filesSrc);
    loadFileParams.put("String_Node_Str",gson.toJson(cmd));
    server.post(baseUrl + "String_Node_Str",loadFileParams);
    String jsonResponse=server.fetch(baseUrl + "String_Node_Str" + params.get("String_Node_Str"));
    StreamMessage message=gson.fromJson(jsonResponse,StreamMessage.class);
    Response response=message.getResponse();
    LoadedFiles loadedFiles=gson.fromJson(response.getResponse(),LoadedFiles.class);
    String loadStatus=loadedFiles.getMessage();
    if (loadStatus.length() > 0) {
      System.err.println(loadStatus);
    }
  }
}