Program: 26459
Project: 26459
Buggy source:
private void parseLine(String line){
  if (line.startsWith("String_Node_Str")) {
    if (currentRecord != null) {
      completeCurrentRecord();
    }
    currentRecord=parseTimestamp(line);
  }
 else   if (line.startsWith("String_Node_Str")) {
    return;
  }
 else {
    String[] values=DATA_SPLITTER.split(line);
    if (currentRecord == null) {
      if (IGNORED_TYPES.contains(values[0])) {
        return;
      }
 else {
        throw new IllegalStateException("String_Node_Str" + in.getLineNumber());
      }
    }
    if (values.length < 2) {
      LOGGER.warn("String_Node_Str",line,in.getLineNumber());
      return;
    }
    String timestamp=null;
    boolean isTop="String_Node_Str".equals(values[0]);
    boolean isUarg="String_Node_Str".equals(values[0]);
    if (isTop) {
      timestamp=values[2];
    }
 else {
      timestamp=values[1];
    }
    if (timestamp.startsWith("String_Node_Str")) {
      DataType type=data.getType(values[0]);
      if (timestamp.equals(currentRecord.getTimestamp())) {
        if (isUarg) {
          parseUARG(values);
        }
 else         if (isTop) {
          parseTopData(values);
        }
 else {
          if (type == null) {
            LOGGER.warn("String_Node_Str",values[0],in.getLineNumber());
          }
 else {
            parseData(type,values);
          }
        }
      }
 else {
        LOGGER.warn("String_Node_Str",new Object[]{in.getLineNumber(),currentRecord.getTimestamp(),timestamp});
      }
    }
 else {
      if (!isTop && !isUarg) {
        if ("String_Node_Str".equals(values[0])) {
          parseBBBP(values);
        }
 else         if (values[0].startsWith("String_Node_Str")) {
          parseSystemInfo(values);
        }
 else         if (data.getType(values[0]) == null) {
          DataType type=buildDataType(values);
          if (type != null) {
            if (type.getId().equals("String_Node_Str")) {
              completeCurrentRecord();
            }
            if (!IGNORED_TYPES.contains(type.getId())) {
              data.addType(type);
            }
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
private void parseLine(String line){
  if (line.startsWith("String_Node_Str")) {
    if (currentRecord != null) {
      completeCurrentRecord();
    }
    currentRecord=parseTimestamp(line);
  }
 else   if (line.startsWith("String_Node_Str")) {
    return;
  }
 else {
    String[] values=DATA_SPLITTER.split(line);
    if (currentRecord == null) {
      if (IGNORED_TYPES.contains(values[0])) {
        return;
      }
 else {
        throw new IllegalStateException("String_Node_Str" + in.getLineNumber());
      }
    }
    if (values.length < 2) {
      LOGGER.warn("String_Node_Str",line,in.getLineNumber());
      return;
    }
    String timestamp=null;
    boolean isTop="String_Node_Str".equals(values[0]);
    boolean isUarg="String_Node_Str".equals(values[0]);
    if (isTop) {
      timestamp=values[2];
    }
 else {
      timestamp=values[1];
    }
    if (timestamp.startsWith("String_Node_Str")) {
      DataType type=data.getType(values[0]);
      if (timestamp.equals(currentRecord.getTimestamp())) {
        if (isUarg) {
          parseUARG(values);
        }
 else         if (isTop) {
          parseTopData(values);
        }
 else {
          if (type == null) {
            if ("String_Node_Str".equals(values[0])) {
              String[] newValues=new String[values.length - 1];
              newValues[0]=values[0];
              System.arraycopy(values,2,newValues,1,values.length - 2);
              type=buildDataType(newValues);
              data.addType(type);
            }
 else {
              LOGGER.warn("String_Node_Str",values[0],in.getLineNumber());
            }
          }
 else {
            parseData(type,values);
          }
        }
      }
 else {
        LOGGER.warn("String_Node_Str",new Object[]{in.getLineNumber(),currentRecord.getTimestamp(),timestamp});
      }
    }
 else {
      if (!isTop && !isUarg) {
        if ("String_Node_Str".equals(values[0])) {
          parseBBBP(values);
        }
 else         if (values[0].startsWith("String_Node_Str")) {
          parseSystemInfo(values);
        }
 else         if (data.getType(values[0]) == null) {
          DataType type=buildDataType(values);
          if (type != null) {
            if (type.getId().equals("String_Node_Str")) {
              completeCurrentRecord();
            }
            if (!IGNORED_TYPES.contains(type.getId())) {
              data.addType(type);
            }
          }
        }
      }
    }
  }
}