Program: 166559
Project: 166559
Buggy source:
/** 
 * Generate a random hierarchy, backup then restore it.  Check for equality between the origin hierarchy and restored one.
 */
@Test public void test1() throws IOException, ParseException {
  File rootFolder=createRandomHierarchie();
  File targetLocalRemoteFolder=Files.createTempDirectory("String_Node_Str").toFile();
  File restoreFolder=new File(rootFolder.getParent(),rootFolder.getName() + "String_Node_Str");
  File configFile=Files.createTempFile("String_Node_Str","String_Node_Str").toFile();
  String config="String_Node_Str";
  config+="String_Node_Str" + "String_Node_Str";
  config+="String_Node_Str" + "String_Node_Str" + targetLocalRemoteFolder.getAbsolutePath();
  config+="String_Node_Str" + "String_Node_Str" + targetLocalRemoteFolder.getAbsolutePath() + File.separator+ "String_Node_Str";
  config+="String_Node_Str" + "String_Node_Str" + targetLocalRemoteFolder.getAbsolutePath() + File.separator+ "String_Node_Str";
  Files.write(configFile.toPath(),config.getBytes(),StandardOpenOption.CREATE);
  System.out.println("String_Node_Str" + rootFolder.getAbsolutePath());
  System.out.println("String_Node_Str" + targetLocalRemoteFolder.getAbsolutePath());
  String[] args=new String[]{"String_Node_Str","String_Node_Str",rootFolder.getAbsolutePath(),"String_Node_Str","String_Node_Str","String_Node_Str",configFile.getAbsolutePath()};
  Cloudsync.main(args);
  restoreFolder.mkdir();
  args=new String[]{"String_Node_Str","String_Node_Str",restoreFolder.getAbsolutePath(),"String_Node_Str","String_Node_Str","String_Node_Str",configFile.getAbsolutePath()};
  Cloudsync.main(args);
  assertTrue(hierarchieEquals(rootFolder,restoreFolder));
  FileUtils.deleteDirectory(rootFolder);
}

Fixed version (ground truth):
/** 
 * Generate a random hierarchy, backup then restore it.  Check for equality between the origin hierarchy and restored one.
 */
@Test public void test1() throws IOException, ParseException {
  File rootFolder=createRandomHierarchie();
  File targetLocalRemoteFolder=Files.createTempDirectory("String_Node_Str").toFile();
  File restoreFolder=new File(rootFolder.getParent(),rootFolder.getName() + "String_Node_Str");
  File configFile=Files.createTempFile("String_Node_Str","String_Node_Str").toFile();
  String targetLocalRemoteFolderPath=FilesystemHelper.fixPathSeparators(targetLocalRemoteFolder.getAbsolutePath());
  String config="String_Node_Str";
  config+="String_Node_Str" + "String_Node_Str";
  config+="String_Node_Str" + "String_Node_Str" + targetLocalRemoteFolderPath;
  config+="String_Node_Str" + "String_Node_Str" + targetLocalRemoteFolderPath + File.separator+ "String_Node_Str";
  config+="String_Node_Str" + "String_Node_Str" + targetLocalRemoteFolderPath + File.separator+ "String_Node_Str";
  Files.write(configFile.toPath(),config.getBytes(),StandardOpenOption.CREATE);
  System.out.println("String_Node_Str" + rootFolder.getAbsolutePath());
  System.out.println("String_Node_Str" + targetLocalRemoteFolder.getAbsolutePath());
  String[] args=new String[]{"String_Node_Str","String_Node_Str",rootFolder.getAbsolutePath(),"String_Node_Str","String_Node_Str","String_Node_Str",configFile.getAbsolutePath()};
  Cloudsync.main(args);
  restoreFolder.mkdir();
  args=new String[]{"String_Node_Str","String_Node_Str",restoreFolder.getAbsolutePath(),"String_Node_Str","String_Node_Str","String_Node_Str",configFile.getAbsolutePath()};
  Cloudsync.main(args);
  assertTrue(hierarchieEquals(rootFolder,restoreFolder));
  FileUtils.deleteDirectory(rootFolder);
}