Program: 48318
Project: 48318
Buggy source:
@Override public boolean createCluster(ClusterBlueprint blueprint,ClusterReportQueue reportQueue) throws SoftwareManagementPluginException {
  boolean success=false;
  AmClusterDef clusterDef=null;
  try {
    logger.info("String_Node_Str");
    logger.info(ApiUtils.objectToJson(blueprint));
    logger.info("String_Node_Str" + blueprint.getName() + "String_Node_Str");
    setHaseRegionConfig(blueprint);
    logger.info("String_Node_Str");
    logger.info(ApiUtils.objectToJson(blueprint));
    String ambariServerVersion=getVersion();
    clusterDef=new AmClusterDef(blueprint,privateKey,ambariServerVersion);
    logger.info("String_Node_Str" + ApiUtils.objectToJson(clusterDef));
    ReflectionUtils.getPreStartServicesHook().preStartServices(clusterDef.getName());
    provisionCluster(clusterDef,reportQueue);
    success=true;
    Map<String,NodeReport> nodeReports=clusterDef.getCurrentReport().getNodeReports();
    for (    String nodeReportKey : nodeReports.keySet()) {
      nodeReports.get(nodeReportKey).setUseClusterMsg(true);
    }
    clusterDef.getCurrentReport().setAction("String_Node_Str");
    clusterDef.getCurrentReport().setProgress(ProgressSplit.PROVISION_SUCCESS.getProgress());
    clusterDef.getCurrentReport().setSuccess(success);
  }
 catch (  Exception e) {
    clusterDef.getCurrentReport().setSuccess(success);
    logger.error("String_Node_Str" + blueprint.getName(),e);
    throw SoftwareManagementPluginException.CREATE_CLUSTER_EXCEPTION(e,Constants.AMBARI_PLUGIN_NAME,blueprint.getName());
  }
 finally {
    clusterDef.getCurrentReport().setFinished(true);
    if (success) {
      clusterDef.getCurrentReport().setClusterAndNodesServiceStatus(ServiceStatus.STARTED);
    }
    reportStatus(clusterDef.getCurrentReport(),reportQueue);
  }
  return success;
}

Fixed version (ground truth):
@Override public boolean createCluster(ClusterBlueprint blueprint,ClusterReportQueue reportQueue) throws SoftwareManagementPluginException {
  boolean success=false;
  AmClusterDef clusterDef=null;
  try {
    logger.info("String_Node_Str");
    logger.info(ApiUtils.objectToJson(blueprint));
    logger.info("String_Node_Str" + blueprint.getName() + "String_Node_Str");
    setHaseRegionConfig(blueprint);
    logger.info("String_Node_Str");
    logger.info(ApiUtils.objectToJson(blueprint));
    String ambariServerVersion=getVersion();
    clusterDef=new AmClusterDef(blueprint,privateKey,ambariServerVersion);
    ReflectionUtils.getPreStartServicesHook().preStartServices(clusterDef.getName());
    provisionCluster(clusterDef,reportQueue);
    success=true;
    Map<String,NodeReport> nodeReports=clusterDef.getCurrentReport().getNodeReports();
    for (    String nodeReportKey : nodeReports.keySet()) {
      nodeReports.get(nodeReportKey).setUseClusterMsg(true);
    }
    clusterDef.getCurrentReport().setAction("String_Node_Str");
    clusterDef.getCurrentReport().setProgress(ProgressSplit.PROVISION_SUCCESS.getProgress());
    clusterDef.getCurrentReport().setSuccess(success);
  }
 catch (  Exception e) {
    clusterDef.getCurrentReport().setSuccess(success);
    logger.error("String_Node_Str" + blueprint.getName(),e);
    throw SoftwareManagementPluginException.CREATE_CLUSTER_EXCEPTION(e,Constants.AMBARI_PLUGIN_NAME,blueprint.getName());
  }
 finally {
    clusterDef.getCurrentReport().setFinished(true);
    if (success) {
      clusterDef.getCurrentReport().setClusterAndNodesServiceStatus(ServiceStatus.STARTED);
    }
    reportStatus(clusterDef.getCurrentReport(),reportQueue);
  }
  return success;
}