Program: 47288
Project: 47288
Buggy source:
public JComponent build(){
  Locale locale=new Locale(configuration.getLanguage());
  ComponentOrientation orientation=ComponentOrientation.getOrientation(locale);
  String colSpec=FormLayoutUtil.getColSpec(COL_SPEC,orientation);
  FormLayout layout=new FormLayout(colSpec,ROW_SPEC);
  PanelBuilder builder=new PanelBuilder(layout);
  builder.setBorder(Borders.DLU4_BORDER);
  builder.setOpaque(true);
  CellConstraints cc=new CellConstraints();
  JComponent cmp=builder.addSeparator(Messages.getString("String_Node_Str"),FormLayoutUtil.flip(cc.xyw(1,1,9),colSpec,orientation));
  cmp=(JComponent)cmp.getComponent(0);
  cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));
  CustomJButton credEdit=new CustomJButton(Messages.getString("String_Node_Str"));
  credEdit.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      JPanel tPanel=new JPanel(new BorderLayout());
      String cPath=(String)PMS.getConfiguration().getCustomProperty("String_Node_Str");
      if (StringUtils.isEmpty(cPath)) {
        cPath=(String)PMS.getConfiguration().getProfileDirectory() + File.separator + "String_Node_Str";
        PMS.getConfiguration().setCustomProperty("String_Node_Str",cPath);
      }
      final File cred=new File(cPath);
      final boolean newFile=!cred.exists();
      final JTextArea textArea=new JTextArea();
      textArea.setFont(new Font("String_Node_Str",Font.PLAIN,12));
      JScrollPane scrollPane=new JScrollPane(textArea);
      scrollPane.setPreferredSize(new java.awt.Dimension(900,450));
      if (!newFile) {
        try {
          FileInputStream fis=new FileInputStream(cred);
          BufferedReader in=new BufferedReader(new InputStreamReader(fis));
          String line;
          StringBuilder sb=new StringBuilder();
          while ((line=in.readLine()) != null) {
            sb.append(line);
            sb.append("String_Node_Str");
          }
          textArea.setText(sb.toString());
          fis.close();
        }
 catch (        Exception e1) {
          return;
        }
      }
 else {
        StringBuilder sb=new StringBuilder();
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        textArea.setText(sb.toString());
      }
      tPanel.add(scrollPane,BorderLayout.NORTH);
      Object[] options={Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str")};
      if (JOptionPane.showOptionDialog((JFrame)(SwingUtilities.getWindowAncestor((Component)PMS.get().getFrame())),tPanel,Messages.getString("String_Node_Str"),JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE,null,options,null) == JOptionPane.OK_OPTION) {
        String text=textArea.getText();
        try {
          FileOutputStream fos=new FileOutputStream(cred);
          fos.write(text.getBytes());
          fos.flush();
          fos.close();
          PMS.getConfiguration().reload();
        }
 catch (        Exception e1) {
          JOptionPane.showMessageDialog((JFrame)(SwingUtilities.getWindowAncestor((Component)PMS.get().getFrame())),Messages.getString("String_Node_Str") + e1.toString());
        }
      }
    }
  }
);
  builder.add(credEdit,FormLayoutUtil.flip(cc.xy(1,3),colSpec,orientation));
  cmp=builder.addSeparator(Messages.getString("String_Node_Str"),FormLayoutUtil.flip(cc.xyw(1,5,9),colSpec,orientation));
  cmp=(JComponent)cmp.getComponent(0);
  cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));
  refresh(table,cols);
  table.setRowHeight(22);
  table.setIntercellSpacing(new Dimension(8,0));
  TableColumn nameColumn=table.getColumnModel().getColumn(0);
  nameColumn.setMinWidth(70);
  TableColumn versionColumn=table.getColumnModel().getColumn(2);
  versionColumn.setPreferredWidth(45);
  TableColumn ratingColumn=table.getColumnModel().getColumn(2);
  ratingColumn.setPreferredWidth(45);
  TableColumn authorColumn=table.getColumnModel().getColumn(3);
  authorColumn.setPreferredWidth(45);
  builder.add(table,FormLayoutUtil.flip(cc.xyw(1,7,9),colSpec,orientation));
  CustomJButton add=new CustomJButton(Messages.getString("String_Node_Str"));
  builder.add(add,FormLayoutUtil.flip(cc.xy(1,9),colSpec,orientation));
  add.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      addEditDialog(table,cols,-1);
    }
  }
);
  CustomJButton edit=new CustomJButton(Messages.getString("String_Node_Str"));
  builder.add(edit,FormLayoutUtil.flip(cc.xy(3,9),colSpec,orientation));
  edit.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      addEditDialog(table,cols,table.getSelectedRow());
    }
  }
);
  CustomJButton del=new CustomJButton(Messages.getString("String_Node_Str"));
  builder.add(del,FormLayoutUtil.flip(cc.xy(5,9),colSpec,orientation));
  del.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int[] rows=table.getSelectedRows();
      if (rows.length > 0) {
        int n=JOptionPane.showConfirmDialog((JFrame)(SwingUtilities.getWindowAncestor((Component)PMS.get().getFrame())),Messages.getString("String_Node_Str"),"String_Node_Str",JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
          for (int i=0; i < rows.length; i++) {
            String key=(String)table.getValueAt(rows[i],0);
            if (StringUtils.isNotEmpty((String)table.getValueAt(rows[i],1))) {
              key=key + "String_Node_Str" + (String)table.getValueAt(rows[i],1);
            }
            cred.clearProperty(key);
          }
        }
        try {
          cred.save();
        }
 catch (        ConfigurationException e1) {
          LOGGER.warn("String_Node_Str" + e1);
        }
        refresh(table,cols);
      }
    }
  }
);
  JPanel panel=builder.getPanel();
  JScrollPane scrollPane=new JScrollPane(panel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  scrollPane.setBorder(BorderFactory.createEmptyBorder());
  return scrollPane;
}

Fixed version (ground truth):
public JComponent build(){
  Locale locale=new Locale(configuration.getLanguage());
  ComponentOrientation orientation=ComponentOrientation.getOrientation(locale);
  String colSpec=FormLayoutUtil.getColSpec(COL_SPEC,orientation);
  FormLayout layout=new FormLayout(colSpec,ROW_SPEC);
  PanelBuilder builder=new PanelBuilder(layout);
  builder.setBorder(Borders.DLU4_BORDER);
  builder.setOpaque(true);
  CellConstraints cc=new CellConstraints();
  JComponent cmp=builder.addSeparator(Messages.getString("String_Node_Str"),FormLayoutUtil.flip(cc.xyw(1,1,9),colSpec,orientation));
  cmp=(JComponent)cmp.getComponent(0);
  cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));
  CustomJButton credEdit=new CustomJButton(Messages.getString("String_Node_Str"));
  credEdit.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      JPanel tPanel=new JPanel(new BorderLayout());
      String cPath=(String)PMS.getConfiguration().getCustomProperty("String_Node_Str");
      if (StringUtils.isEmpty(cPath)) {
        cPath=(String)PMS.getConfiguration().getProfileDirectory() + File.separator + "String_Node_Str";
        PMS.getConfiguration().setCustomProperty("String_Node_Str",cPath);
      }
      final File cred=new File(cPath);
      final boolean newFile=!cred.exists();
      final JTextArea textArea=new JTextArea();
      textArea.setFont(new Font("String_Node_Str",Font.PLAIN,12));
      JScrollPane scrollPane=new JScrollPane(textArea);
      scrollPane.setPreferredSize(new java.awt.Dimension(900,450));
      if (!newFile) {
        try {
          FileInputStream fis=new FileInputStream(cred);
          BufferedReader in=new BufferedReader(new InputStreamReader(fis));
          String line;
          StringBuilder sb=new StringBuilder();
          while ((line=in.readLine()) != null) {
            sb.append(line);
            sb.append("String_Node_Str");
          }
          textArea.setText(sb.toString());
          fis.close();
        }
 catch (        Exception e1) {
          return;
        }
      }
 else {
        StringBuilder sb=new StringBuilder();
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        textArea.setText(sb.toString());
      }
      tPanel.add(scrollPane,BorderLayout.NORTH);
      Object[] options={Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str")};
      if (JOptionPane.showOptionDialog((JFrame)(SwingUtilities.getWindowAncestor((Component)PMS.get().getFrame())),tPanel,Messages.getString("String_Node_Str"),JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE,null,options,null) == JOptionPane.OK_OPTION) {
        String text=textArea.getText();
        try {
          FileOutputStream fos=new FileOutputStream(cred);
          fos.write(text.getBytes());
          fos.flush();
          fos.close();
          PMS.getConfiguration().reload();
        }
 catch (        Exception e1) {
          JOptionPane.showMessageDialog((JFrame)(SwingUtilities.getWindowAncestor((Component)PMS.get().getFrame())),Messages.getString("String_Node_Str") + e1.toString());
        }
      }
    }
  }
);
  builder.add(credEdit,FormLayoutUtil.flip(cc.xy(1,3),colSpec,orientation));
  cmp=builder.addSeparator(Messages.getString("String_Node_Str"),FormLayoutUtil.flip(cc.xyw(1,5,9),colSpec,orientation));
  cmp=(JComponent)cmp.getComponent(0);
  cmp.setFont(cmp.getFont().deriveFont(Font.BOLD));
  table.setRowHeight(22);
  table.setIntercellSpacing(new Dimension(8,0));
  TableColumn nameColumn=table.getColumnModel().getColumn(0);
  nameColumn.setMinWidth(70);
  TableColumn versionColumn=table.getColumnModel().getColumn(2);
  versionColumn.setPreferredWidth(45);
  TableColumn ratingColumn=table.getColumnModel().getColumn(2);
  ratingColumn.setPreferredWidth(45);
  TableColumn authorColumn=table.getColumnModel().getColumn(3);
  authorColumn.setPreferredWidth(45);
  builder.add(table,FormLayoutUtil.flip(cc.xyw(1,7,9),colSpec,orientation));
  CustomJButton add=new CustomJButton(Messages.getString("String_Node_Str"));
  builder.add(add,FormLayoutUtil.flip(cc.xy(1,9),colSpec,orientation));
  add.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      addEditDialog(table,cols,-1);
    }
  }
);
  CustomJButton edit=new CustomJButton(Messages.getString("String_Node_Str"));
  builder.add(edit,FormLayoutUtil.flip(cc.xy(3,9),colSpec,orientation));
  edit.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      addEditDialog(table,cols,table.getSelectedRow());
    }
  }
);
  CustomJButton del=new CustomJButton(Messages.getString("String_Node_Str"));
  builder.add(del,FormLayoutUtil.flip(cc.xy(5,9),colSpec,orientation));
  del.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int[] rows=table.getSelectedRows();
      if (rows.length > 0) {
        int n=JOptionPane.showConfirmDialog((JFrame)(SwingUtilities.getWindowAncestor((Component)PMS.get().getFrame())),Messages.getString("String_Node_Str"),"String_Node_Str",JOptionPane.YES_NO_OPTION);
        if (n == JOptionPane.YES_OPTION) {
          for (int i=0; i < rows.length; i++) {
            String key=(String)table.getValueAt(rows[i],0);
            if (StringUtils.isNotEmpty((String)table.getValueAt(rows[i],1))) {
              key=key + "String_Node_Str" + (String)table.getValueAt(rows[i],1);
            }
            cred.clearProperty(key);
          }
        }
        try {
          cred.save();
        }
 catch (        ConfigurationException e1) {
          LOGGER.warn("String_Node_Str" + e1);
        }
        refresh(table,cols);
      }
    }
  }
);
  JPanel panel=builder.getPanel();
  JScrollPane scrollPane=new JScrollPane(panel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  scrollPane.setBorder(BorderFactory.createEmptyBorder());
  return scrollPane;
}