Program: 20976
Project: 20976
Buggy source:
public void actionPerformed(ActionEvent e){
  problems.setText("String_Node_Str");
  if (e.getSource() == save) {
    if (name.getText().equals("String_Node_Str")) {
      problems.setText(JDL.L("String_Node_Str","String_Node_Str"));
      return;
    }
 else     if (act.getExecutions().size() == 0) {
      problems.setText(JDL.L("String_Node_Str","String_Node_Str"));
      return;
    }
    act.setName(name.getText());
    Calendar c=Calendar.getInstance();
    c.set(Calendar.YEAR,(Integer)year.getValue());
    c.set(Calendar.MONTH,(Integer)month.getValue() - 1);
    c.set(Calendar.DAY_OF_MONTH,(Integer)day.getValue());
    c.set(Calendar.HOUR_OF_DAY,(Integer)hour.getValue());
    c.set(Calendar.MINUTE,(Integer)minute.getValue());
    act.setDate(c.getTime());
    if (optDate.isSelected()) {
      act.setRepeat(0);
    }
 else     if (optHourly.isSelected()) {
      act.setRepeat(60);
    }
 else     if (optDaily.isSelected()) {
      act.setRepeat(1440);
    }
 else     if (optWeekly.isSelected()) {
      act.setRepeat(10080);
    }
 else     if (optSpecific.isSelected()) {
      act.setRepeat(((Integer)repeathour.getValue() * 60) + (Integer)repeatminute.getValue());
    }
    if (edit) {
      gui.updateActions(this);
    }
 else {
      schedule.addAction(act);
      gui.updateActions(this);
    }
    return;
  }
 else   if (e.getSource() == cboActions) {
    for (    SchedulerModuleInterface smi : schedule.getModules()) {
      if (smi.getTranslation().equals(cboActions.getSelectedItem())) {
        if (smi.needParameter())         parameter.setText("String_Node_Str");
 else         parameter.setText(JDL.L("String_Node_Str","String_Node_Str"));
        parameter.setEnabled(smi.needParameter());
        parameter.requestFocus();
        return;
      }
    }
  }
 else   if (e.getSource() == add) {
    for (    SchedulerModuleInterface smi : schedule.getModules()) {
      if (smi.getTranslation().equals(cboActions.getSelectedItem())) {
        if (smi.needParameter() && !smi.checkParameter(parameter.getText())) {
          problems.setText(JDL.L("String_Node_Str","String_Node_Str"));
          return;
        }
        if (parameter.getText().equals(JDL.L("String_Node_Str","String_Node_Str")))         act.addExecutions(new Executions(smi,"String_Node_Str"));
 else         act.addExecutions(new Executions(smi,parameter.getText()));
        tableModel.fireTableRowsInserted(act.getExecutions().size(),act.getExecutions().size());
        fillComboBox();
        return;
      }
    }
  }
 else   if (e.getSource() == delete) {
    act.removeExecution(table.getSelectedRow());
    tableModel.fireTableRowsDeleted(table.getSelectedRow(),table.getSelectedRow());
    delete.setEnabled(false);
    fillComboBox();
  }
 else   if (e.getSource() == cancel) {
    gui.removeTab(act);
  }
}

Fixed version (ground truth):
public void actionPerformed(ActionEvent e){
  problems.setText("String_Node_Str");
  if (e.getSource() == save) {
    if (name.getText().equals("String_Node_Str")) {
      problems.setText(JDL.L("String_Node_Str","String_Node_Str"));
      return;
    }
 else     if (act.getExecutions().size() == 0) {
      problems.setText(JDL.L("String_Node_Str","String_Node_Str"));
      return;
    }
    act.setName(name.getText());
    Calendar c=Calendar.getInstance();
    c.set(Calendar.YEAR,(Integer)year.getValue());
    c.set(Calendar.MONTH,(Integer)month.getValue() - 1);
    c.set(Calendar.DAY_OF_MONTH,(Integer)day.getValue());
    c.set(Calendar.HOUR_OF_DAY,(Integer)hour.getValue());
    c.set(Calendar.MINUTE,(Integer)minute.getValue());
    act.setDate(c.getTime());
    if (optDate.isSelected()) {
      act.setRepeat(0);
    }
 else     if (optHourly.isSelected()) {
      act.setRepeat(60);
    }
 else     if (optDaily.isSelected()) {
      act.setRepeat(1440);
    }
 else     if (optWeekly.isSelected()) {
      act.setRepeat(10080);
    }
 else     if (optSpecific.isSelected()) {
      act.setRepeat(((Integer)repeathour.getValue() * 60) + (Integer)repeatminute.getValue());
    }
    act.setAlreadyHandled(false);
    if (edit) {
      gui.updateActions(this);
    }
 else {
      schedule.addAction(act);
      gui.updateActions(this);
    }
    return;
  }
 else   if (e.getSource() == cboActions) {
    for (    SchedulerModuleInterface smi : schedule.getModules()) {
      if (smi.getTranslation().equals(cboActions.getSelectedItem())) {
        if (smi.needParameter())         parameter.setText("String_Node_Str");
 else         parameter.setText(JDL.L("String_Node_Str","String_Node_Str"));
        parameter.setEnabled(smi.needParameter());
        parameter.requestFocus();
        return;
      }
    }
  }
 else   if (e.getSource() == add) {
    for (    SchedulerModuleInterface smi : schedule.getModules()) {
      if (smi.getTranslation().equals(cboActions.getSelectedItem())) {
        if (smi.needParameter() && !smi.checkParameter(parameter.getText())) {
          problems.setText(JDL.L("String_Node_Str","String_Node_Str"));
          return;
        }
        if (parameter.getText().equals(JDL.L("String_Node_Str","String_Node_Str")))         act.addExecutions(new Executions(smi,"String_Node_Str"));
 else         act.addExecutions(new Executions(smi,parameter.getText()));
        tableModel.fireTableRowsInserted(act.getExecutions().size(),act.getExecutions().size());
        fillComboBox();
        return;
      }
    }
  }
 else   if (e.getSource() == delete) {
    act.removeExecution(table.getSelectedRow());
    tableModel.fireTableRowsDeleted(table.getSelectedRow(),table.getSelectedRow());
    delete.setEnabled(false);
    fillComboBox();
  }
 else   if (e.getSource() == cancel) {
    gui.removeTab(act);
  }
}