Program: 19266
Project: 19266
Buggy source:
/** 
 */
public void addDataFormattedStringToInfoList(String dataFormattedString) throws IllegalArgumentException {
  String[] values=dataFormattedString.split("String_Node_Str");
  double lat, lon, depth;
  lat=lon=depth=Double.NaN;
  String eventtime=null;
  float[] dataValues=null;
  if (infoList == null)   infoList=new ArrayList<DataSlice>();
  for (  String val : values) {
    if (val.contains("String_Node_Str")) {
      setupExceptionOutput(val);
      return;
    }
    if (!val.contains("String_Node_Str"))     continue;
    String[] valuePiece=val.split("String_Node_Str");
    if (valuePiece[0].equals("String_Node_Str")) {
      try {
        depth=Double.parseDouble(valuePiece[1]);
      }
 catch (      Exception e) {
        depth=Double.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      try {
        lat=Double.parseDouble(valuePiece[1]);
      }
 catch (      Exception e) {
        lat=Double.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      try {
        lon=Double.parseDouble(valuePiece[1]);
      }
 catch (      Exception e) {
        lon=Double.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      eventtime=valuePiece[1];
    }
 else {
      if (dataValues == null) {
        dataValues=new float[1];
      }
 else {
        dataValues=expandDataArray(dataValues);
      }
      try {
        dataValues[dataValues.length - 1]=Float.parseFloat(valuePiece[1]);
      }
 catch (      Exception e) {
        dataValues[dataValues.length - 1]=Float.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
  }
  infoList.add(new DataSlice(lat,lon,depth,eventtime,dataValues));
}

Fixed version (ground truth):
/** 
 */
public void addDataFormattedStringToInfoList(String dataFormattedString) throws IllegalArgumentException {
  String[] values=dataFormattedString.split("String_Node_Str");
  double lat, lon, depth;
  lat=lon=depth=Double.NaN;
  String eventtime=null;
  float[] dataValues=null;
  int stationNumber=-1;
  if (infoList == null)   infoList=new ArrayList<DataSlice>();
  for (  String val : values) {
    if (val.contains("String_Node_Str")) {
      setupExceptionOutput(val);
      return;
    }
    if (!val.contains("String_Node_Str"))     continue;
    String[] valuePiece=val.split("String_Node_Str");
    if (valuePiece[0].equals("String_Node_Str")) {
      try {
        depth=Double.parseDouble(valuePiece[1]);
      }
 catch (      Exception e) {
        depth=Double.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      try {
        lat=Double.parseDouble(valuePiece[1]);
      }
 catch (      Exception e) {
        lat=Double.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      try {
        lon=Double.parseDouble(valuePiece[1]);
      }
 catch (      Exception e) {
        lon=Double.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      eventtime=valuePiece[1];
    }
 else     if (valuePiece[0].equals("String_Node_Str")) {
      try {
        stationNumber=Integer.parseInt(valuePiece[1]);
      }
 catch (      Exception ex) {
        stationNumber=-1;
      }
    }
 else {
      if (dataValues == null) {
        dataValues=new float[1];
      }
 else {
        dataValues=expandDataArray(dataValues);
      }
      try {
        dataValues[dataValues.length - 1]=Float.parseFloat(valuePiece[1]);
      }
 catch (      Exception e) {
        dataValues[dataValues.length - 1]=Float.NaN;
        System.out.println("String_Node_Str" + valuePiece[1] + "String_Node_Str"+ e.getMessage());
      }
    }
  }
  infoList.add(new DataSlice(lat,lon,depth,eventtime,dataValues));
  infoList.get(infoList.size() - 1).setStationNumber(stationNumber);
}