Program: 77923
Project: 77923
Buggy source:
@FXML private void initialize(){
  tableCategory.setEditable(true);
  colCategoryID.setCellValueFactory(new PropertyValueFactory<Background.Category,Integer>("String_Node_Str"));
  colCategoryName.setCellValueFactory(new PropertyValueFactory<Background.Category,String>("String_Node_Str"));
  colCategoryName.setCellFactory(TextFieldTableCell.forTableColumn());
  colCategoryName.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Background.Category,String>>(){
    @Override public void handle(    TableColumn.CellEditEvent<Background.Category,String> t){
      try {
        Background.Category p=((Background.Category)t.getTableView().getItems().get(t.getTablePosition().getRow()));
        if (t.getNewValue().compareTo("String_Node_Str") != 0) {
          p.setName(t.getNewValue());
          bservice.editCategory(p);
          refreshCategoryComboBox(pservice.getAllCategoryOfProfile(selectedProfile.getId()));
        }
 else {
          refreshTableCategory(pservice.getAllCategoryOfProfile(selectedProfile.getId()),bservice.getAllCategories());
        }
      }
 catch (      ServiceException e) {
        LOGGER.error("String_Node_Str",e);
      }
    }
  }
);
  colCategoryActivated.setStyle("String_Node_Str");
  colCategoryActivated.setSortable(false);
  colCategoryActivated.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Background.Category,Boolean>,ObservableValue<Boolean>>(){
    @Override public ObservableValue<Boolean> call(    TableColumn.CellDataFeatures<Background.Category,Boolean> p){
      return new SimpleBooleanProperty(p.getValue() != null);
    }
  }
);
  colCategoryActivated.setCellFactory(new Callback<TableColumn<Background.Category,Boolean>,TableCell<Background.Category,Boolean>>(){
    @Override public TableCell<Background.Category,Boolean> call(    TableColumn<Background.Category,Boolean> p){
      return new CategoryCheckboxCell(categoryListOfProfile,bservice,categoryList,selectedProfile);
    }
  }
);
  colCategoryAction.setStyle("String_Node_Str");
  colCategoryAction.setSortable(false);
  colCategoryAction.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Background.Category,Boolean>,ObservableValue<Boolean>>(){
    @Override public ObservableValue<Boolean> call(    TableColumn.CellDataFeatures<Background.Category,Boolean> p){
      return new SimpleBooleanProperty(p.getValue() != null);
    }
  }
);
  colCategoryAction.setCellFactory(new Callback<TableColumn<Background.Category,Boolean>,TableCell<Background.Category,Boolean>>(){
    @Override public TableCell<Background.Category,Boolean> call(    TableColumn<Background.Category,Boolean> p){
      return new CategoryButtonCell(categoryList,bservice,windowManager.getStage());
    }
  }
);
  tableCategory.getSelectionModel().selectedItemProperty().addListener((  ObservableValue obs,  Object oldSelection,  Object newSelection) -> {
    if (newSelection != null) {
      selectedCategory=(Background.Category)newSelection;
      LOGGER.info("String_Node_Str" + selectedCategory.getId());
      try {
        greenscreenBackgroundController.refreshTableBackground(bservice.getAllWithCategory(selectedCategory.getId()),selectedProfile,selectedCategory);
      }
 catch (      ServiceException e) {
        LOGGER.error("String_Node_Str" + selectedCategory.getId(),e);
      }
    }
  }
);
}

Fixed version (ground truth):
@FXML private void initialize(){
  tableCategory.setEditable(true);
  colCategoryID.setCellValueFactory(new PropertyValueFactory<Background.Category,Integer>("String_Node_Str"));
  colCategoryName.setCellValueFactory(new PropertyValueFactory<Background.Category,String>("String_Node_Str"));
  colCategoryName.setCellFactory(TextFieldTableCell.forTableColumn());
  colCategoryName.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Background.Category,String>>(){
    @Override public void handle(    TableColumn.CellEditEvent<Background.Category,String> t){
      try {
        Background.Category p=((Background.Category)t.getTableView().getItems().get(t.getTablePosition().getRow()));
        if (t.getNewValue().compareTo("String_Node_Str") != 0) {
          p.setName(t.getNewValue());
          bservice.editCategory(p);
          refreshCategoryComboBox(pservice.getAllCategoryOfProfile(selectedProfile.getId()));
        }
 else {
          refreshTableCategory(pservice.getAllCategoryOfProfile(selectedProfile.getId()),bservice.getAllCategories());
        }
      }
 catch (      ServiceException e) {
        LOGGER.error("String_Node_Str",e);
      }
    }
  }
);
  colCategoryActivated.setStyle("String_Node_Str");
  colCategoryActivated.setSortable(false);
  colCategoryActivated.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Background.Category,Boolean>,ObservableValue<Boolean>>(){
    @Override public ObservableValue<Boolean> call(    TableColumn.CellDataFeatures<Background.Category,Boolean> p){
      return new SimpleBooleanProperty(p.getValue() != null);
    }
  }
);
  colCategoryActivated.setCellFactory(new Callback<TableColumn<Background.Category,Boolean>,TableCell<Background.Category,Boolean>>(){
    @Override public TableCell<Background.Category,Boolean> call(    TableColumn<Background.Category,Boolean> p){
      return new CategoryCheckboxCell(categoryListOfProfile,bservice,categoryList,selectedProfile);
    }
  }
);
  colCategoryAction.setStyle("String_Node_Str");
  colCategoryAction.setSortable(false);
  colCategoryAction.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Background.Category,Boolean>,ObservableValue<Boolean>>(){
    @Override public ObservableValue<Boolean> call(    TableColumn.CellDataFeatures<Background.Category,Boolean> p){
      return new SimpleBooleanProperty(p.getValue() != null);
    }
  }
);
  colCategoryAction.setCellFactory(new Callback<TableColumn<Background.Category,Boolean>,TableCell<Background.Category,Boolean>>(){
    @Override public TableCell<Background.Category,Boolean> call(    TableColumn<Background.Category,Boolean> p){
      return new CategoryButtonCell(categoryListOfProfile,selectedProfile,categoryList,bservice,windowManager.getStage());
    }
  }
);
  tableCategory.getSelectionModel().selectedItemProperty().addListener((  ObservableValue obs,  Object oldSelection,  Object newSelection) -> {
    if (newSelection != null) {
      selectedCategory=(Background.Category)newSelection;
      LOGGER.info("String_Node_Str" + selectedCategory.getId());
      try {
        greenscreenBackgroundController.refreshTableBackground(bservice.getAllWithCategory(selectedCategory.getId()),selectedProfile,selectedCategory);
      }
 catch (      ServiceException e) {
        LOGGER.error("String_Node_Str" + selectedCategory.getId(),e);
      }
    }
  }
);
}