Program: 53149
Project: 53149
Buggy source:
public FlightPlot(){
  preferences=Preferences.userRoot().node(appName);
  mainFrame=new JFrame(appNameAndVersion);
  mainFrame.setContentPane(mainPanel);
  mainFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  mainFrame.addWindowListener(new WindowAdapter(){
    @Override public void windowClosing(    WindowEvent e){
      onQuit();
    }
  }
);
  mainFrame.pack();
  createMenuBar();
  java.util.List<String> processors=new ArrayList<String>(processorsTypesList.getProcessorsList());
  Collections.sort(processors);
  addProcessorDialog=new AddProcessorDialog(processors.toArray(new String[processors.size()]));
  addProcessorDialog.pack();
  fieldsListDialog=new FieldsListDialog(new Runnable(){
    @Override public void run(){
      StringBuilder fieldsValue=new StringBuilder();
      for (      String field : fieldsListDialog.getSelectedFields()) {
        if (fieldsValue.length() > 0) {
          fieldsValue.append("String_Node_Str");
        }
        fieldsValue.append(field);
      }
      PlotProcessor processor=new Simple();
      ProcessorPreset pp=new ProcessorPreset("String_Node_Str",processor.getProcessorType(),processor.getDefaultParameters(),processor.getColors());
      pp.setParameter("String_Node_Str",fieldsValue.toString());
      processorsListModel.addElement(pp);
      processorsList.setSelectedValue(pp,true);
      processorsList.repaint();
      showAddProcessorDialog(true);
      processFile();
    }
  }
);
  logInfo=new LogInfo();
  addProcessorButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      showAddProcessorDialog(false);
    }
  }
);
  removeProcessorButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      removeSelectedProcessor();
    }
  }
);
  openLogButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      showOpenLogDialog();
    }
  }
);
  fieldsListButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      fieldsListDialog.setVisible(true);
    }
  }
);
  logInfoButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      logInfo.setVisible(true);
    }
  }
);
  processorsList.addListSelectionListener(new ListSelectionListener(){
    @Override public void valueChanged(    ListSelectionEvent e){
      showProcessorParameters();
    }
  }
);
  processorsList.addKeyListener(new KeyAdapter(){
    @Override public void keyTyped(    KeyEvent e){
      if (e.getKeyChar() == KeyEvent.VK_ENTER) {
        showAddProcessorDialog(true);
      }
    }
  }
);
  processorsList.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      if (e.getClickCount() > 1) {
        showAddProcessorDialog(true);
      }
    }
  }
);
  parameterChangedListener=new TableModelListener(){
    @Override public void tableChanged(    TableModelEvent e){
      if (e.getType() == TableModelEvent.UPDATE) {
        int row=e.getFirstRow();
        onParameterChanged(row);
      }
    }
  }
;
  parametersTableModel.addTableModelListener(parameterChangedListener);
  try {
    loadPreferences();
  }
 catch (  BackingStoreException e) {
    e.printStackTrace();
  }
  presetComboBox.setMaximumRowCount(20);
  presetComboBox.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      onPresetAction(e);
    }
  }
);
  updatePresetEdited(true);
  deletePresetButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      onDeletePreset();
    }
  }
);
  mainFrame.setVisible(true);
}

Fixed version (ground truth):
public FlightPlot(){
  preferences=Preferences.userRoot().node(appName);
  mainFrame=new JFrame(appNameAndVersion);
  mainFrame.setContentPane(mainPanel);
  mainFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  mainFrame.addWindowListener(new WindowAdapter(){
    @Override public void windowClosing(    WindowEvent e){
      onQuit();
    }
  }
);
  mainFrame.pack();
  createMenuBar();
  java.util.List<String> processors=new ArrayList<String>(processorsTypesList.getProcessorsList());
  Collections.sort(processors);
  addProcessorDialog=new AddProcessorDialog(processors.toArray(new String[processors.size()]));
  addProcessorDialog.pack();
  fieldsListDialog=new FieldsListDialog(new Runnable(){
    @Override public void run(){
      StringBuilder fieldsValue=new StringBuilder();
      for (      String field : fieldsListDialog.getSelectedFields()) {
        if (fieldsValue.length() > 0) {
          fieldsValue.append("String_Node_Str");
        }
        fieldsValue.append(field);
      }
      PlotProcessor processor=new Simple();
      processor.setParameters(Collections.<String,Object>singletonMap("String_Node_Str",fieldsValue.toString()));
      ProcessorPreset pp=new ProcessorPreset("String_Node_Str",processor.getProcessorType(),processor.getDefaultParameters(),null);
      updatePresetParameters(pp,null);
      processorsListModel.addElement(pp);
      processorsList.setSelectedValue(pp,true);
      processorsList.repaint();
      showAddProcessorDialog(true);
      processFile();
    }
  }
);
  logInfo=new LogInfo();
  addProcessorButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      showAddProcessorDialog(false);
    }
  }
);
  removeProcessorButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      removeSelectedProcessor();
    }
  }
);
  openLogButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      showOpenLogDialog();
    }
  }
);
  fieldsListButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      fieldsListDialog.setVisible(true);
    }
  }
);
  logInfoButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      logInfo.setVisible(true);
    }
  }
);
  processorsList.addListSelectionListener(new ListSelectionListener(){
    @Override public void valueChanged(    ListSelectionEvent e){
      showProcessorParameters();
    }
  }
);
  processorsList.addKeyListener(new KeyAdapter(){
    @Override public void keyTyped(    KeyEvent e){
      if (e.getKeyChar() == KeyEvent.VK_ENTER) {
        showAddProcessorDialog(true);
      }
    }
  }
);
  processorsList.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      if (e.getClickCount() > 1) {
        showAddProcessorDialog(true);
      }
    }
  }
);
  parameterChangedListener=new TableModelListener(){
    @Override public void tableChanged(    TableModelEvent e){
      if (e.getType() == TableModelEvent.UPDATE) {
        int row=e.getFirstRow();
        onParameterChanged(row);
      }
    }
  }
;
  parametersTableModel.addTableModelListener(parameterChangedListener);
  try {
    loadPreferences();
  }
 catch (  BackingStoreException e) {
    e.printStackTrace();
  }
  presetComboBox.setMaximumRowCount(20);
  presetComboBox.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      onPresetAction(e);
    }
  }
);
  updatePresetEdited(true);
  deletePresetButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      onDeletePreset();
    }
  }
);
  mainFrame.setVisible(true);
}