Program: 36548
Project: 36548
Buggy source:
@Override public void init(){
  out_sel=outputs.create(widget.id,"String_Node_Str",MetadataGroup.class,null);
  out_sel_met=outputs.create(widget.id,"String_Node_Str",List.class,EMPTY_LIST);
  in_items=inputs.create("String_Node_Str",List.class,EMPTY_LIST,this::setItems);
  root.getChildren().add(table.getRoot());
  setAnchors(table.getRoot(),0d);
  table.setFixedCellSize(GUI.font.getValue().getSize() + 5);
  table.getSelectionModel().setSelectionMode(MULTIPLE);
  table.searchSetColumn(VALUE);
  d(maintain(orient,table.nodeOrientationProperty()));
  d(maintain(zeropad,table.zeropadIndex));
  d(maintain(orig_index,table.showOriginalIndex));
  d(maintain(show_header,table.headerVisible));
  d(maintain(show_footer,table.footerVisible));
  table.setkeyNameColMapper(name -> "String_Node_Str".equals(name) ? name : MetadataGroup.Field.valueOfEnumString(name).toString());
  table.setColumnStateFacory(f -> {
    double w=f == VALUE ? 250 : 70;
    return new ColumnInfo(f.toString(),f.ordinal(),f.isCommon(),w);
  }
);
  table.setColumnFactory(f -> {
    Metadata.Field mf=fieldFilter.getValue();
    TableColumn<MetadataGroup,?> c=new TableColumn(f.toString(mf));
    c.setCellValueFactory(cf -> cf.getValue() == null ? null : new PojoV(cf.getValue().getField(f)));
    Pos a=f.getType(mf).equals(String.class) ? CENTER_LEFT : CENTER_RIGHT;
    c.setCellFactory(f == AVG_RATING ? (Callback)App.ratingCell.getValue() : f == W_RATING ? (Callback)new NumberRatingCellFactory() : (Callback)col -> {
      TableCell cel=table.buildDefaultCell(f);
      cel.setAlignment(a);
      return cel;
    }
);
    return c;
  }
);
  App.ratingCell.addListener((o,ov,nv) -> table.getColumn(AVG_RATING).ifPresent(c -> c.setCellFactory((Callback)nv)));
  table.getDefaultColumnInfo();
  table.setRowFactory(tbl -> new ImprovedTableRow<MetadataGroup>().styleRuleAdd("String_Node_Str",mg -> Player.playingtem.get().getField(fieldFilter.getValue()).equals(mg.getValue())).onLeftDoubleClick((row,e) -> playSelected()).onRightSingleClick((row,e) -> {
    if (!row.isSelected())     tbl.getSelectionModel().clearAndSelect(row.getIndex());
    contxt_menu.show(this,(TableView)table,e);
  }
));
  d(Player.playingtem.onChange(o -> table.updateStyleRules()));
  Menu m=(Menu)table.columnVisibleMenu.getItems().stream().filter(i -> i.getText().equals("String_Node_Str")).findFirst().get();
  Stream.of(Field.values()).map(f -> new SelectionMenuItem(f.toStringEnum(),false){
{
      this.setOnMouseClicked(() -> {
        if (!selected.get()) {
          m.getItems().forEach(mi -> ((SelectionMenuItem)mi).selected.set(false));
          selected.set(true);
          fieldFilter.setNapplyValue(f);
        }
      }
);
    }
  }
).forEach(m.getItems()::add);
  table.columnVisibleMenu.addEventHandler(WINDOW_SHOWN,e -> m.getItems().forEach(mi -> ((SelectionMenuItem)mi).selected.set(fieldFilter.getValue().toStringEnum().equals(mi.getText()))));
  table.setOnKeyPressed(e -> {
    if (e.getCode() == ENTER)     playSelected();
 else     if (e.getCode() == ESCAPE)     table.getSelectionModel().clearSelection();
  }
);
  table.setOnDragDetected(e -> {
    if (e.getButton() == PRIMARY && !table.getSelectedItems().isEmpty() && table.isRowFull(table.getRowS(e.getSceneX(),e.getSceneY()))) {
      Dragboard db=table.startDragAndDrop(COPY);
      DragUtil.setItemList(filerListToSelectedNsort(),db,true);
    }
    e.consume();
  }
);
  table.setColumnResizePolicy(resize -> {
    FilteredTable<MetadataGroup,MetadataGroup.Field> t=(FilteredTable)resize.getTable();
    boolean b=UNCONSTRAINED_RESIZE_POLICY.call(resize);
    t.getColumn(ColumnField.INDEX).ifPresent(i -> i.setPrefWidth(t.calculateIndexColumnWidth()));
    t.getColumn(VALUE).ifPresent(c -> {
      double Σw=t.getColumns().stream().filter(TableColumn::isVisible).mapToDouble(TableColumn::getWidth).sum();
      double itemsHeight=(t.getItems().size() + 1) * t.getFixedCellSize();
      double scrollbar=itemsHeight < t.getHeight() ? 0 : 15;
      c.setPrefWidth(t.getWidth() - (scrollbar + Σw - c.getWidth()));
    }
);
    return b;
  }
);
  table.getSelectionModel().selectedItemProperty().addListener((o,ov,nv) -> out_sel.setValue(nv));
  EventStreams.changesOf(table.getSelectedItems()).reduceSuccessions((a,b) -> b,ofMillis(60)).subscribe(c -> {
    if (!sel_lock)     out_sel_met.setValue(filerList(in_items.getValue(),true,false));
  }
);
  table.getSelectionModel().selectedItemProperty().addListener((o,ov,nv) -> {
    if (!sel_lock)     sel_last=nv == null ? "String_Node_Str" : nv.getField().toS(nv.getValue(),"String_Node_Str");
  }
);
  table.setOnScroll(Event::consume);
}

Fixed version (ground truth):
@Override public void init(){
  out_sel=outputs.create(widget.id,"String_Node_Str",MetadataGroup.class,null);
  out_sel_met=outputs.create(widget.id,"String_Node_Str",List.class,EMPTY_LIST);
  in_items=inputs.create("String_Node_Str",List.class,EMPTY_LIST,this::setItems);
  root.getChildren().add(table.getRoot());
  setAnchors(table.getRoot(),0d);
  table.setFixedCellSize(GUI.font.getValue().getSize() + 5);
  table.getSelectionModel().setSelectionMode(MULTIPLE);
  table.searchSetColumn(VALUE);
  d(maintain(orient,table.nodeOrientationProperty()));
  d(maintain(zeropad,table.zeropadIndex));
  d(maintain(orig_index,table.showOriginalIndex));
  d(maintain(show_header,table.headerVisible));
  d(maintain(show_footer,table.footerVisible));
  table.setkeyNameColMapper(name -> "String_Node_Str".equals(name) ? name : MetadataGroup.Field.valueOfEnumString(name).toString());
  table.setColumnStateFacory(f -> {
    double w=f == VALUE ? 250 : 70;
    return new ColumnInfo(f.toString(),f.ordinal(),f.isCommon(),w);
  }
);
  table.setColumnFactory(f -> {
    Metadata.Field mf=fieldFilter.getValue();
    TableColumn<MetadataGroup,?> c=new TableColumn(f.toString(mf));
    c.setCellValueFactory(cf -> cf.getValue() == null ? null : new PojoV(cf.getValue().getField(f)));
    Pos a=f.getType(mf).equals(String.class) ? CENTER_LEFT : CENTER_RIGHT;
    c.setCellFactory(f == AVG_RATING ? (Callback)App.ratingCell.getValue() : f == W_RATING ? (Callback)new NumberRatingCellFactory() : (Callback)col -> {
      TableCell cel=table.buildDefaultCell(f);
      cel.setAlignment(a);
      return cel;
    }
);
    return c;
  }
);
  App.ratingCell.addListener((o,ov,nv) -> table.getColumn(AVG_RATING).ifPresent(c -> c.setCellFactory((Callback)nv)));
  table.getDefaultColumnInfo();
  table.setRowFactory(tbl -> new ImprovedTableRow<MetadataGroup>().styleRuleAdd("String_Node_Str",mg -> Player.playingtem.get().getField(fieldFilter.getValue()).equals(mg.getValue())).onLeftDoubleClick((row,e) -> playSelected()).onRightSingleClick((row,e) -> {
    if (!row.isSelected())     tbl.getSelectionModel().clearAndSelect(row.getIndex());
    contxt_menu.show(this,(TableView)table,e);
  }
));
  d(Player.playingtem.onChange(o -> table.updateStyleRules()));
  Menu m=(Menu)table.columnVisibleMenu.getItems().stream().filter(i -> i.getText().equals("String_Node_Str")).findFirst().get();
  Stream.of(Field.values()).sorted(by(f -> f.name())).map(f -> new SelectionMenuItem(f.toStringEnum(),false){
{
      this.setOnMouseClicked(() -> {
        if (!selected.get()) {
          m.getItems().forEach(mi -> ((SelectionMenuItem)mi).selected.set(false));
          selected.set(true);
          fieldFilter.setNapplyValue(f);
        }
      }
);
    }
  }
).forEach(m.getItems()::add);
  table.columnVisibleMenu.addEventHandler(WINDOW_SHOWN,e -> m.getItems().forEach(mi -> ((SelectionMenuItem)mi).selected.set(fieldFilter.getValue().toStringEnum().equals(mi.getText()))));
  table.setOnKeyPressed(e -> {
    if (e.getCode() == ENTER)     playSelected();
 else     if (e.getCode() == ESCAPE)     table.getSelectionModel().clearSelection();
  }
);
  table.setOnDragDetected(e -> {
    if (e.getButton() == PRIMARY && !table.getSelectedItems().isEmpty() && table.isRowFull(table.getRowS(e.getSceneX(),e.getSceneY()))) {
      Dragboard db=table.startDragAndDrop(COPY);
      DragUtil.setItemList(filerListToSelectedNsort(),db,true);
    }
    e.consume();
  }
);
  table.setColumnResizePolicy(resize -> {
    FilteredTable<MetadataGroup,MetadataGroup.Field> t=(FilteredTable)resize.getTable();
    boolean b=UNCONSTRAINED_RESIZE_POLICY.call(resize);
    t.getColumn(ColumnField.INDEX).ifPresent(i -> i.setPrefWidth(t.calculateIndexColumnWidth()));
    t.getColumn(VALUE).ifPresent(c -> {
      double Σw=t.getColumns().stream().filter(TableColumn::isVisible).mapToDouble(TableColumn::getWidth).sum();
      double itemsHeight=(t.getItems().size() + 1) * t.getFixedCellSize();
      double scrollbar=itemsHeight < t.getHeight() ? 0 : 15;
      c.setPrefWidth(t.getWidth() - (scrollbar + Σw - c.getWidth()));
    }
);
    return b;
  }
);
  table.getSelectionModel().selectedItemProperty().addListener((o,ov,nv) -> out_sel.setValue(nv));
  EventStreams.changesOf(table.getSelectedItems()).reduceSuccessions((a,b) -> b,ofMillis(60)).subscribe(c -> {
    if (!sel_lock)     out_sel_met.setValue(filerList(in_items.getValue(),true,false));
  }
);
  table.getSelectionModel().selectedItemProperty().addListener((o,ov,nv) -> {
    if (!sel_lock)     sel_last=nv == null ? "String_Node_Str" : nv.getField().toS(nv.getValue(),"String_Node_Str");
  }
);
  table.setOnScroll(Event::consume);
}