Program: 57697
Project: 57697
Buggy source:
@Override protected void parseFile(BufferedReader reader) throws IOException {
  String line;
  int currentLine=0;
  progressBarFactor=100f / stopParsingAtLine;
  while ((line=reader.readLine()) != null && currentLine <= stopParsingAtLine) {
    if (currentLine >= parsingStartLine) {
      boolean maintainLoop=true;
      StringTokenizer textTokens=new StringTokenizer(line,tokenSeperator);
      try {
        while (textTokens.hasMoreTokens() && maintainLoop) {
          String token=textTokens.nextToken();
          if (mappingType.getToIDType().isInternalType()) {
            if (idSpecification != null) {
              token=convertID(token,idSpecification);
            }
            idMappingManager.getMap(mappingType).put(token,currentLine - parsingStartLine);
            break;
          }
 else {
            try {
              if (mappingType.getFromIDType().getColumnType() == EColumnType.INT) {
                if (mappingType.getToIDType().getColumnType() == EColumnType.INT) {
                  idMappingManager.getMap(mappingType).put(Integer.valueOf(token),Integer.valueOf(textTokens.nextToken()));
                }
 else                 if (mappingType.getToIDType().getColumnType() == EColumnType.STRING) {
                  idMappingManager.getMap(mappingType).put(Integer.valueOf(token),textTokens.nextToken());
                }
 else                 throw new IllegalStateException("String_Node_Str");
              }
 else               if (mappingType.getFromIDType().getColumnType() == EColumnType.STRING) {
                if (mappingType.getToIDType().getColumnType() == EColumnType.INT) {
                  idMappingManager.getMap(mappingType).put(token,Integer.valueOf(textTokens.nextToken()));
                }
 else                 if (mappingType.getToIDType().getColumnType() == EColumnType.STRING) {
                  idMappingManager.getMap(mappingType).put(token,textTokens.nextToken());
                }
 else                 throw new IllegalStateException("String_Node_Str");
              }
 else               throw new IllegalStateException("String_Node_Str");
            }
 catch (            NumberFormatException nfe) {
              Logger.log(new Status(Status.ERROR,this.toString(),"String_Node_Str" + mappingType,nfe));
            }
          }
          break;
        }
      }
 catch (      NoSuchElementException nsee) {
        maintainLoop=false;
        stopParsingAtLine=-1;
      }
    }
    currentLine++;
    if (currentLine % 1000 == 0) {
      swtGuiManager.setProgressBarPercentage((int)(progressBarFactor * currentLine));
    }
  }
}

Fixed version (ground truth):
@Override protected void parseFile(BufferedReader reader) throws IOException {
  String line;
  int currentLine=0;
  progressBarFactor=100f / stopParsingAtLine;
  while ((line=reader.readLine()) != null && currentLine <= stopParsingAtLine) {
    if (currentLine >= parsingStartLine) {
      boolean maintainLoop=true;
      StringTokenizer textTokens=new StringTokenizer(line,tokenSeperator);
      try {
        while (textTokens.hasMoreTokens() && maintainLoop) {
          String token=textTokens.nextToken();
          if (idSpecification != null) {
            token=convertID(token,idSpecification);
          }
          if (mappingType.getToIDType().isInternalType()) {
            idMappingManager.getMap(mappingType).put(token,currentLine - parsingStartLine);
            break;
          }
 else {
            try {
              if (mappingType.getFromIDType().getColumnType() == EColumnType.INT) {
                if (mappingType.getToIDType().getColumnType() == EColumnType.INT) {
                  idMappingManager.getMap(mappingType).put(Integer.valueOf(token),Integer.valueOf(textTokens.nextToken()));
                }
 else                 if (mappingType.getToIDType().getColumnType() == EColumnType.STRING) {
                  idMappingManager.getMap(mappingType).put(Integer.valueOf(token),textTokens.nextToken());
                }
 else                 throw new IllegalStateException("String_Node_Str");
              }
 else               if (mappingType.getFromIDType().getColumnType() == EColumnType.STRING) {
                if (mappingType.getToIDType().getColumnType() == EColumnType.INT) {
                  idMappingManager.getMap(mappingType).put(token,Integer.valueOf(textTokens.nextToken()));
                }
 else                 if (mappingType.getToIDType().getColumnType() == EColumnType.STRING) {
                  idMappingManager.getMap(mappingType).put(token,textTokens.nextToken());
                }
 else                 throw new IllegalStateException("String_Node_Str");
              }
 else               throw new IllegalStateException("String_Node_Str");
            }
 catch (            NumberFormatException nfe) {
              Logger.log(new Status(Status.ERROR,this.toString(),"String_Node_Str" + mappingType,nfe));
            }
          }
          break;
        }
      }
 catch (      NoSuchElementException nsee) {
        maintainLoop=false;
        stopParsingAtLine=-1;
      }
    }
    currentLine++;
    if (currentLine % 1000 == 0) {
      swtGuiManager.setProgressBarPercentage((int)(progressBarFactor * currentLine));
    }
  }
}