Program: 27438
Project: 27438
Buggy source:
/** 
 * The expected format looks like this: <p>[generatorName1] someId1:someFile:theLine:theColumn ... <p>[[generatorName2] someId2:someFile:theLine:theColumn] ... <p>The returned data is grouped by generator name (the map key). The inner map provides mappings from id to content (file, line and column info). In a glimpse, the structure is Map<geneartor name, BiMap<id, value>>. <p>@throws IllegalArgumentException malformed input where there it 1) has duplicate generator name, or 2) the line has no ':' for id and its content.
 */
public static Map<String,BiMap<String,String>> parseSerializedIdMappings(String idMappings){
  if (Strings.isNullOrEmpty(idMappings)) {
    return Collections.emptyMap();
  }
  Map<String,BiMap<String,String>> resultMap=new HashMap<>();
  BiMap<String,String> currentSectionMap=null;
  int lineIndex=0;
  for (  String line : LINE_SPLITTER.split(idMappings)) {
    lineIndex++;
    if (line.isEmpty()) {
      continue;
    }
    if (line.charAt(0) == '[') {
      String currentSection=line.substring(1,line.length() - 1);
      currentSectionMap=resultMap.get(currentSection);
      if (currentSectionMap == null) {
        currentSectionMap=HashBiMap.create();
        resultMap.put(currentSection,currentSectionMap);
      }
 else {
        throw new IllegalArgumentException(SimpleFormat.format("String_Node_Str",idMappings,line,lineIndex));
      }
    }
 else {
      int split=line.indexOf(':');
      if (split != -1) {
        String name=line.substring(0,split);
        String location=line.substring(split + 1,line.length());
        currentSectionMap.put(name,location);
      }
 else {
        throw new IllegalArgumentException(SimpleFormat.format("String_Node_Str",idMappings,line,lineIndex));
      }
    }
  }
  return resultMap;
}

Fixed version (ground truth):
/** 
 * The expected format looks like this: <p>[generatorName1] someId1:someFile:theLine:theColumn ... <p>[[generatorName2] someId2:someFile:theLine:theColumn] ... <p>The returned data is grouped by generator name (the map key). The inner map provides mappings from id to content (file, line and column info). In a glimpse, the structure is  {@code Map<generator name, BiMap<id, value>>}. <p>@throws IllegalArgumentException malformed input where there it 1) has duplicate generator name, or 2) the line has no ':' for id and its content.
 */
public static Map<String,BiMap<String,String>> parseSerializedIdMappings(String idMappings){
  if (Strings.isNullOrEmpty(idMappings)) {
    return Collections.emptyMap();
  }
  Map<String,BiMap<String,String>> resultMap=new HashMap<>();
  BiMap<String,String> currentSectionMap=null;
  int lineIndex=0;
  for (  String line : LINE_SPLITTER.split(idMappings)) {
    lineIndex++;
    if (line.isEmpty()) {
      continue;
    }
    if (line.charAt(0) == '[') {
      String currentSection=line.substring(1,line.length() - 1);
      currentSectionMap=resultMap.get(currentSection);
      if (currentSectionMap == null) {
        currentSectionMap=HashBiMap.create();
        resultMap.put(currentSection,currentSectionMap);
      }
 else {
        throw new IllegalArgumentException(SimpleFormat.format("String_Node_Str",idMappings,line,lineIndex));
      }
    }
 else {
      int split=line.indexOf(':');
      if (split != -1) {
        String name=line.substring(0,split);
        String location=line.substring(split + 1,line.length());
        currentSectionMap.put(name,location);
      }
 else {
        throw new IllegalArgumentException(SimpleFormat.format("String_Node_Str",idMappings,line,lineIndex));
      }
    }
  }
  return resultMap;
}