Program: 56913
Project: 56913
Buggy source:
@Override protected void parseFile(BufferedReader reader) throws IOException {
  GeneralManager.get().getSplash().updateProgessLabel("String_Node_Str" + mappingType);
  String line;
  int lineCounter=0;
  calculateNumberOfLinesInFile();
  float progressBarFactor=100f / numberOfLinesInFile;
  while ((line=reader.readLine()) != null && lineCounter <= stopParsingAtLine) {
    if (lineCounter <= startParsingAtLine) {
      lineCounter++;
      continue;
    }
    String[] textTokens=line.split(tokenSeparator);
    try {
      String fromID=convertID(textTokens[0],mappingType.getFromIDType().getIdTypeParsingRules());
      String toID=convertID(textTokens[1],mappingType.getToIDType().getIdTypeParsingRules());
      if (mappingType.getFromIDType().getDataType() == EDataType.INTEGER) {
        if (mappingType.getToIDType().getDataType() == EDataType.INTEGER) {
          idMappingManager.addMapping(mappingType,Integer.valueOf(fromID),Integer.valueOf(toID));
        }
 else         if (mappingType.getToIDType().getDataType() == EDataType.STRING) {
          idMappingManager.addMapping(mappingType,Integer.valueOf(fromID),toID.intern());
        }
 else         throw new IllegalStateException("String_Node_Str");
      }
 else       if (mappingType.getFromIDType().getDataType() == EDataType.STRING) {
        if (mappingType.getToIDType().getDataType() == EDataType.INTEGER) {
          idMappingManager.addMapping(mappingType,fromID.intern(),Integer.valueOf(toID));
        }
 else         if (mappingType.getToIDType().getDataType() == EDataType.STRING) {
          idMappingManager.addMapping(mappingType,fromID.intern(),toID.intern());
        }
 else         throw new IllegalStateException("String_Node_Str");
      }
 else       throw new IllegalStateException("String_Node_Str");
    }
 catch (    NumberFormatException nfe) {
      Logger.log(new Status(IStatus.ERROR,this.toString(),"String_Node_Str" + mappingType,nfe));
    }
catch (    ArrayIndexOutOfBoundsException boundEx) {
      Logger.log(new Status(IStatus.ERROR,this.toString(),"String_Node_Str" + mappingType,boundEx));
    }
    if (lineCounter % 100 == 0) {
      GeneralManager.get().getSplash().updateProgress((int)(progressBarFactor * lineCounter));
    }
    lineCounter++;
  }
}

Fixed version (ground truth):
@Override protected void parseFile(BufferedReader reader) throws IOException {
  GeneralManager.get().updateProgressLabel("String_Node_Str" + mappingType);
  String line;
  int lineCounter=0;
  calculateNumberOfLinesInFile();
  float progressBarFactor=100f / numberOfLinesInFile;
  while ((line=reader.readLine()) != null && lineCounter <= stopParsingAtLine) {
    if (lineCounter <= startParsingAtLine) {
      lineCounter++;
      continue;
    }
    String[] textTokens=line.split(tokenSeparator);
    try {
      String fromID=convertID(textTokens[0],mappingType.getFromIDType().getIdTypeParsingRules());
      String toID=convertID(textTokens[1],mappingType.getToIDType().getIdTypeParsingRules());
      if (mappingType.getFromIDType().getDataType() == EDataType.INTEGER) {
        if (mappingType.getToIDType().getDataType() == EDataType.INTEGER) {
          idMappingManager.addMapping(mappingType,Integer.valueOf(fromID),Integer.valueOf(toID));
        }
 else         if (mappingType.getToIDType().getDataType() == EDataType.STRING) {
          idMappingManager.addMapping(mappingType,Integer.valueOf(fromID),toID.intern());
        }
 else         throw new IllegalStateException("String_Node_Str");
      }
 else       if (mappingType.getFromIDType().getDataType() == EDataType.STRING) {
        if (mappingType.getToIDType().getDataType() == EDataType.INTEGER) {
          idMappingManager.addMapping(mappingType,fromID.intern(),Integer.valueOf(toID));
        }
 else         if (mappingType.getToIDType().getDataType() == EDataType.STRING) {
          idMappingManager.addMapping(mappingType,fromID.intern(),toID.intern());
        }
 else         throw new IllegalStateException("String_Node_Str");
      }
 else       throw new IllegalStateException("String_Node_Str");
    }
 catch (    NumberFormatException nfe) {
      Logger.log(new Status(IStatus.ERROR,this.toString(),"String_Node_Str" + mappingType,nfe));
    }
catch (    ArrayIndexOutOfBoundsException boundEx) {
      Logger.log(new Status(IStatus.ERROR,this.toString(),"String_Node_Str" + mappingType,boundEx));
    }
    if (lineCounter % 100 == 0) {
      GeneralManager.get().updateProgress((int)(progressBarFactor * lineCounter));
    }
    lineCounter++;
  }
}