Program: 58914
Project: 58914
Buggy source:
@Override protected void loadDataParseFile(BufferedReader brFile,final int iNumberOfLinesInFile) throws IOException {
  allocateStorageBufferForTokenPattern();
  swtGuiManager.setProgressBarText("String_Node_Str" + this.getFileName());
  String sLine;
  int iColumnIndex=0;
  float fProgressBarFactor=100f / iStopParsingAtLine;
  while ((sLine=brFile.readLine()) != null && iLineInFile < iStopParsingAtLine) {
    if (iLineInFile < this.iStartParsingAtLine) {
      iLineInFile++;
      continue;
    }
    StringTokenizer strTokenLine=new StringTokenizer(sLine,sTokenSeperator);
    iColumnIndex=0;
    for (    EStorageType columnDataType : alColumnDataTypes) {
      if (strTokenLine.hasMoreTokens()) {
switch (columnDataType) {
case INT:
          alIntBuffers.get(iColumnIndex)[iLineInFile - iStartParsingAtLine]=Integer.valueOf(strTokenLine.nextToken()).intValue();
        iColumnIndex++;
      break;
case FLOAT:
    Float fValue;
  try {
    fValue=Float.valueOf(strTokenLine.nextToken()).floatValue();
  }
 catch (  NumberFormatException nfe) {
    fValue=Float.NaN;
  }
alFloatBuffers.get(iColumnIndex)[iLineInFile - iStartParsingAtLine]=fValue;
iColumnIndex++;
break;
case STRING:
alStringBuffers.get(iColumnIndex).add(strTokenLine.nextToken());
iColumnIndex++;
break;
case SKIP:
strTokenLine.nextToken();
break;
case ABORT:
iColumnIndex=alColumnDataTypes.size();
break;
case GROUP_NUMBER:
alGroupInfo.get(0)[iLineInFile - iStartParsingAtLine]=Integer.valueOf(strTokenLine.nextToken()).intValue();
break;
case GROUP_REPRESENTATIVE:
alGroupInfo.get(1)[iLineInFile - iStartParsingAtLine]=Integer.valueOf(strTokenLine.nextToken()).intValue();
break;
default :
throw new IllegalStateException("String_Node_Str" + columnDataType.toString());
}
if (iColumnIndex == alColumnDataTypes.size()) {
continue;
}
}
}
iLineInFile++;
if (iLineInFile % 1000 == 0) {
swtGuiManager.setProgressBarPercentage((int)(fProgressBarFactor * iLineInFile));
}
}
}

Fixed version (ground truth):
@Override protected void loadDataParseFile(BufferedReader brFile,final int iNumberOfLinesInFile) throws IOException {
  allocateStorageBufferForTokenPattern();
  swtGuiManager.setProgressBarText("String_Node_Str" + this.getFileName());
  String sLine;
  int iColumnIndex=0;
  float fProgressBarFactor=100f / iStopParsingAtLine;
  while ((sLine=brFile.readLine()) != null && iLineInFile <= iStopParsingAtLine) {
    if (iLineInFile < this.iStartParsingAtLine) {
      iLineInFile++;
      continue;
    }
    StringTokenizer strTokenLine=new StringTokenizer(sLine,sTokenSeperator);
    iColumnIndex=0;
    for (    EStorageType columnDataType : alColumnDataTypes) {
      if (strTokenLine.hasMoreTokens()) {
switch (columnDataType) {
case INT:
          alIntBuffers.get(iColumnIndex)[iLineInFile - iStartParsingAtLine]=Integer.valueOf(strTokenLine.nextToken()).intValue();
        iColumnIndex++;
      break;
case FLOAT:
    Float fValue;
  try {
    fValue=Float.valueOf(strTokenLine.nextToken()).floatValue();
  }
 catch (  NumberFormatException nfe) {
    fValue=Float.NaN;
  }
alFloatBuffers.get(iColumnIndex)[iLineInFile - iStartParsingAtLine]=fValue;
iColumnIndex++;
break;
case STRING:
alStringBuffers.get(iColumnIndex).add(strTokenLine.nextToken());
iColumnIndex++;
break;
case SKIP:
strTokenLine.nextToken();
break;
case ABORT:
iColumnIndex=alColumnDataTypes.size();
break;
case GROUP_NUMBER:
alGroupInfo.get(0)[iLineInFile - iStartParsingAtLine]=Integer.valueOf(strTokenLine.nextToken()).intValue();
break;
case GROUP_REPRESENTATIVE:
alGroupInfo.get(1)[iLineInFile - iStartParsingAtLine]=Integer.valueOf(strTokenLine.nextToken()).intValue();
break;
default :
throw new IllegalStateException("String_Node_Str" + columnDataType.toString());
}
if (iColumnIndex == alColumnDataTypes.size()) {
continue;
}
}
}
iLineInFile++;
if (iLineInFile % 1000 == 0) {
swtGuiManager.setProgressBarPercentage((int)(fProgressBarFactor * iLineInFile));
}
}
}