Program: 36572
Project: 36572
Buggy source:
/** 
 * Writes edited data to tag and reloads the data and refreshes gui. The result is new data from tag shown, allowing to confirm the changes really happened. If no items are loaded then this method is a no-op.
 */
@FXML public void write(){
  Validation v=validators.stream().filter(Validation::isInValid).findFirst().orElse(null);
  if (v != null) {
    PopOver p=new PopOver(new Text(v.text));
    p.show(PopOver.ScreenCentricPos.App_Center);
    return;
  }
  writing=true;
  showProgressWriting();
  MetadataWriter.use(metas,w -> {
    if ((boolean)TitleF.getUserData())     w.setTitle(TitleF.getText());
    if ((boolean)AlbumF.getUserData())     w.setAlbum(AlbumF.getText());
    if ((boolean)ArtistF.getUserData())     w.setArtist(ArtistF.getText());
    if ((boolean)AlbumArtistF.getUserData())     w.setAlbum_artist(AlbumArtistF.getText());
    if ((boolean)ComposerF.getUserData())     w.setComposer(ComposerF.getText());
    if ((boolean)PublisherF.getUserData())     w.setPublisher(PublisherF.getText());
    if ((boolean)TrackF.getUserData())     w.setTrack(TrackF.getText());
    if ((boolean)TracksTotalF.getUserData())     w.setTracks_total(TracksTotalF.getText());
    if ((boolean)DiscF.getUserData())     w.setDisc(DiscF.getText());
    if ((boolean)DiscsTotalF.getUserData())     w.setDiscs_total(DiscF.getText());
    if ((boolean)GenreF.getUserData())     w.setGenre(GenreF.getText());
    if ((boolean)CategoryF.getUserData())     w.setCategory(CategoryF.getText());
    if ((boolean)YearF.getUserData())     w.setYear(YearF.getText());
    if ((boolean)RatingF.getUserData())     w.setRatingPercent(RatingPF.getText());
    if ((boolean)PlaycountF.getUserData())     w.setPlaycount(PlaycountF.getText());
    if ((boolean)CommentF.getUserData())     w.setComment(CommentF.getText());
    if ((boolean)MoodF.getUserData())     w.setMood(MoodF.getText());
    ColorFPicker.setUserData(true);
    if ((boolean)ColorFPicker.getUserData() && ColorFPicker.getValue() != EMPTY_COLOR)     w.setColor(ColorFPicker.getValue());
    if ((boolean)ColorF.getUserData())     w.setCustom1(ColorF.getText());
    if ((boolean)LyricsA.getUserData())     w.setLyrics(LyricsA.getText());
    if ((boolean)CoverL.getUserData())     w.setCover(new_cover_file);
    if ((boolean)Custom4F.getUserData())     w.setCustom4(Custom4F.getText());
    if ((boolean)Custom5F.getUserData())     w.setCustom5(Custom5F.getText());
  }
,items -> {
    runLater(() -> {
      writing=false;
      populate(items);
      App.use(Notifier.class,s -> s.showTextNotification("String_Node_Str","String_Node_Str"));
    }
);
  }
);
}

Fixed version (ground truth):
/** 
 * Writes edited data to tag and reloads the data and refreshes gui. The result is new data from tag shown, allowing to confirm the changes really happened. If no items are loaded then this method is a no-op.
 */
@FXML public void write(){
  Validation v=validators.stream().filter(Validation::isInValid).findFirst().orElse(null);
  if (v != null) {
    PopOver p=new PopOver(new Text(v.text));
    p.show(PopOver.ScreenPos.App_Center);
    return;
  }
  writing=true;
  showProgressWriting();
  MetadataWriter.use(metas,w -> {
    if ((boolean)TitleF.getUserData())     w.setTitle(TitleF.getText());
    if ((boolean)AlbumF.getUserData())     w.setAlbum(AlbumF.getText());
    if ((boolean)ArtistF.getUserData())     w.setArtist(ArtistF.getText());
    if ((boolean)AlbumArtistF.getUserData())     w.setAlbum_artist(AlbumArtistF.getText());
    if ((boolean)ComposerF.getUserData())     w.setComposer(ComposerF.getText());
    if ((boolean)PublisherF.getUserData())     w.setPublisher(PublisherF.getText());
    if ((boolean)TrackF.getUserData())     w.setTrack(TrackF.getText());
    if ((boolean)TracksTotalF.getUserData())     w.setTracks_total(TracksTotalF.getText());
    if ((boolean)DiscF.getUserData())     w.setDisc(DiscF.getText());
    if ((boolean)DiscsTotalF.getUserData())     w.setDiscs_total(DiscF.getText());
    if ((boolean)GenreF.getUserData())     w.setGenre(GenreF.getText());
    if ((boolean)CategoryF.getUserData())     w.setCategory(CategoryF.getText());
    if ((boolean)YearF.getUserData())     w.setYear(YearF.getText());
    if ((boolean)RatingF.getUserData())     w.setRatingPercent(RatingPF.getText());
    if ((boolean)PlaycountF.getUserData())     w.setPlaycount(PlaycountF.getText());
    if ((boolean)CommentF.getUserData())     w.setComment(CommentF.getText());
    if ((boolean)MoodF.getUserData())     w.setMood(MoodF.getText());
    ColorFPicker.setUserData(true);
    if ((boolean)ColorFPicker.getUserData() && ColorFPicker.getValue() != EMPTY_COLOR)     w.setColor(ColorFPicker.getValue());
    if ((boolean)ColorF.getUserData())     w.setCustom1(ColorF.getText());
    if ((boolean)LyricsA.getUserData())     w.setLyrics(LyricsA.getText());
    if ((boolean)CoverL.getUserData())     w.setCover(new_cover_file);
    if ((boolean)Custom4F.getUserData())     w.setCustom4(Custom4F.getText());
    if ((boolean)Custom5F.getUserData())     w.setCustom5(Custom5F.getText());
  }
,items -> {
    runLater(() -> {
      writing=false;
      populate(items);
      App.use(Notifier.class,s -> s.showTextNotification("String_Node_Str","String_Node_Str"));
    }
);
  }
);
}