Program: 42723
Project: 42723
Buggy source:
/** 
 * Constructor for the configuration Panel, this is were all of the gui elements  for the configuration panel are created 
 */
public ConfigurationPanel(){
  addComponent(new JLabel("String_Node_Str"),0,0,.1,.1);
  JLabel currentConfigFileLabel=new JLabel(RobobuggyConfigFile.getConfigFile());
  addComponent(currentConfigFileLabel,.3,0,.4,.1);
  JButton configFileSelectBtn=new JButton("String_Node_Str");
  configFileSelectBtn.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      final JFileChooser fc=new JFileChooser();
      fc.setCurrentDirectory(new File(RobobuggyConfigFile.getConfigFile()));
      int returnVal=fc.showOpenDialog(null);
      if (returnVal == fc.APPROVE_OPTION) {
        File selectedFile=fc.getSelectedFile();
        RobobuggyConfigFile.setConfigFile(selectedFile.getAbsolutePath());
        currentConfigFileLabel.setText(RobobuggyConfigFile.getConfigFile());
        RobobuggyMainFile.resetSystem();
      }
 else {
        new RobobuggyLogicNotification("String_Node_Str",RobobuggyMessageLevel.WARNING);
      }
    }
  }
);
  addComponent(configFileSelectBtn,.1,0,.2,.1);
  JButton saveConfigButton=new JButton("String_Node_Str");
  saveConfigButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      RobobuggyConfigFile.saveConfigFile();
    }
  }
);
  addComponent(saveConfigButton,.9,0,.1,.1);
  JButton loadConfigButton=new JButton("String_Node_Str");
  loadConfigButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      RobobuggyConfigFile.loadConfigFile();
    }
  }
);
  addComponent(loadConfigButton,.8,0,.1,.1);
  addComponent(new JLabel("String_Node_Str"),0,.1,.1,.1);
  JButton wayPointFileSelectBtn=new JButton("String_Node_Str");
  addComponent(wayPointFileSelectBtn,.1,.1,.2,.1);
  JLabel currentWayPointLable=new JLabel(RobobuggyConfigFile.getWaypointSourceLogFile());
  addComponent(currentWayPointLable,.3,.1,.4,.1);
  wayPointFileSelectBtn.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      final JFileChooser fc=new JFileChooser();
      fc.setCurrentDirectory(new File(RobobuggyConfigFile.getConfigFile()));
      int returnVal=fc.showOpenDialog(null);
      if (returnVal == fc.APPROVE_OPTION) {
        File selectedFile=fc.getSelectedFile();
        RobobuggyConfigFile.setWayPointSourceLogFile(selectedFile.getAbsolutePath());
        currentWayPointLable.setText(RobobuggyConfigFile.getWaypointSourceLogFile());
      }
 else {
        new RobobuggyLogicNotification("String_Node_Str",RobobuggyMessageLevel.WARNING);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.2,.1,.1);
  JButton playBackSlectFileButton=new JButton("String_Node_Str");
  addComponent(playBackSlectFileButton,.1,.2,.2,.1);
  JLabel currentPlayBackSourceFileLabel=new JLabel(RobobuggyConfigFile.getPlayBackSourceFile());
  addComponent(currentPlayBackSourceFileLabel,.3,.2,.4,.1);
  playBackSlectFileButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      final JFileChooser fc=new JFileChooser();
      fc.setCurrentDirectory(new File(RobobuggyConfigFile.getConfigFile()));
      int returnVal=fc.showOpenDialog(null);
      if (returnVal == fc.APPROVE_OPTION) {
        File selectedFile=fc.getSelectedFile();
        RobobuggyConfigFile.setPlayBackSourceFile(selectedFile.getAbsolutePath());
        currentPlayBackSourceFileLabel.setText(RobobuggyConfigFile.getPlayBackSourceFile());
      }
 else {
        new RobobuggyLogicNotification("String_Node_Str",RobobuggyMessageLevel.WARNING);
      }
    }
  }
);
  String[] portOptions=getPortOptions();
  addComponent(new JLabel("String_Node_Str"),0,.4,.1,.05);
  JComboBox imuPortSelector=new JComboBox(portOptions);
  imuPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getComPortImu(),portOptions));
  addComponent(imuPortSelector,.1,.4,.2,.05);
  imuPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=imuPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setComPortImu(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setImuEnabled(false);
      }
 else {
        RobobuggyConfigFile.setImuEnabled(true);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.45,.1,.05);
  JComboBox gpsPortSelector=new JComboBox(portOptions);
  gpsPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getComPortGPS(),portOptions));
  addComponent(gpsPortSelector,.1,.45,.2,.05);
  gpsPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=gpsPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setComPortGps(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setGpsEnabled(false);
      }
 else {
        RobobuggyConfigFile.setGpsEnabled(true);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.5,.1,.05);
  JComboBox rbsmPortSelector=new JComboBox(portOptions);
  rbsmPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getComPortRBSM(),portOptions));
  addComponent(rbsmPortSelector,.1,.5,.2,.05);
  rbsmPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=rbsmPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setComPortRBSM(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setEncoderEnabled(false);
      }
 else {
        RobobuggyConfigFile.setEncoderEnabled(true);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.55,.1,.05);
  JComboBox visionSystemPortSelector=new JComboBox(portOptions);
  visionSystemPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getPortVision(),portOptions));
  addComponent(visionSystemPortSelector,.1,.55,.2,.05);
  visionSystemPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=visionSystemPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setPortVision(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setVisionSystemEnabled(false);
      }
 else {
        RobobuggyConfigFile.setVisionSystemEnabled(true);
      }
    }
  }
);
}

Fixed version (ground truth):
/** 
 * Constructor for the configuration Panel, this is were all of the gui elements  for the configuration panel are created 
 */
public ConfigurationPanel(){
  addComponent(new JLabel("String_Node_Str"),0,0,.1,.1);
  JLabel currentConfigFileLabel=new JLabel(RobobuggyConfigFile.getConfigFile());
  addComponent(currentConfigFileLabel,.3,0,.4,.1);
  JButton configFileSelectBtn=new JButton("String_Node_Str");
  configFileSelectBtn.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      final JFileChooser fc=new JFileChooser();
      fc.setCurrentDirectory(new File(RobobuggyConfigFile.getConfigFile()));
      int returnVal=fc.showOpenDialog(null);
      if (returnVal == fc.APPROVE_OPTION) {
        File selectedFile=fc.getSelectedFile();
        RobobuggyConfigFile.setConfigFile(selectedFile.getAbsolutePath());
        currentConfigFileLabel.setText(RobobuggyConfigFile.getConfigFile());
        RobobuggyMainFile.resetSystem();
      }
 else {
        new RobobuggyLogicNotification("String_Node_Str",RobobuggyMessageLevel.WARNING);
      }
    }
  }
);
  addComponent(configFileSelectBtn,.1,0,.2,.1);
  JButton saveConfigButton=new JButton("String_Node_Str");
  saveConfigButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      RobobuggyConfigFile.saveConfigFile();
    }
  }
);
  addComponent(saveConfigButton,.9,0,.1,.1);
  JButton loadConfigButton=new JButton("String_Node_Str");
  loadConfigButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      RobobuggyConfigFile.loadConfigFile();
    }
  }
);
  addComponent(loadConfigButton,.8,0,.1,.1);
  addComponent(new JLabel("String_Node_Str"),0,.1,.1,.1);
  JButton wayPointFileSelectBtn=new JButton("String_Node_Str");
  addComponent(wayPointFileSelectBtn,.1,.1,.2,.1);
  JLabel currentWayPointLable=new JLabel(RobobuggyConfigFile.getWaypointSourceLogFile());
  addComponent(currentWayPointLable,.3,.1,.4,.1);
  wayPointFileSelectBtn.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      final JFileChooser fc=new JFileChooser();
      fc.setCurrentDirectory(new File(RobobuggyConfigFile.getConfigFile()));
      int returnVal=fc.showOpenDialog(null);
      if (returnVal == fc.APPROVE_OPTION) {
        File selectedFile=fc.getSelectedFile();
        RobobuggyConfigFile.setWayPointSourceLogFile(selectedFile.getPath());
        currentWayPointLable.setText(RobobuggyConfigFile.getWaypointSourceLogFile());
      }
 else {
        new RobobuggyLogicNotification("String_Node_Str",RobobuggyMessageLevel.WARNING);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.2,.1,.1);
  JButton playBackSlectFileButton=new JButton("String_Node_Str");
  addComponent(playBackSlectFileButton,.1,.2,.2,.1);
  JLabel currentPlayBackSourceFileLabel=new JLabel(RobobuggyConfigFile.getPlayBackSourceFile());
  addComponent(currentPlayBackSourceFileLabel,.3,.2,.4,.1);
  playBackSlectFileButton.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      final JFileChooser fc=new JFileChooser();
      fc.setCurrentDirectory(new File(RobobuggyConfigFile.getConfigFile()));
      int returnVal=fc.showOpenDialog(null);
      if (returnVal == fc.APPROVE_OPTION) {
        File selectedFile=fc.getSelectedFile();
        RobobuggyConfigFile.setPlayBackSourceFile(selectedFile.getAbsolutePath());
        currentPlayBackSourceFileLabel.setText(RobobuggyConfigFile.getPlayBackSourceFile());
      }
 else {
        new RobobuggyLogicNotification("String_Node_Str",RobobuggyMessageLevel.WARNING);
      }
    }
  }
);
  String[] portOptions=getPortOptions();
  addComponent(new JLabel("String_Node_Str"),0,.4,.1,.05);
  JComboBox imuPortSelector=new JComboBox(portOptions);
  imuPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getComPortImu(),portOptions));
  addComponent(imuPortSelector,.1,.4,.2,.05);
  imuPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=imuPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setComPortImu(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setImuEnabled(false);
      }
 else {
        RobobuggyConfigFile.setImuEnabled(true);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.45,.1,.05);
  JComboBox gpsPortSelector=new JComboBox(portOptions);
  gpsPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getComPortGPS(),portOptions));
  addComponent(gpsPortSelector,.1,.45,.2,.05);
  gpsPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=gpsPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setComPortGps(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setGpsEnabled(false);
      }
 else {
        RobobuggyConfigFile.setGpsEnabled(true);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.5,.1,.05);
  JComboBox rbsmPortSelector=new JComboBox(portOptions);
  rbsmPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getComPortRBSM(),portOptions));
  addComponent(rbsmPortSelector,.1,.5,.2,.05);
  rbsmPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=rbsmPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setComPortRBSM(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setEncoderEnabled(false);
      }
 else {
        RobobuggyConfigFile.setEncoderEnabled(true);
      }
    }
  }
);
  addComponent(new JLabel("String_Node_Str"),0,.55,.1,.05);
  JComboBox visionSystemPortSelector=new JComboBox(portOptions);
  visionSystemPortSelector.setSelectedIndex(findPortIndex(RobobuggyConfigFile.getPortVision(),portOptions));
  addComponent(visionSystemPortSelector,.1,.55,.2,.05);
  visionSystemPortSelector.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      int index=visionSystemPortSelector.getSelectedIndex();
      RobobuggyConfigFile.setPortVision(portOptions[index]);
      if (index == 0) {
        RobobuggyConfigFile.setVisionSystemEnabled(false);
      }
 else {
        RobobuggyConfigFile.setVisionSystemEnabled(true);
      }
    }
  }
);
}