Program: 46687
Project: 46687
Buggy source:
/** 
 * TODO: TRES TRES CHAUD... A TESTER DE MANIERE AUTOMATISEE !!!!  {@inheritDoc}
 */
public void updateBuildStatus(List<BuildReport> buildsStatus){
  List<BuildReport> buildsStatus=new ArrayList<BuildReport>(buildsStatus);
  if (this.currentSortOrder == SORT_BY_NAME) {
    Collections.sort(buildsStatus,new BuildReport.NameComparator());
  }
 else   if (this.currentSortOrder == SORT_BY_AGE) {
    Collections.sort(buildsStatus,new BuildReport.AgeComparator());
  }
  BuildStatusUpdater updater=new BuildStatusUpdater(buildsStatus);
  javax.swing.SwingUtilities.invokeLater(updater);
  this.currentlyReportedMonitoringException=null;
  StringBuffer newFailingBuilds=new StringBuffer();
  StringBuffer fixedBuilds=new StringBuffer();
  for (  BuildReport currentBuildReport : buildsStatus) {
    for (    BuildReport previousBuildReport : this.previousBuildReports) {
      if (previousBuildReport.getId().equals(currentBuildReport.getId())) {
        if (previousBuildReport.getStatus() != currentBuildReport.getStatus()) {
          if (currentBuildReport.getStatus() == BuildReport.Status.OK) {
            fixedBuilds.append(currentBuildReport.getName() + "String_Node_Str");
          }
 else {
            newFailingBuilds.append(currentBuildReport.getName() + "String_Node_Str");
          }
        }
      }
    }
  }
  if ((newFailingBuilds.length() > 0) || (fixedBuilds.length() > 0)) {
    MessageType messageType=MessageType.INFO;
    if (newFailingBuilds.length() > 0) {
      messageType=MessageType.WARNING;
    }
    javax.swing.SwingUtilities.invokeLater(new TrayIconUpdater(null,null,"String_Node_Str",newFailingBuilds.toString() + fixedBuilds.toString() + "String_Node_Str",messageType,null));
  }
  this.previousBuildReports=buildsStatus;
}

Fixed version (ground truth):
/** 
 * TODO: TRES TRES CHAUD... A TESTER DE MANIERE AUTOMATISEE !!!!  {@inheritDoc}
 */
public void updateBuildStatus(List<BuildReport> buildsStatus){
  buildsStatus=new ArrayList<BuildReport>(buildsStatus);
  if (this.currentSortOrder == SORT_BY_NAME) {
    Collections.sort(buildsStatus,new BuildReport.NameComparator());
  }
 else   if (this.currentSortOrder == SORT_BY_AGE) {
    Collections.sort(buildsStatus,new BuildReport.AgeComparator());
  }
  BuildStatusUpdater updater=new BuildStatusUpdater(buildsStatus);
  javax.swing.SwingUtilities.invokeLater(updater);
  this.currentlyReportedMonitoringException=null;
  StringBuffer newFailingBuilds=new StringBuffer();
  StringBuffer fixedBuilds=new StringBuffer();
  for (  BuildReport currentBuildReport : buildsStatus) {
    for (    BuildReport previousBuildReport : this.previousBuildReports) {
      if (previousBuildReport.getId().equals(currentBuildReport.getId())) {
        if (previousBuildReport.getStatus() != currentBuildReport.getStatus()) {
          if (currentBuildReport.getStatus() == BuildReport.Status.OK) {
            fixedBuilds.append(currentBuildReport.getName() + "String_Node_Str");
          }
 else {
            newFailingBuilds.append(currentBuildReport.getName() + "String_Node_Str");
          }
        }
      }
    }
  }
  if ((newFailingBuilds.length() > 0) || (fixedBuilds.length() > 0)) {
    MessageType messageType=MessageType.INFO;
    if (newFailingBuilds.length() > 0) {
      messageType=MessageType.WARNING;
    }
    javax.swing.SwingUtilities.invokeLater(new TrayIconUpdater(null,null,"String_Node_Str",newFailingBuilds.toString() + fixedBuilds.toString() + "String_Node_Str",messageType,null));
  }
  this.previousBuildReports=buildsStatus;
}