Program: 39759
Project: 39759
Buggy source:
@Override protected void service(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
  String requestMethod=req.getMethod().toLowerCase();
  String requestPath=req.getPathInfo();
  Handler handler=ControllerHelper.getHandler(requestMethod,requestPath);
  if (handler != null) {
    Class<?> controllerClass=handler.getControllerClass();
    Object controllerInstance=BeanHelper.getBean(controllerClass);
    Map<String,Object> paramsMap=new HashMap<String,Object>();
    Enumeration<String> paramNames=req.getParameterNames();
    while (paramNames.hasMoreElements()) {
      String paramName=paramNames.nextElement();
      String paramValue=req.getParameter(paramName);
      paramsMap.put(paramName,paramValue);
    }
    Params params=new Params(paramsMap);
    Method method=handler.getMethod();
    Object result=ReflectionUtil.invokeMethod(controllerInstance,method,params);
    if (result instanceof View) {
      View view=(View)result;
      String path=view.getPath();
      if (StringUtil.isNotEmpty(path)) {
        if (path.startsWith("String_Node_Str")) {
          resp.sendRedirect(req.getContextPath() + path);
        }
 else {
          Map<String,Object> dataModel=view.getDataModel();
          for (          Map.Entry<String,Object> entry : dataModel.entrySet()) {
            req.setAttribute(entry.getKey(),entry.getValue());
          }
          req.getRequestDispatcher(ConfigHelper.getAppJspPath() + path).forward(req,resp);
        }
      }
    }
 else     if (result instanceof JsonData) {
      JsonData jsonData=(JsonData)result;
      Object dataModel=jsonData.getDataModel();
      if (dataModel != null) {
        resp.setContentType("String_Node_Str");
        resp.setCharacterEncoding("String_Node_Str");
        PrintWriter printWriter=resp.getWriter();
        String json=JsonUtil.toJson(dataModel);
        printWriter.write(json);
        printWriter.flush();
        printWriter.close();
      }
    }
  }
}

Fixed version (ground truth):
@Override protected void service(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
  String requestMethod=req.getMethod().toLowerCase();
  String requestPath=req.getPathInfo();
  Handler handler=ControllerHelper.getHandler(requestMethod,requestPath);
  if (handler != null) {
    Class<?> controllerClass=handler.getControllerClass();
    Object controllerInstance=BeanHelper.getBean(controllerClass);
    Map<String,Object> paramsMap=new HashMap<String,Object>();
    Enumeration<String> paramNames=req.getParameterNames();
    while (paramNames.hasMoreElements()) {
      String paramName=paramNames.nextElement();
      String paramValue=req.getParameter(paramName);
      paramsMap.put(paramName,paramValue);
    }
    String urlStr=CodecUtil.decodeUrl(StreamUtil.getString(req.getInputStream()));
    if (StringUtil.isNotEmpty(urlStr)) {
      String[] params=urlStr.split("String_Node_Str");
      if (ArrayUtil.isNotEmpty(params)) {
        for (        String param : params) {
          String[] arr=param.split("String_Node_Str");
          if (ArrayUtil.isNotEmpty(arr) && arr.length == 2) {
            paramsMap.put(arr[0],arr[1]);
          }
        }
      }
    }
    Params params=new Params(paramsMap);
    Method method=handler.getMethod();
    Object result=ReflectionUtil.invokeMethod(controllerInstance,method,params);
    if (result instanceof View) {
      View view=(View)result;
      String path=view.getPath();
      if (StringUtil.isNotEmpty(path)) {
        if (path.startsWith("String_Node_Str")) {
          resp.sendRedirect(req.getContextPath() + path);
        }
 else {
          Map<String,Object> dataModel=view.getDataModel();
          for (          Map.Entry<String,Object> entry : dataModel.entrySet()) {
            req.setAttribute(entry.getKey(),entry.getValue());
          }
          req.getRequestDispatcher(ConfigHelper.getAppJspPath() + path).forward(req,resp);
        }
      }
    }
 else     if (result instanceof JsonData) {
      JsonData jsonData=(JsonData)result;
      Object dataModel=jsonData.getDataModel();
      if (dataModel != null) {
        resp.setContentType("String_Node_Str");
        resp.setCharacterEncoding("String_Node_Str");
        PrintWriter printWriter=resp.getWriter();
        String json=JsonUtil.toJson(dataModel);
        printWriter.write(json);
        printWriter.flush();
        printWriter.close();
      }
    }
  }
}