Program: 24115
Project: 24115
Buggy source:
private ProfileDefn parseProfileSheet(Definitions definitions,ConformancePackage ap,String n,List<String> namedSheets,boolean published) throws Exception {
  Sheet sheet;
  ResourceDefn resource=new ResourceDefn();
  resource.setPublishedInProfile(published);
  sheet=loadSheet(n + "String_Node_Str");
  Map<String,Invariant> invariants=null;
  if (sheet != null) {
    invariants=readInvariants(sheet);
  }
 else {
    invariants=new HashMap<String,Invariant>();
  }
  sheet=loadSheet(n);
  if (sheet == null)   throw new Exception("String_Node_Str" + n + "String_Node_Str");
  for (int row=0; row < sheet.rows.size(); row++) {
    ElementDefn e=processLine(resource,sheet,row,invariants);
    if (e != null)     for (    TypeRef t : e.getTypes()) {
      if (t.getProfile() != null && !t.getName().equals("String_Node_Str") && t.getProfile().startsWith("String_Node_Str")) {
        if (!namedSheets.contains(t.getProfile().substring(1)))         namedSheets.add(t.getProfile().substring(1));
      }
    }
  }
  sheet=loadSheet(n + "String_Node_Str");
  if (sheet != null) {
    int row=0;
    while (row < sheet.rows.size()) {
      if (sheet.getColumn(row,"String_Node_Str").startsWith("String_Node_Str"))       row++;
 else       row=processExtension(resource.getRoot().getElementByName("String_Node_Str"),sheet,row,definitions,ap.metadata("String_Node_Str"),ap);
    }
  }
  sheet=loadSheet(n + "String_Node_Str");
  if (sheet != null) {
    readSearchParams(resource,sheet,true);
  }
  if (invariants != null) {
    for (    Invariant inv : invariants.values()) {
      if (Utilities.noString(inv.getContext()))       log.log("String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str",LogMessageType.Warning);
 else {
        ElementDefn ed=findContext(resource.getRoot(),inv.getContext(),"String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str");
        if (ed.getName().endsWith("String_Node_Str") && !inv.getContext().endsWith("String_Node_Str"))         inv.setFixedName(inv.getContext().substring(inv.getContext().lastIndexOf("String_Node_Str") + 1));
        ed.getInvariants().put(inv.getId(),inv);
        if (Utilities.noString(inv.getXpath()))         log.log("String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str"+ inv.getEnglish()+ "String_Node_Str",LogMessageType.Warning);
 else         if (inv.getXpath().contains("String_Node_Str"))         log.log("String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str"+ inv.getEnglish()+ "String_Node_Str",LogMessageType.Warning);
      }
    }
  }
  resource.getRoot().setProfileName(n);
  ProfileDefn p=new ProfileDefn(ap.getName() + '-' + n,resource.getName(),resource);
  return p;
}

Fixed version (ground truth):
private ProfileDefn parseProfileSheet(Definitions definitions,ConformancePackage ap,String n,List<String> namedSheets,boolean published) throws Exception {
  Sheet sheet;
  ResourceDefn resource=new ResourceDefn();
  resource.setPublishedInProfile(published);
  sheet=loadSheet(n + "String_Node_Str");
  Map<String,Invariant> invariants=null;
  if (sheet != null) {
    invariants=readInvariants(sheet);
  }
 else {
    invariants=new HashMap<String,Invariant>();
  }
  sheet=loadSheet(n);
  if (sheet == null)   throw new Exception("String_Node_Str" + n + "String_Node_Str");
  for (int row=0; row < sheet.rows.size(); row++) {
    ElementDefn e=processLine(resource,sheet,row,invariants,true);
    if (e != null)     for (    TypeRef t : e.getTypes()) {
      if (t.getProfile() != null && !t.getName().equals("String_Node_Str") && t.getProfile().startsWith("String_Node_Str")) {
        if (!namedSheets.contains(t.getProfile().substring(1)))         namedSheets.add(t.getProfile().substring(1));
      }
    }
  }
  sheet=loadSheet(n + "String_Node_Str");
  if (sheet != null) {
    int row=0;
    while (row < sheet.rows.size()) {
      if (sheet.getColumn(row,"String_Node_Str").startsWith("String_Node_Str"))       row++;
 else       row=processExtension(resource.getRoot().getElementByName("String_Node_Str"),sheet,row,definitions,ap.metadata("String_Node_Str"),ap);
    }
  }
  sheet=loadSheet(n + "String_Node_Str");
  if (sheet != null) {
    readSearchParams(resource,sheet,true);
  }
  if (invariants != null) {
    for (    Invariant inv : invariants.values()) {
      if (Utilities.noString(inv.getContext()))       log.log("String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str",LogMessageType.Warning);
 else {
        ElementDefn ed=findContext(resource.getRoot(),inv.getContext(),"String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str");
        if (ed.getName().endsWith("String_Node_Str") && !inv.getContext().endsWith("String_Node_Str"))         inv.setFixedName(inv.getContext().substring(inv.getContext().lastIndexOf("String_Node_Str") + 1));
        ed.getInvariants().put(inv.getId(),inv);
        if (Utilities.noString(inv.getXpath()))         log.log("String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str"+ inv.getEnglish()+ "String_Node_Str",LogMessageType.Warning);
 else         if (inv.getXpath().contains("String_Node_Str"))         log.log("String_Node_Str" + resource.getRoot().getName() + "String_Node_Str"+ inv.getId()+ "String_Node_Str"+ inv.getEnglish()+ "String_Node_Str",LogMessageType.Warning);
      }
    }
  }
  resource.getRoot().setProfileName(n);
  ProfileDefn p=new ProfileDefn(ap.getName() + '-' + n,resource.getName(),resource);
  return p;
}