Program: 37006
Project: 37006
Buggy source:
void handleArchitectureViolations(ReportContext report,XsdAttributeRoot buildUnit){
  Rule rule=ruleFinder.findByKey(SonargraphPluginBase.PLUGIN_KEY,SonargraphPluginBase.ARCH_RULE_KEY);
  if (rule == null) {
    LOG.error("String_Node_Str");
    return;
  }
  XsdViolations violations=report.getViolations();
  String uses="String_Node_Str";
  for (  XsdArchitectureViolation violation : violations.getArchitectureViolations()) {
    for (    XsdTypeRelation rel : violation.getTypeRelation()) {
      String toType=Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      String bu=Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      String type=Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      String dimension=violation.getDimension();
      String message="String_Node_Str";
      if (null != dimension) {
        message=dimension + "String_Node_Str";
      }
 else {
        message="String_Node_Str";
      }
      int indentation=message.length() - uses.length();
      message=message + type + "String_Node_Str"+ Utilities.generateSpaces(indentation)+ uses+ toType;
      String explanation="String_Node_Str" + Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      bu=Utilities.getBuildUnitName(bu);
      if (bu.equals(Utilities.getBuildUnitName(buildUnit.getName()))) {
        for (        XsdPosition pos : rel.getPosition()) {
          String relFileName=pos.getFile();
          int line=0;
          try {
            line=Integer.parseInt(pos.getLine());
          }
 catch (          NumberFormatException ex) {
            LOG.error("String_Node_Str" + pos.getLine() + "String_Node_Str"+ ex.getMessage());
            continue;
          }
          if (relFileName != null && (pos.getType() != null) && (line > 0)) {
            String fqName=Utilities.relativeFileNameToFqName(relFileName);
            String msg=message + "String_Node_Str" + pos.getType()+ explanation;
            LOG.debug(msg);
            saveViolation(rule,null,fqName,Integer.valueOf(pos.getLine()),msg);
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
void handleArchitectureViolations(ReportContext report,XsdAttributeRoot buildUnit){
  LOG.debug("String_Node_Str" + buildUnit.getName());
  Rule rule=ruleFinder.findByKey(SonargraphPluginBase.PLUGIN_KEY,SonargraphPluginBase.ARCH_RULE_KEY);
  if (rule == null) {
    LOG.error("String_Node_Str");
    return;
  }
  XsdViolations violations=report.getViolations();
  String uses="String_Node_Str";
  for (  XsdArchitectureViolation violation : violations.getArchitectureViolations()) {
    for (    XsdTypeRelation rel : violation.getTypeRelation()) {
      String toType=Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      String bu=Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      String type=Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      String dimension=violation.getDimension();
      String message="String_Node_Str";
      if (null != dimension) {
        message=dimension + "String_Node_Str";
      }
 else {
        message="String_Node_Str";
      }
      int indentation=message.length() - uses.length();
      message=message + type + "String_Node_Str"+ Utilities.generateSpaces(indentation)+ uses+ toType;
      String explanation="String_Node_Str" + Utilities.getAttribute(rel.getAttribute(),"String_Node_Str");
      bu=Utilities.getBuildUnitName(bu);
      if (bu.equals(Utilities.getBuildUnitName(buildUnit.getName()))) {
        for (        XsdPosition pos : rel.getPosition()) {
          String relFileName=pos.getFile();
          int line=0;
          try {
            line=Integer.parseInt(pos.getLine());
          }
 catch (          NumberFormatException ex) {
            LOG.error("String_Node_Str" + pos.getLine() + "String_Node_Str"+ ex.getMessage());
            continue;
          }
          if (relFileName != null && (pos.getType() != null) && (line > 0)) {
            String fqName=Utilities.relativeFileNameToFqName(relFileName);
            String msg=message + "String_Node_Str" + pos.getType()+ explanation;
            LOG.debug(msg);
            saveViolation(rule,null,fqName,Integer.valueOf(pos.getLine()),msg);
          }
        }
      }
    }
  }
}