Program: 37002
Project: 37002
Buggy source:
public void analyse(final Project project,SensorContext sensorContext){
  LOG.info("String_Node_Str");
  LOG.info("String_Node_Str" + project.getName());
  LOG.info("String_Node_Str");
  this.sensorContext=sensorContext;
  Configuration configuration=project.getConfiguration();
  if (null == report) {
    String reportPath=getReportFileName(project.getFileSystem().getBuildDir().getPath(),configuration);
    report=ReportFileReader.readSonargraphReport(reportPath);
    LOG.info("String_Node_Str" + reportPath);
  }
 else {
    LOG.info("String_Node_Str" + report.getName());
  }
  XsdAttributeRoot buildUnit=null;
  if (report != null) {
    buildUnit=retrieveBuildUnit(project.getKey(),report);
  }
  if (null == buildUnit) {
    LOG.error("String_Node_Str");
    return;
  }
  LOG.info("String_Node_Str" + project.getName());
  this.analyseBuildUnit(report,buildUnit);
  double indexCost=configuration.getDouble(SonargraphPluginBase.COST_PER_INDEX_POINT,SonargraphPluginBase.COST_PER_INDEX_POINT_DEFAULT);
  if (indexCost > 0) {
    double structuralDebtCost=sensorContext.getMeasure(SonargraphBuildUnitMetrics.EROSION_INDEX).getValue() * indexCost;
    saveMeasureToContext(SonargraphBuildUnitMetrics.EROSION_COST,structuralDebtCost,0);
  }
  this.analyseSystemMeasures(report,null);
  this.analyseCylceGroups(report,buildUnit);
  if (hasBuildUnitMetric(UNASSIGNED_TYPES)) {
    LOG.info("String_Node_Str" + project.getName());
    this.addArchitectureMeasures(report,buildUnit);
  }
  if (ruleFinder != null) {
    this.handleArchitectureViolations(report,buildUnit);
    this.handleWarnings(report,buildUnit);
    this.handleTasks(report,buildUnit);
  }
 else {
    LOG.error("String_Node_Str");
  }
  AlertDecorator.setAlertLevels(new SensorProjectContext(sensorContext));
}

Fixed version (ground truth):
public void analyse(final Project project,SensorContext sensorContext){
  LOG.info("String_Node_Str");
  LOG.info("String_Node_Str" + project.getName());
  LOG.info("String_Node_Str");
  this.sensorContext=sensorContext;
  Configuration configuration=project.getConfiguration();
  if (Utilities.isRootParentProject(project)) {
    return;
  }
  if (null == report) {
    String reportPath=this.getReportFileName(project.getFileSystem().getBuildDir().getPath(),configuration);
    LOG.info("String_Node_Str" + reportPath);
    report=ReportFileReader.readSonargraphReport(reportPath,project.isRoot());
  }
 else {
    LOG.info("String_Node_Str" + report.getName());
  }
  XsdAttributeRoot buildUnit=null;
  if (report != null) {
    buildUnit=retrieveBuildUnit(project.getKey(),report);
  }
  if (null == buildUnit) {
    LOG.error("String_Node_Str");
    return;
  }
  LOG.info("String_Node_Str" + project.getName());
  this.analyseBuildUnit(report,buildUnit);
  double indexCost=configuration.getDouble(SonargraphPluginBase.COST_PER_INDEX_POINT,SonargraphPluginBase.COST_PER_INDEX_POINT_DEFAULT);
  if (indexCost > 0) {
    double structuralDebtCost=sensorContext.getMeasure(SonargraphBuildUnitMetrics.EROSION_INDEX).getValue() * indexCost;
    saveMeasureToContext(SonargraphBuildUnitMetrics.EROSION_COST,structuralDebtCost,0);
  }
  this.analyseSystemMeasures(report,null);
  this.analyseCylceGroups(report,buildUnit,project);
  if (hasBuildUnitMetric(UNASSIGNED_TYPES)) {
    LOG.info("String_Node_Str" + project.getName());
    this.addArchitectureMeasures(report,buildUnit);
  }
  if (ruleFinder != null) {
    this.handleArchitectureViolations(report,buildUnit);
    this.handleWarnings(report,buildUnit);
    this.handleTasks(report,buildUnit);
  }
 else {
    LOG.error("String_Node_Str");
  }
  AlertDecorator.setAlertLevels(new SensorProjectContext(sensorContext));
}