Program: 89078
Project: 89078
Buggy source:
/** 
 * @param reportsJSON
 */
public void setReportsJSON(String reportsJSON){
  try {
    JSONArray jsonArray=new JSONArray(reportsJSON);
    if (jsonArray != null) {
      for (int i=0; i < jsonArray.length(); i++) {
        JSONObject report=jsonArray.getJSONObject(i);
        if (!report.has(SavedSearchDetails.NAME)) {
          throw new AlfrescoRuntimeException("String_Node_Str" + reportsJSON);
        }
        String name=report.getString(SavedSearchDetails.NAME);
        String translatedName=I18NUtil.getMessage(name);
        if (translatedName != null) {
          name=translatedName;
        }
        if (!report.has(SavedSearchDetails.SEARCH)) {
          throw new AlfrescoRuntimeException("String_Node_Str" + name + "String_Node_Str"+ reportsJSON);
        }
        String query=report.getString(SavedSearchDetails.SEARCH);
        String description="String_Node_Str";
        if (report.has(SavedSearchDetails.DESCRIPTION)) {
          description=report.getString(SavedSearchDetails.DESCRIPTION);
          String translatedDescription=I18NUtil.getMessage(description);
          if (translatedDescription != null) {
            description=translatedDescription;
          }
        }
        RecordsManagementSearchParameters searchParameters=new RecordsManagementSearchParameters();
        if (report.has("String_Node_Str")) {
          searchParameters=RecordsManagementSearchParameters.createFromJSON(report.getJSONObject("String_Node_Str"),namespaceService);
        }
        ReportDetails reportDetails=new ReportDetails(name,description,query,searchParameters);
        reports.add(reportDetails);
      }
    }
  }
 catch (  JSONException exception) {
    throw new AlfrescoRuntimeException("String_Node_Str" + reportsJSON,exception);
  }
}

Fixed version (ground truth):
/** 
 * @param reportsJSON
 */
public void setReportsJSON(String reportsJSON){
  try {
    JSONArray jsonArray=new JSONArray(reportsJSON);
    for (int i=0; i < jsonArray.length(); i++) {
      JSONObject report=jsonArray.getJSONObject(i);
      if (!report.has(SavedSearchDetails.NAME)) {
        throw new AlfrescoRuntimeException("String_Node_Str" + reportsJSON);
      }
      String name=report.getString(SavedSearchDetails.NAME);
      String translatedName=I18NUtil.getMessage(name);
      if (translatedName != null) {
        name=translatedName;
      }
      if (!report.has(SavedSearchDetails.SEARCH)) {
        throw new AlfrescoRuntimeException("String_Node_Str" + name + "String_Node_Str"+ reportsJSON);
      }
      String query=report.getString(SavedSearchDetails.SEARCH);
      String description="String_Node_Str";
      if (report.has(SavedSearchDetails.DESCRIPTION)) {
        description=report.getString(SavedSearchDetails.DESCRIPTION);
        String translatedDescription=I18NUtil.getMessage(description);
        if (translatedDescription != null) {
          description=translatedDescription;
        }
      }
      RecordsManagementSearchParameters searchParameters=new RecordsManagementSearchParameters();
      if (report.has("String_Node_Str")) {
        searchParameters=RecordsManagementSearchParameters.createFromJSON(report.getJSONObject("String_Node_Str"),namespaceService);
      }
      ReportDetails reportDetails=new ReportDetails(name,description,query,searchParameters);
      reports.add(reportDetails);
    }
  }
 catch (  JSONException exception) {
    throw new AlfrescoRuntimeException("String_Node_Str" + reportsJSON,exception);
  }
}