Program: 61790
Project: 61790
Buggy source:
private void fontAddChars(FontTag ft,Set<Integer> selChars,String selFont){
  FontTag f=(FontTag)mainPanel.tagTree.getCurrentTreeItem();
  SWF swf=ft.getSwf();
  String oldchars=f.getCharacters(swf.tags);
  for (  int ic : selChars) {
    char c=(char)ic;
    if (oldchars.indexOf((int)c) == -1) {
      Font font=new Font(selFont,f.getFontStyle(),1024);
      if (!font.canDisplay(c)) {
        View.showMessageDialog(null,translate("String_Node_Str").replace("String_Node_Str","String_Node_Str" + c),translate("String_Node_Str"),JOptionPane.ERROR_MESSAGE);
        return;
      }
    }
  }
  String[] yesno=new String[]{translate("String_Node_Str"),translate("String_Node_Str"),translate("String_Node_Str"),translate("String_Node_Str")};
  boolean yestoall=false;
  boolean notoall=false;
  for (  int ic : selChars) {
    char c=(char)ic;
    if (oldchars.indexOf((int)c) > -1) {
      int opt;
      if (!(yestoall || notoall)) {
        opt=View.showOptionDialog(null,translate("String_Node_Str").replace("String_Node_Str","String_Node_Str" + c),translate("String_Node_Str"),JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null,yesno,translate("String_Node_Str"));
        if (opt == 2) {
          yestoall=true;
        }
        if (opt == 3) {
          notoall=true;
        }
      }
      if (yestoall) {
        opt=0;
      }
 else       if (notoall) {
        opt=1;
      }
 else {
        opt=1;
      }
      if (opt == 1) {
        continue;
      }
    }
    f.addCharacter(c,fontSelection.getSelectedItem().toString());
    oldchars+=c;
  }
  int fontId=ft.getFontId();
  if (updateTextsCheckBox.isSelected()) {
    for (    Tag tag : swf.tags) {
      if (tag instanceof TextTag) {
        TextTag textTag=(TextTag)tag;
        if (textTag.getFontIds().contains(fontId)) {
          String text=textTag.getFormattedText();
          mainPanel.saveText(textTag,text);
        }
      }
    }
  }
  SWF.clearImageCache();
}

Fixed version (ground truth):
private void fontAddChars(FontTag ft,Set<Integer> selChars,String selFont){
  FontTag f=(FontTag)mainPanel.tagTree.getCurrentTreeItem();
  SWF swf=ft.getSwf();
  String oldchars=f.getCharacters(swf.tags);
  for (  int ic : selChars) {
    char c=(char)ic;
    if (oldchars.indexOf((int)c) == -1) {
      Font font=new Font(selFont,f.getFontStyle(),1024);
      if (!font.canDisplay(c)) {
        View.showMessageDialog(null,translate("String_Node_Str").replace("String_Node_Str","String_Node_Str" + c),translate("String_Node_Str"),JOptionPane.ERROR_MESSAGE);
        return;
      }
    }
  }
  String[] yesno=new String[]{translate("String_Node_Str"),translate("String_Node_Str"),translate("String_Node_Str"),translate("String_Node_Str")};
  boolean yestoall=false;
  boolean notoall=false;
  for (  int ic : selChars) {
    char c=(char)ic;
    if (oldchars.indexOf((int)c) > -1) {
      int opt;
      if (!(yestoall || notoall)) {
        opt=View.showOptionDialog(null,translate("String_Node_Str").replace("String_Node_Str","String_Node_Str" + c),translate("String_Node_Str"),JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null,yesno,translate("String_Node_Str"));
        if (opt == 2) {
          yestoall=true;
        }
        if (opt == 3) {
          notoall=true;
        }
      }
      if (yestoall) {
        opt=0;
      }
 else       if (notoall) {
        opt=1;
      }
 else {
        opt=1;
      }
      if (opt == 1) {
        continue;
      }
    }
    f.addCharacter(c,fontSelection.getSelectedItem().toString());
    oldchars+=c;
  }
  int fontId=ft.getFontId();
  if (updateTextsCheckBox.isSelected()) {
    for (    Tag tag : swf.tags) {
      if (tag instanceof TextTag) {
        TextTag textTag=(TextTag)tag;
        if (textTag.getFontIds().contains(fontId)) {
          String text=textTag.getFormattedText();
          mainPanel.saveText(textTag,text);
        }
      }
    }
  }
  ft.setModified(true);
  SWF.clearImageCache();
}