Program: 89081
Project: 89081
Buggy source:
@SuppressWarnings("String_Node_Str") @Override public Map<String,Object> executeImpl(WebScriptRequest req,Status status,Cache cache){
  String reqContentAsString;
  try {
    reqContentAsString=req.getContent().getContent();
  }
 catch (  IOException iox) {
    throw new WebScriptException(Status.STATUS_BAD_REQUEST,"String_Node_Str",iox);
  }
  String actionName=null;
  List<NodeRef> targetNodeRefs=new ArrayList<NodeRef>(1);
  Map<String,Serializable> actionParams=new HashMap<String,Serializable>(3);
  try {
    JSONObject jsonObj=new JSONObject(new JSONTokener(reqContentAsString));
    if (jsonObj.has(PARAM_NAME)) {
      actionName=jsonObj.getString(PARAM_NAME);
    }
    if (jsonObj.has(PARAM_NODE_REF)) {
      NodeRef nodeRef=new NodeRef(jsonObj.getString(PARAM_NODE_REF));
      targetNodeRefs.add(nodeRef);
    }
    if (jsonObj.has(PARAM_NODE_REFS)) {
      JSONArray jsonArray=jsonObj.getJSONArray(PARAM_NODE_REFS);
      if (jsonArray.length() != 0) {
        targetNodeRefs=new ArrayList<NodeRef>(jsonArray.length());
        for (int i=0; i < jsonArray.length(); i++) {
          NodeRef nodeRef=new NodeRef(jsonArray.getString(i));
          targetNodeRefs.add(nodeRef);
        }
      }
    }
    if (jsonObj.has(PARAM_PARAMS)) {
      JSONObject paramsObj=jsonObj.getJSONObject(PARAM_PARAMS);
      for (Iterator<String> iter=paramsObj.keys(); iter.hasNext(); ) {
        String nextKeyString=iter.next();
        Object nextValue=paramsObj.get(nextKeyString);
        if ((nextValue instanceof JSONObject) && ((JSONObject)nextValue).has("String_Node_Str")) {
          String dateStringValue=((JSONObject)nextValue).getString("String_Node_Str");
          nextValue=ISO8601DateFormat.parse(dateStringValue);
        }
        actionParams.put(nextKeyString,(Serializable)nextValue);
      }
    }
  }
 catch (  JSONException exception) {
    throw new WebScriptException(Status.STATUS_BAD_REQUEST,"String_Node_Str",exception);
  }
  if (actionName == null) {
    throw new WebScriptException(Status.STATUS_BAD_REQUEST,"String_Node_Str");
  }
  StringBuffer targetNodeRefsString=new StringBuffer(30);
  boolean firstTime=true;
  for (  NodeRef targetNodeRef : targetNodeRefs) {
    if (!nodeService.exists(targetNodeRef)) {
      throw new WebScriptException(Status.STATUS_NOT_FOUND,"String_Node_Str" + targetNodeRef.toString() + "String_Node_Str");
    }
    if (firstTime) {
      firstTime=false;
    }
 else {
      targetNodeRefsString.append("String_Node_Str");
    }
    targetNodeRefsString.append(targetNodeRef.toString());
  }
  if (logger.isDebugEnabled()) {
    StringBuilder msg=new StringBuilder();
    msg.append("String_Node_Str").append(actionName).append("String_Node_Str").append(targetNodeRefsString.toString()).append("String_Node_Str").append(actionParams);
    logger.debug(msg.toString());
  }
  Map<String,Object> model=new HashMap<String,Object>();
  if (targetNodeRefs.isEmpty()) {
    RecordsManagementActionResult result=this.rmActionService.executeRecordsManagementAction(actionName,actionParams);
    if (result.getValue() != null) {
      model.put("String_Node_Str",result.getValue().toString());
    }
  }
 else {
    Map<NodeRef,RecordsManagementActionResult> resultMap=this.rmActionService.executeRecordsManagementAction(targetNodeRefs,actionName,actionParams);
    Map<String,String> results=new HashMap<String,String>(resultMap.size());
    for (    Map.Entry<NodeRef,RecordsManagementActionResult> entry : resultMap.entrySet()) {
      Object value=entry.getValue().getValue();
      if (value != null) {
        results.put(entry.getKey().toString(),value.toString());
      }
    }
    model.put("String_Node_Str",results);
  }
  model.put("String_Node_Str","String_Node_Str" + actionName + "String_Node_Str"+ targetNodeRefsString.toString());
  return model;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override public Map<String,Object> executeImpl(WebScriptRequest req,Status status,Cache cache){
  String reqContentAsString;
  try {
    reqContentAsString=req.getContent().getContent();
  }
 catch (  IOException iox) {
    throw new WebScriptException(Status.STATUS_BAD_REQUEST,"String_Node_Str",iox);
  }
  String actionName=null;
  List<NodeRef> targetNodeRefs=new ArrayList<NodeRef>(1);
  Map<String,Serializable> actionParams=new HashMap<String,Serializable>(3);
  try {
    JSONObject jsonObj=new JSONObject(new JSONTokener(reqContentAsString));
    if (jsonObj.has(PARAM_NAME)) {
      actionName=jsonObj.getString(PARAM_NAME);
    }
    if (jsonObj.has(PARAM_NODE_REF)) {
      NodeRef nodeRef=new NodeRef(jsonObj.getString(PARAM_NODE_REF));
      targetNodeRefs.add(nodeRef);
    }
    if (jsonObj.has(PARAM_NODE_REFS)) {
      JSONArray jsonArray=jsonObj.getJSONArray(PARAM_NODE_REFS);
      if (jsonArray.length() != 0) {
        targetNodeRefs=new ArrayList<NodeRef>(jsonArray.length());
        for (int i=0; i < jsonArray.length(); i++) {
          NodeRef nodeRef=new NodeRef(jsonArray.getString(i));
          targetNodeRefs.add(nodeRef);
        }
      }
    }
    if (jsonObj.has(PARAM_PARAMS)) {
      JSONObject paramsObj=jsonObj.getJSONObject(PARAM_PARAMS);
      for (Iterator<String> iter=paramsObj.keys(); iter.hasNext(); ) {
        String nextKeyString=iter.next();
        Object nextValue=paramsObj.get(nextKeyString);
        if ((nextValue instanceof JSONObject) && ((JSONObject)nextValue).has("String_Node_Str")) {
          String dateStringValue=((JSONObject)nextValue).getString("String_Node_Str");
          nextValue=ISO8601DateFormat.parse(dateStringValue);
        }
        actionParams.put(nextKeyString,(Serializable)nextValue);
      }
    }
  }
 catch (  JSONException exception) {
    throw new WebScriptException(Status.STATUS_BAD_REQUEST,"String_Node_Str",exception);
  }
  if (actionName == null) {
    throw new WebScriptException(Status.STATUS_BAD_REQUEST,"String_Node_Str");
  }
  StringBuilder targetNodeRefsString=new StringBuilder(30);
  boolean firstTime=true;
  for (  NodeRef targetNodeRef : targetNodeRefs) {
    if (!nodeService.exists(targetNodeRef)) {
      throw new WebScriptException(Status.STATUS_NOT_FOUND,"String_Node_Str" + targetNodeRef.toString() + "String_Node_Str");
    }
    if (firstTime) {
      firstTime=false;
    }
 else {
      targetNodeRefsString.append("String_Node_Str");
    }
    targetNodeRefsString.append(targetNodeRef.toString());
  }
  if (logger.isDebugEnabled()) {
    StringBuilder msg=new StringBuilder();
    msg.append("String_Node_Str").append(actionName).append("String_Node_Str").append(targetNodeRefsString.toString()).append("String_Node_Str").append(actionParams);
    logger.debug(msg.toString());
  }
  Map<String,Object> model=new HashMap<String,Object>();
  if (targetNodeRefs.isEmpty()) {
    RecordsManagementActionResult result=this.rmActionService.executeRecordsManagementAction(actionName,actionParams);
    if (result.getValue() != null) {
      model.put("String_Node_Str",result.getValue().toString());
    }
  }
 else {
    Map<NodeRef,RecordsManagementActionResult> resultMap=this.rmActionService.executeRecordsManagementAction(targetNodeRefs,actionName,actionParams);
    Map<String,String> results=new HashMap<String,String>(resultMap.size());
    for (    Map.Entry<NodeRef,RecordsManagementActionResult> entry : resultMap.entrySet()) {
      Object value=entry.getValue().getValue();
      if (value != null) {
        results.put(entry.getKey().toString(),value.toString());
      }
    }
    model.put("String_Node_Str",results);
  }
  model.put("String_Node_Str","String_Node_Str" + actionName + "String_Node_Str"+ targetNodeRefsString.toString());
  return model;
}