Program: 62434
Project: 62434
Buggy source:
private Tab createTab(){
  Tab tab=new Tab();
  tab.setOnClosed(event -> {
    this.keepClosedPath(tab);
  }
);
  MenuItem menuItem0=new MenuItem("String_Node_Str");
  menuItem0.setOnAction(actionEvent -> {
    this.keepClosedPath(tab);
    tabPane.getTabs().remove(tab);
  }
);
  MenuItem menuItem1=new MenuItem("String_Node_Str");
  menuItem1.setOnAction(actionEvent -> {
    ObservableList<Tab> tabs=tabPane.getTabs();
    if (tabs.size() > 0)     tabs.forEach(this::keepClosedPath);
    tabs.clear();
  }
);
  MenuItem menuItem2=new MenuItem("String_Node_Str");
  menuItem2.setOnAction(actionEvent -> {
    List<Tab> blackList=new ArrayList<>();
    blackList.addAll(tabPane.getTabs());
    blackList.remove(tab);
    tabPane.getTabs().removeAll(blackList);
    if (blackList.size() > 0)     blackList.forEach(this::keepClosedPath);
  }
);
  MenuItem menuItem3=new MenuItem("String_Node_Str");
  menuItem3.setOnAction(actionEvent -> {
    ObservableList<Tab> tabs=tabPane.getTabs();
    Predicate<Tab> filter=pTab -> !((Label)pTab.getGraphic()).getText().contains("String_Node_Str");
    List<Tab> collect=tabs.stream().filter(filter).collect(Collectors.toList());
    if (collect.size() > 0)     collect.forEach(this::keepClosedPath);
    tabs.removeAll(collect);
  }
);
  MenuItem menuItem4=new MenuItem("String_Node_Str");
  menuItem4.setOnAction(actionEvent -> {
    if (tabPane.getSelectionModel().isSelected(tabPane.getTabs().size() - 1))     tabPane.getSelectionModel().selectFirst();
 else     tabPane.getSelectionModel().selectNext();
  }
);
  MenuItem menuItem5=new MenuItem("String_Node_Str");
  menuItem5.setOnAction(actionEvent -> {
    if (tabPane.getSelectionModel().isSelected(0))     tabPane.getSelectionModel().selectLast();
 else     tabPane.getSelectionModel().selectPrevious();
  }
);
  MenuItem menuItem6=new MenuItem("String_Node_Str");
  menuItem6.setOnAction(actionEvent -> {
    if (closedPaths.size() > 0) {
      int index=closedPaths.size() - 1;
      closedPaths.get(index).ifPresent(this::addTab);
      closedPaths.remove(index);
    }
  }
);
  MenuItem menuItem7=new MenuItem("String_Node_Str");
  menuItem7.setOnAction(event -> {
    current.currentPathParent().ifPresent(path -> {
      getHostServices().showDocument(path.toUri().toString());
    }
);
  }
);
  MenuItem menuItem8=new MenuItem("String_Node_Str");
  menuItem8.setOnAction(this::newDoc);
  ContextMenu contextMenu=new ContextMenu();
  contextMenu.getItems().addAll(menuItem0,menuItem1,menuItem2,menuItem3,new SeparatorMenuItem(),menuItem4,menuItem5,menuItem6,new SeparatorMenuItem(),menuItem7,menuItem8);
  tab.contextMenuProperty().setValue(contextMenu);
  Label label=new Label();
  tab.setGraphic(label);
  label.setOnMouseClicked(mouseEvent -> {
    if (mouseEvent.getButton().equals(MouseButton.SECONDARY)) {
      tabPane.getSelectionModel().select(tab);
    }
 else     if (mouseEvent.getClickCount() > 1) {
      if (splitPane.getDividerPositions()[0] > 0.1)       splitPane.setDividerPositions(0,1);
 else       splitPane.setDividerPositions(0.18,0.60);
    }
  }
);
  return tab;
}

Fixed version (ground truth):
private Tab createTab(){
  Tab tab=new Tab();
  tab.setOnClosed(event -> {
    this.keepClosedPath(tab);
  }
);
  MenuItem menuItem0=new MenuItem("String_Node_Str");
  menuItem0.setOnAction(actionEvent -> {
    this.keepClosedPath(tab);
    tabPane.getTabs().remove(tab);
  }
);
  MenuItem menuItem1=new MenuItem("String_Node_Str");
  menuItem1.setOnAction(actionEvent -> {
    ObservableList<Tab> tabs=tabPane.getTabs();
    if (tabs.size() > 0)     tabs.forEach(this::keepClosedPath);
    tabs.clear();
  }
);
  MenuItem menuItem2=new MenuItem("String_Node_Str");
  menuItem2.setOnAction(actionEvent -> {
    List<Tab> blackList=new ArrayList<>();
    blackList.addAll(tabPane.getTabs());
    blackList.remove(tab);
    tabPane.getTabs().removeAll(blackList);
    if (blackList.size() > 0)     blackList.forEach(this::keepClosedPath);
  }
);
  MenuItem menuItem3=new MenuItem("String_Node_Str");
  menuItem3.setOnAction(actionEvent -> {
    ObservableList<Tab> tabs=tabPane.getTabs();
    Predicate<Tab> filter=pTab -> !((Label)pTab.getGraphic()).getText().contains("String_Node_Str");
    List<Tab> collect=tabs.stream().filter(filter).collect(Collectors.toList());
    if (collect.size() > 0)     collect.forEach(this::keepClosedPath);
    tabs.removeAll(collect);
  }
);
  MenuItem menuItem4=new MenuItem("String_Node_Str");
  menuItem4.setOnAction(actionEvent -> {
    if (tabPane.getSelectionModel().isSelected(tabPane.getTabs().size() - 1))     tabPane.getSelectionModel().selectFirst();
 else     tabPane.getSelectionModel().selectNext();
  }
);
  MenuItem menuItem5=new MenuItem("String_Node_Str");
  menuItem5.setOnAction(actionEvent -> {
    if (tabPane.getSelectionModel().isSelected(0))     tabPane.getSelectionModel().selectLast();
 else     tabPane.getSelectionModel().selectPrevious();
  }
);
  MenuItem menuItem6=new MenuItem("String_Node_Str");
  menuItem6.setOnAction(actionEvent -> {
    if (closedPaths.size() > 0) {
      int index=closedPaths.size() - 1;
      closedPaths.get(index).filter(pathResolver::isAsciidoc).ifPresent(this::addTab);
      closedPaths.get(index).filter(pathResolver::isImage).ifPresent(this::addImageTab);
      closedPaths.remove(index);
    }
  }
);
  MenuItem menuItem7=new MenuItem("String_Node_Str");
  menuItem7.setOnAction(event -> {
    current.currentPathParent().ifPresent(path -> {
      getHostServices().showDocument(path.toUri().toString());
    }
);
  }
);
  MenuItem menuItem8=new MenuItem("String_Node_Str");
  menuItem8.setOnAction(this::newDoc);
  ContextMenu contextMenu=new ContextMenu();
  contextMenu.getItems().addAll(menuItem0,menuItem1,menuItem2,menuItem3,new SeparatorMenuItem(),menuItem4,menuItem5,menuItem6,new SeparatorMenuItem(),menuItem7,menuItem8);
  tab.contextMenuProperty().setValue(contextMenu);
  Label label=new Label();
  tab.setGraphic(label);
  label.setOnMouseClicked(mouseEvent -> {
    if (mouseEvent.getButton().equals(MouseButton.SECONDARY)) {
      tabPane.getSelectionModel().select(tab);
    }
 else     if (mouseEvent.getClickCount() > 1) {
      if (splitPane.getDividerPositions()[0] > 0.1)       splitPane.setDividerPositions(0,1);
 else       splitPane.setDividerPositions(0.18,0.60);
    }
  }
);
  return tab;
}