Program: 62351
Project: 62351
Buggy source:
public void gitbookToAsciibook(Path gitbookDir,Path asciibookDir){
  PathMatcher markdownMatcher=FileSystems.getDefault().getPathMatcher("String_Node_Str");
  IOHelper.copyDirectory(gitbookDir,asciibookDir);
  Stream<Path> gitStream=IOHelper.find(asciibookDir,Integer.MAX_VALUE,(path,attr) -> markdownMatcher.matches(path));
  List<Path> markdownFileList=gitStream.collect(Collectors.toList());
  List<String> markdownFileNameList=markdownFileList.stream().map(e -> e.getFileName().toString()).collect(Collectors.toList());
  for (  Path path : markdownFileList) {
    this.markdownToAsciidoc(IOHelper.readFile(path),result -> {
      String fileName=path.getFileName().toString();
      fileName=fileName.replaceAll("String_Node_Str","String_Node_Str");
      for (      String name : markdownFileNameList) {
        result=result.replace(name,name.replaceAll("String_Node_Str","String_Node_Str"));
      }
      LinkedList<String> stringList=new LinkedList<String>(Arrays.asList(result.split("String_Node_Str")));
      LinkedList<String> stringLists=new LinkedList<String>(Arrays.asList(result.split("String_Node_Str")));
      for (int i=0; i < stringList.size(); i++) {
        String s=stringList.get(i);
        if (s.matches("String_Node_Str")) {
          stringLists.set(i,"String_Node_Str" + s);
        }
      }
      if ("String_Node_Str".equalsIgnoreCase(path.getFileName().toString())) {
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        List<String> collect=stringLists.stream().filter(item -> !item.trim().matches("String_Node_Str")).collect(Collectors.toList());
        stringLists=new LinkedList<String>(collect);
      }
      result=String.join("String_Node_Str",stringLists);
      IOHelper.writeToFile(path.getParent().resolve(fileName),result,CREATE,TRUNCATE_EXISTING,WRITE);
    }
);
  }
  markdownFileList.forEach(IOHelper::deleteIfExists);
  directoryService.changeWorkigDir(asciibookDir);
  threadService.runActionLater(() -> {
    tabService.addTab(asciibookDir.resolve("String_Node_Str"));
  }
);
}

Fixed version (ground truth):
public void gitbookToAsciibook(Path gitbookDir,Path asciibookDir){
  PathMatcher markdownMatcher=FileSystems.getDefault().getPathMatcher("String_Node_Str");
  IOHelper.copyDirectory(gitbookDir,asciibookDir);
  Stream<Path> gitStream=IOHelper.find(asciibookDir,Integer.MAX_VALUE,(path,attr) -> markdownMatcher.matches(path));
  List<Path> markdownFileList=gitStream.collect(Collectors.toList());
  List<String> markdownFileNameList=markdownFileList.stream().map(e -> e.getFileName().toString()).collect(Collectors.toList());
  for (  Path path : markdownFileList) {
    this.markdownToAsciidoc(IOHelper.readFile(path),result -> {
      String fileName=path.getFileName().toString();
      fileName=fileName.replaceAll("String_Node_Str","String_Node_Str");
      for (      String name : markdownFileNameList) {
        result=result.replace(name,name.replaceAll("String_Node_Str","String_Node_Str"));
      }
      LinkedList<String> stringList=new LinkedList<String>(Arrays.asList(result.split("String_Node_Str")));
      LinkedList<String> stringLists=new LinkedList<String>(Arrays.asList(result.split("String_Node_Str")));
      for (int i=0; i < stringList.size(); i++) {
        String s=stringList.get(i);
        if (s.matches("String_Node_Str")) {
          stringLists.set(i,"String_Node_Str" + s);
        }
      }
      if ("String_Node_Str".equalsIgnoreCase(path.getFileName().toString())) {
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        stringLists.addFirst("String_Node_Str");
        List<String> collect=stringLists.stream().filter(item -> !item.trim().matches("String_Node_Str")).collect(Collectors.toList());
        stringLists=new LinkedList<String>(collect);
      }
      result=String.join("String_Node_Str",stringLists);
      IOHelper.writeToFile(path.getParent().resolve(fileName),result,CREATE,TRUNCATE_EXISTING,WRITE);
    }
);
  }
  markdownFileList.forEach(IOHelper::deleteIfExists);
  threadService.runActionLater(() -> {
    tabService.addTab(asciibookDir.resolve("String_Node_Str"));
  }
);
  directoryService.changeWorkigDir(asciibookDir);
}