Program: 36605
Project: 36605
Buggy source:
@Override public void init(){
  table.setFixedCellSize(GUI.font.getValue().getSize() + 5);
  table.getSelectionModel().setSelectionMode(MULTIPLE);
  table.setColumnStateFacory(f -> {
    double w=f == PATH || f == TITLE ? 150 : 50;
    return new ColumnInfo(f.toString(),f.ordinal(),f.isCommon(),w);
  }
);
  table.setColumnFactory(f -> {
    TableColumn<Metadata,?> c=new TableColumn(f.toString());
    c.setCellValueFactory(f == RATING ? cf -> {
      if (cf.getValue() == null)       return null;
      String s=cf.getValue().getRatingPercentAsString();
      if (s.length() > 4)       s=s.substring(0,4);
      return new ReadOnlyObjectWrapper(s);
    }
 : cf -> {
      if (cf.getValue() == null)       return null;
      return new ReadOnlyObjectWrapper(cf.getValue().getField(f));
    }
);
    c.setCellValueFactory(cf -> {
      if (cf.getValue() == null)       return null;
      return new ReadOnlyObjectWrapper(cf.getValue().getField(f));
    }
);
    c.setCellFactory(f == RATING ? (Callback)App.ratingCell.getValue() : DEFAULT_ALIGNED_CELL_FACTORY(f.getType(),"String_Node_Str"));
    c.setUserData(f);
    if (f == Metadata.Field.TRACK || f == Metadata.Field.DISC || f == Metadata.Field.TRACKS_TOTAL || f == Metadata.Field.DISCS_TOTAL) {
      c.setComparator((Comparator)new Comparator<Integer>(){
        @Override public int compare(        Integer o1,        Integer o2){
          return Integer.compare(o1,o2);
        }
      }
);
    }
    return c;
  }
);
  App.ratingCell.addListener((o,ov,nv) -> table.getColumn(RATING).ifPresent(c -> c.setCellFactory((Callback)nv)));
  columnInfo=table.getDefaultColumnInfo();
  table.addEventHandler(MOUSE_CLICKED,e -> {
    if (table.isTableHeaderVisible() && e.getY() < table.getTableHeaderHeight())     return;
    if (e.getButton() == PRIMARY) {
      if (e.getClickCount() == 2) {
        Playlist p=new Playlist(listM(table.getItems(),Metadata::toPlaylistItem));
        PlaylistManager.playPlaylistFrom(p,table.getSelectionModel().getSelectedIndex());
      }
    }
 else     if (e.getButton() == SECONDARY) {
      double h=table.isTableHeaderVisible() ? e.getY() - table.getTableHeaderHeight() : e.getY();
      int i=(int)floor(h / table.getFixedCellSize());
      if (!table.getSelectionModel().isSelected(i))       table.getSelectionModel().clearAndSelect(i);
      contxt_menu.show(table,e);
      e.consume();
    }
  }
);
  table.setOnKeyReleased(e -> {
    if (e.getCode() == ENTER) {
      if (!table.getSelectionModel().isEmpty()) {
        Playlist p=new Playlist(listM(table.getItems(),Metadata::toPlaylistItem));
        PlaylistManager.playPlaylistFrom(p,table.getSelectionModel().getSelectedIndex());
      }
    }
 else     if (e.getCode() == DELETE)     DB.removeItems(table.getSelectedItems());
 else     if (e.getCode() == ESCAPE)     table.getSelectionModel().clearSelection();
  }
);
  table.setOnDragDetected(e -> {
    if (e.getButton() == PRIMARY && e.getY() > table.getFixedCellSize()) {
      Dragboard db=table.startDragAndDrop(TransferMode.COPY);
      DragUtil.setItemList(table.getSelectedItemsCopy(),db);
      e.consume();
    }
  }
);
  table.addEventFilter(MOUSE_PRESSED,consumeOnSecondaryButton);
  table.addEventFilter(MOUSE_RELEASED,consumeOnSecondaryButton);
  table.addEventFilter(ContextMenuEvent.ANY,Event::consume);
  table.setOnScroll(Event::consume);
  monitor2=Player.librarySelectedItemES.feedFrom(nonNullValuesOf(table.getSelectionModel().selectedItemProperty()));
  monitor3=Player.librarySelectedItemsES.feedFrom(changesOf(table.getSelectionModel().getSelectedItems()).map(i -> table.getSelectedItemsCopy()));
  taskInfo.setVisible(false);
  InfoTable<Metadata> infoL=new InfoTable(new Label(),table);
  infoL.textFactory=(all,list) -> {
    double d=list.stream().mapToDouble(Metadata::getLengthInMs).sum();
    return DEFAULT_TEXT_FACTORY.apply(all,list) + "String_Node_Str" + new FormattedDuration(d);
  }
;
  Region padding=new Region();
  HBox controls=new HBox(controlsBar,infoL.node,padding,taskInfo.message,taskInfo.progressIndicator);
  controls.setSpacing(7);
  controls.setAlignment(Pos.CENTER_LEFT);
  controls.setPadding(new Insets(0,5,0,0));
  HBox.setHgrow(padding,ALWAYS);
  addMenu.setText("String_Node_Str");
  remMenu.setText("String_Node_Str");
  Icons.setIcon(addMenu,FontAwesomeIconName.PLUS,"String_Node_Str","String_Node_Str");
  Icons.setIcon(remMenu,FontAwesomeIconName.MINUS,"String_Node_Str","String_Node_Str");
  content.getChildren().addAll(table.getRoot(),controls);
  VBox.setVgrow(table.getRoot(),ALWAYS);
}

Fixed version (ground truth):
@Override public void init(){
  table.setFixedCellSize(GUI.font.getValue().getSize() + 5);
  table.getSelectionModel().setSelectionMode(MULTIPLE);
  table.setColumnStateFacory(f -> {
    double w=f == PATH || f == TITLE ? 150 : 50;
    return new ColumnInfo(f.toString(),f.ordinal(),f.isCommon(),w);
  }
);
  table.setColumnFactory(f -> {
    TableColumn<Metadata,?> c=new TableColumn(f.toString());
    c.setCellValueFactory(f == RATING ? cf -> {
      if (cf.getValue() == null)       return null;
      String s=cf.getValue().getRatingPercentAsString();
      if (s.length() > 4)       s=s.substring(0,4);
      return new ReadOnlyObjectWrapper(s);
    }
 : cf -> {
      if (cf.getValue() == null)       return null;
      return new ReadOnlyObjectWrapper(cf.getValue().getField(f));
    }
);
    c.setCellValueFactory(cf -> {
      if (cf.getValue() == null)       return null;
      return new ReadOnlyObjectWrapper(cf.getValue().getField(f));
    }
);
    c.setCellFactory(f == RATING ? (Callback)App.ratingCell.getValue() : DEFAULT_ALIGNED_CELL_FACTORY(f.getType(),"String_Node_Str"));
    c.setUserData(f);
    if (f == Metadata.Field.TRACK || f == Metadata.Field.DISC || f == Metadata.Field.TRACKS_TOTAL || f == Metadata.Field.DISCS_TOTAL) {
      c.setComparator((Comparator)new Comparator<Integer>(){
        @Override public int compare(        Integer o1,        Integer o2){
          return Integer.compare(o1,o2);
        }
      }
);
    }
    return c;
  }
);
  App.ratingCell.addListener((o,ov,nv) -> table.getColumn(RATING).ifPresent(c -> c.setCellFactory((Callback)nv)));
  columnInfo=table.getDefaultColumnInfo();
  table.addEventHandler(MOUSE_CLICKED,e -> {
    if (table.isTableHeaderVisible() && e.getY() < table.getTableHeaderHeight())     return;
    if (e.getButton() == PRIMARY) {
      if (e.getClickCount() == 2) {
        Playlist p=new Playlist(listM(table.getItems(),Metadata::toPlaylistItem));
        PlaylistManager.playPlaylistFrom(p,table.getSelectionModel().getSelectedIndex());
      }
    }
 else     if (e.getButton() == SECONDARY) {
      double h=table.isTableHeaderVisible() ? e.getY() - table.getTableHeaderHeight() : e.getY();
      int i=(int)floor(h / table.getFixedCellSize());
      if (!table.getSelectionModel().isSelected(i))       table.getSelectionModel().clearAndSelect(i);
      contxt_menu.show(table,e);
      e.consume();
    }
  }
);
  table.setOnKeyReleased(e -> {
    if (e.getCode() == ENTER) {
      if (!table.getSelectionModel().isEmpty()) {
        Playlist p=new Playlist(listM(table.getItems(),Metadata::toPlaylistItem));
        PlaylistManager.playPlaylistFrom(p,table.getSelectionModel().getSelectedIndex());
      }
    }
 else     if (e.getCode() == DELETE)     DB.removeItems(table.getSelectedItems());
 else     if (e.getCode() == ESCAPE)     table.getSelectionModel().clearSelection();
  }
);
  table.setOnDragDetected(e -> {
    if (e.getButton() == PRIMARY && e.getY() > table.getFixedCellSize()) {
      Dragboard db=table.startDragAndDrop(TransferMode.COPY);
      DragUtil.setItemList(table.getSelectedItemsCopy(),db);
      e.consume();
    }
  }
);
  table.setOnDragOver(e -> {
    e.acceptTransferModes(COPY);
    e.consume();
  }
);
  table.setOnDragDropped(e -> addNeditDo(DragUtil.getAudioItems(e).stream().map(Item::getFile),false));
  table.addEventFilter(MOUSE_PRESSED,consumeOnSecondaryButton);
  table.addEventFilter(MOUSE_RELEASED,consumeOnSecondaryButton);
  table.addEventFilter(ContextMenuEvent.ANY,Event::consume);
  table.setOnScroll(Event::consume);
  d2=Player.librarySelectedItemES.feedFrom(nonNullValuesOf(table.getSelectionModel().selectedItemProperty()));
  d3=Player.librarySelectedItemsES.feedFrom(changesOf(table.getSelectionModel().getSelectedItems()).map(i -> table.getSelectedItemsCopy()));
  taskInfo.setVisible(false);
  InfoTable<Metadata> infoL=new InfoTable(new Label(),table);
  infoL.textFactory=(all,list) -> {
    double d=list.stream().mapToDouble(Metadata::getLengthInMs).sum();
    return DEFAULT_TEXT_FACTORY.apply(all,list) + "String_Node_Str" + new FormattedDuration(d);
  }
;
  Region padding=new Region();
  HBox controls=new HBox(controlsBar,infoL.node,padding,taskInfo.message,taskInfo.progressIndicator);
  controls.setSpacing(7);
  controls.setAlignment(Pos.CENTER_LEFT);
  controls.setPadding(new Insets(0,5,0,0));
  HBox.setHgrow(padding,ALWAYS);
  addMenu.setText("String_Node_Str");
  remMenu.setText("String_Node_Str");
  Icons.setIcon(addMenu,FontAwesomeIconName.PLUS,"String_Node_Str","String_Node_Str");
  Icons.setIcon(remMenu,FontAwesomeIconName.MINUS,"String_Node_Str","String_Node_Str");
  content.getChildren().addAll(table.getRoot(),controls);
  VBox.setVgrow(table.getRoot(),ALWAYS);
}