Program: 86833
Project: 86833
Buggy source:
/** 
 * Processes the form when a user submits.  
 * @param cohortDefinition
 * @param bindingResult
 * @return
 */
@RequestMapping(method=RequestMethod.POST) public ModelAndView processForm(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="String_Node_Str",required=false) String uuid,@RequestParam(value="String_Node_Str",required=false) Class<Parameterizable> type,@RequestParam(value="String_Node_Str",required=false) String action,@RequestParam(value="String_Node_Str",required=false) String format,@RequestParam(value="String_Node_Str",required=false) String successView,@ModelAttribute("String_Node_Str") Parameterizable parameterizable,BindingResult bindingResult) throws Exception {
  Object results=null;
  ModelAndView model=new ModelAndView();
  if (bindingResult.hasErrors()) {
    request.getSession().setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"String_Node_Str");
    return setupForm(request);
  }
  if (parameterizable == null)   parameterizable=ParameterizableUtil.getParameterizable(uuid,type);
  if (parameterizable != null) {
    EvaluationContext evaluationContext=new EvaluationContext();
    Map<String,String> parameterValuesAsStrings=new HashMap<String,String>();
    for (    Parameter parameter : parameterizable.getParameters()) {
      log.info("String_Node_Str" + parameter.getName() + "String_Node_Str"+ request.getParameter(parameter.getName()));
      parameterValuesAsStrings.put(parameter.getName(),request.getParameter(parameter.getName()));
    }
    Map<String,Object> parameterValues=new HashMap<String,Object>();
    if (parameterizable != null && parameterizable.getParameters() != null) {
      for (      Parameter parameter : parameterizable.getParameters()) {
        String textValue=parameterValuesAsStrings.get(parameter.getName());
        Object objectValue=WidgetUtil.parseInput(textValue,parameter.getType());
        parameterValues.put(parameter.getName(),objectValue);
      }
    }
    evaluationContext.setParameterValues(parameterValues);
    model.addObject("String_Node_Str",evaluationContext);
    try {
      results=ParameterizableUtil.evaluateParameterizable(parameterizable,evaluationContext);
      request.getSession().setAttribute("String_Node_Str",results);
      model.setViewName("String_Node_Str");
    }
 catch (    ParameterException e) {
      log.error("String_Node_Str",e);
      request.getSession().setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"String_Node_Str" + e.getMessage());
      setupForm(request);
    }
  }
  log.info("String_Node_Str" + model.getViewName() + "String_Node_Str"+ model.getModelMap());
  return model;
}

Fixed version (ground truth):
/** 
 * Processes the form when a user submits.  
 * @param cohortDefinition
 * @param bindingResult
 * @return
 */
@RequestMapping(method=RequestMethod.POST) public ModelAndView processForm(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="String_Node_Str",required=false) String uuid,@RequestParam(value="String_Node_Str",required=false) Class<Parameterizable> type,@RequestParam(value="String_Node_Str",required=false) String action,@RequestParam(value="String_Node_Str",required=false) String format,@RequestParam(value="String_Node_Str",required=false) String successView,@ModelAttribute("String_Node_Str") Parameterizable parameterizable,BindingResult bindingResult) throws Exception {
  Object results=null;
  ModelAndView model=new ModelAndView();
  if (parameterizable == null)   parameterizable=ParameterizableUtil.getParameterizable(uuid,type);
  if (parameterizable != null) {
    EvaluationContext evaluationContext=new EvaluationContext();
    Map<String,Object> parameterValues=new HashMap<String,Object>();
    if (parameterizable != null && parameterizable.getParameters() != null) {
      for (      Parameter parameter : parameterizable.getParameters()) {
        Object paramVal=WidgetUtil.getFromRequest(parameter.getName(),parameterizable,request);
        parameterValues.put(parameter.getName(),paramVal);
      }
    }
    evaluationContext.setParameterValues(parameterValues);
    model.addObject("String_Node_Str",evaluationContext);
    try {
      results=ParameterizableUtil.evaluateParameterizable(parameterizable,evaluationContext);
      request.getSession().setAttribute("String_Node_Str",results);
      model.setViewName("String_Node_Str");
    }
 catch (    ParameterException e) {
      log.error("String_Node_Str",e);
      request.getSession().setAttribute(WebConstants.OPENMRS_ERROR_ATTR,"String_Node_Str" + e.getMessage());
      setupForm(request);
    }
  }
  log.info("String_Node_Str" + model.getViewName() + "String_Node_Str"+ model.getModelMap());
  return model;
}