Program: 37007
Project: 37007
Buggy source:
void handleWarnings(ReportContext report,XsdAttributeRoot buildUnit){
  XsdWarnings warnings=report.getWarnings();
  for (  XsdWarningsByAttributeGroup warningGroup : warnings.getWarningsByAttributeGroup()) {
    String key=SonargraphPluginBase.getRuleKey(warningGroup.getAttributeGroup());
    if (key == null) {
      continue;
    }
    Rule rule=ruleFinder.findByKey(SonargraphPluginBase.PLUGIN_KEY,key);
    if (rule == null) {
      LOG.error("String_Node_Str");
      continue;
    }
    if ("String_Node_Str".equals(warningGroup.getAttributeGroup())) {
      handleDuplicateCodeBlocks(warningGroup,rule);
      continue;
    }
    for (    XsdWarningsByAttribute warningByAttribute : warningGroup.getWarningsByAttribute()) {
      String attrName=warningByAttribute.getAttributeName();
      for (      XsdWarning warning : warningByAttribute.getWarning()) {
        String msg=attrName + "String_Node_Str" + Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
        String bu=Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
        bu=Utilities.getBuildUnitName(bu);
        if (bu.equals(Utilities.getBuildUnitName(buildUnit.getName()))) {
          if (warning.getPosition().size() > 0) {
            for (            XsdPosition pos : warning.getPosition()) {
              String relFileName=pos.getFile();
              if (relFileName != null) {
                String fqName=Utilities.relativeFileNameToFqName(relFileName);
                saveViolation(rule,null,fqName,Integer.valueOf(pos.getLine()),msg);
              }
            }
          }
 else {
            String elemType=Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
            if ("String_Node_Str".equals(elemType) || "String_Node_Str".equals(elemType)) {
              String fileName=Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
              String fqName=fileName.substring(0,fileName.lastIndexOf('.')).replace('/','.');
              saveViolation(rule,null,fqName,1,msg);
            }
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
void handleWarnings(ReportContext report,XsdAttributeRoot buildUnit){
  LOG.debug("String_Node_Str" + buildUnit.getName());
  XsdWarnings warnings=report.getWarnings();
  for (  XsdWarningsByAttributeGroup warningGroup : warnings.getWarningsByAttributeGroup()) {
    String key=SonargraphPluginBase.getRuleKey(warningGroup.getAttributeGroup());
    if (key == null) {
      continue;
    }
    Rule rule=ruleFinder.findByKey(SonargraphPluginBase.PLUGIN_KEY,key);
    if (rule == null) {
      LOG.error("String_Node_Str");
      continue;
    }
    if ("String_Node_Str".equals(warningGroup.getAttributeGroup())) {
      handleDuplicateCodeBlocks(warningGroup,rule);
      continue;
    }
    for (    XsdWarningsByAttribute warningByAttribute : warningGroup.getWarningsByAttribute()) {
      String attrName=warningByAttribute.getAttributeName();
      for (      XsdWarning warning : warningByAttribute.getWarning()) {
        String msg=attrName + "String_Node_Str" + Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
        String bu=Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
        bu=Utilities.getBuildUnitName(bu);
        if (bu.equals(Utilities.getBuildUnitName(buildUnit.getName()))) {
          if (warning.getPosition().size() > 0) {
            for (            XsdPosition pos : warning.getPosition()) {
              String relFileName=pos.getFile();
              if (relFileName != null) {
                String fqName=Utilities.relativeFileNameToFqName(relFileName);
                saveViolation(rule,null,fqName,Integer.valueOf(pos.getLine()),msg);
              }
            }
          }
 else {
            String elemType=Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
            if ("String_Node_Str".equals(elemType) || "String_Node_Str".equals(elemType)) {
              String fileName=Utilities.getAttribute(warning.getAttribute(),"String_Node_Str");
              String fqName=fileName.substring(0,fileName.lastIndexOf('.')).replace('/','.');
              saveViolation(rule,null,fqName,1,msg);
            }
          }
        }
      }
    }
  }
}