Program: 77941
Project: 77941
Buggy source:
@FXML private void initialize(){
  tableBackground.setEditable(true);
  colBackgroundID.setCellValueFactory(new PropertyValueFactory<Background,Integer>("String_Node_Str"));
  colBackgroundName.setCellValueFactory(new PropertyValueFactory<Background,String>("String_Node_Str"));
  colBackgroundName.setCellFactory(TextFieldTableCell.forTableColumn());
  colBackgroundName.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Background,String>>(){
    @Override public void handle(    TableColumn.CellEditEvent<Background,String> t){
      try {
        Background p=((Background)t.getTableView().getItems().get(t.getTablePosition().getRow()));
        if (t.getNewValue().compareTo("String_Node_Str") != 0) {
          p.setName(t.getNewValue());
          bservice.edit(p);
        }
 else {
          refreshTablePosition(pservice.getAllPositionsOfProfile(selectedProfile));
        }
      }
 catch (      ServiceException e) {
      }
    }
  }
);
  colBackgroundPath.setStyle("String_Node_Str");
  colBackgroundPath.setSortable(false);
  colBackgroundPath.setCellValueFactory(new PropertyValueFactory<Background,String>("String_Node_Str"));
  colBackgroundPath.setCellFactory(new Callback<TableColumn,TableCell>(){
    @Override public TableCell call(    TableColumn p){
      return new BackgroundImgCell(backgroundList,pservice);
    }
  }
);
  colBackgroundAction.setStyle("String_Node_Str");
  colBackgroundAction.setSortable(false);
  colBackgroundAction.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Background,Boolean>,ObservableValue<Boolean>>(){
    @Override public ObservableValue<Boolean> call(    TableColumn.CellDataFeatures<Background,Boolean> p){
      return new SimpleBooleanProperty(p.getValue() != null);
    }
  }
);
  colBackgroundAction.setCellFactory(new Callback<TableColumn<Background,Boolean>,TableCell<Background,Boolean>>(){
    @Override public TableCell<Background,Boolean> call(    TableColumn<Background,Boolean> p){
      return new BackgroundButtonCell(backgroundList,pservice,windowManager.getStage());
    }
  }
);
  categoryCombo.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Background.Category>(){
    @Override public void changed(    ObservableValue selected,    Background.Category oldCat,    Background.Category newCat){
      LOGGER.info("String_Node_Str" + newCat);
      selectedCategory=newCat;
      try {
        refreshTableBackground(bservice.getAllWithCategory(newCat.getId()));
      }
 catch (      ServiceException e) {
        LOGGER.error("String_Node_Str" + newCat.getId(),e);
      }
    }
  }
);
}

Fixed version (ground truth):
@FXML private void initialize(){
  tableBackground.setEditable(true);
  colBackgroundID.setCellValueFactory(new PropertyValueFactory<Background,Integer>("String_Node_Str"));
  colBackgroundName.setCellValueFactory(new PropertyValueFactory<Background,String>("String_Node_Str"));
  colBackgroundName.setCellFactory(TextFieldTableCell.forTableColumn());
  colBackgroundName.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<Background,String>>(){
    @Override public void handle(    TableColumn.CellEditEvent<Background,String> t){
      try {
        Background p=((Background)t.getTableView().getItems().get(t.getTablePosition().getRow()));
        if (t.getNewValue().compareTo("String_Node_Str") != 0) {
          p.setName(t.getNewValue());
          bservice.edit(p);
          refreshTableBackground(pservice.getAllBackgroundOfProfile(selectedProfile.getId()));
        }
 else {
          refreshTableBackground(pservice.getAllBackgroundOfProfile(selectedProfile.getId()));
        }
      }
 catch (      ServiceException e) {
        try {
          refreshTableBackground(pservice.getAllBackgroundOfProfile(selectedProfile.getId()));
        }
 catch (        ServiceException e1) {
          LOGGER.error("String_Node_Str",e1);
        }
      }
    }
  }
);
  colBackgroundPath.setStyle("String_Node_Str");
  colBackgroundPath.setSortable(false);
  colBackgroundPath.setCellValueFactory(new PropertyValueFactory<Background,String>("String_Node_Str"));
  colBackgroundPath.setCellFactory(new Callback<TableColumn,TableCell>(){
    @Override public TableCell call(    TableColumn p){
      return new BackgroundImgCell(backgroundList,bservice);
    }
  }
);
  colBackgroundAction.setStyle("String_Node_Str");
  colBackgroundAction.setSortable(false);
  colBackgroundAction.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Background,Boolean>,ObservableValue<Boolean>>(){
    @Override public ObservableValue<Boolean> call(    TableColumn.CellDataFeatures<Background,Boolean> p){
      return new SimpleBooleanProperty(p.getValue() != null);
    }
  }
);
  colBackgroundAction.setCellFactory(new Callback<TableColumn<Background,Boolean>,TableCell<Background,Boolean>>(){
    @Override public TableCell<Background,Boolean> call(    TableColumn<Background,Boolean> p){
      return new BackgroundButtonCell(backgroundList,bservice,windowManager.getStage());
    }
  }
);
  categoryCombo.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Background.Category>(){
    @Override public void changed(    ObservableValue selected,    Background.Category oldCat,    Background.Category newCat){
      LOGGER.info("String_Node_Str" + newCat);
      selectedCategory=newCat;
      try {
        refreshTableBackground(bservice.getAllWithCategory(newCat.getId()));
      }
 catch (      ServiceException e) {
        LOGGER.error("String_Node_Str" + newCat.getId(),e);
      }
    }
  }
);
}