Program: 89441
Project: 89441
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) == true) {
      actionName=jsonObj.getString(PARAM_NAME);
    }
    if (jsonObj.has(PARAM_NODE_REF) == true) {
      NodeRef nodeRef=new NodeRef(jsonObj.getString(PARAM_NODE_REF));
      targetNodeRefs.add(nodeRef);
    }
    if (jsonObj.has(PARAM_NODE_REFS) == true) {
      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) {
          if (((JSONObject)nextValue).has("String_Node_Str") == true) {
            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");
  }
  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) == false) {
      throw new WebScriptException(Status.STATUS_NOT_FOUND,"String_Node_Str" + targetNodeRef.toString() + "String_Node_Str");
    }
    if (firstTime == true) {
      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 (    NodeRef nodeRef : resultMap.keySet()) {
      Object value=resultMap.get(nodeRef).getValue();
      if (value != null) {
        results.put(nodeRef.toString(),resultMap.get(nodeRef).getValue().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) == true) {
      actionName=jsonObj.getString(PARAM_NAME);
    }
    if (jsonObj.has(PARAM_NODE_REF) == true) {
      NodeRef nodeRef=new NodeRef(jsonObj.getString(PARAM_NODE_REF));
      targetNodeRefs.add(nodeRef);
    }
    if (jsonObj.has(PARAM_NODE_REFS) == true) {
      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) {
          if (((JSONObject)nextValue).has("String_Node_Str") == true) {
            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) == false) {
      throw new WebScriptException(Status.STATUS_NOT_FOUND,"String_Node_Str" + targetNodeRef.toString() + "String_Node_Str");
    }
    if (firstTime == true) {
      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 (    NodeRef nodeRef : resultMap.keySet()) {
      Object value=resultMap.get(nodeRef).getValue();
      if (value != null) {
        results.put(nodeRef.toString(),resultMap.get(nodeRef).getValue().toString());
      }
    }
    model.put("String_Node_Str",results);
  }
  model.put("String_Node_Str","String_Node_Str" + actionName + "String_Node_Str"+ targetNodeRefsString.toString());
  return model;
}