Program: 75701
Project: 75701
Buggy source:
/** 
 * Handle HTTP POST method.
 * @param request incoming http request
 * @param response http response
 * @exception ServletException
 * @exception IOException
 * @return
 */
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
  if (!__authenticate(request,response)) {
    return;
  }
  StringBuilder builder=new StringBuilder();
  Iterator it=request.getParameterMap().keySet().iterator();
  while (it.hasNext()) {
    String paramName=(String)it.next();
    if (paramName != null && paramName.startsWith("String_Node_Str")) {
      String paramValue=ParameterAccessor.urlEncode(ParameterAccessor.getParameter(request,paramName),ParameterAccessor.UTF_8_ENCODE);
      builder.append("String_Node_Str" + paramName + "String_Node_Str"+ paramValue);
    }
  }
  String soapURL=request.getRequestURL().toString();
  if (request.getQueryString() != null) {
    soapURL+="String_Node_Str" + request.getQueryString() + builder.toString();
  }
 else {
    builder.deleteCharAt(0);
    soapURL+="String_Node_Str" + builder.toString();
  }
  request.setAttribute("String_Node_Str",soapURL);
  IContext context=null;
  try {
    context=__getContext(request,response);
  }
 catch (  BirtException e) {
    __handleNonSoapException(request,response,e);
    return;
  }
  try {
    __doPost(context);
    String requestType=request.getHeader(ParameterAccessor.HEADER_REQUEST_TYPE);
    if (ParameterAccessor.HEADER_REQUEST_TYPE_SOAP.equalsIgnoreCase(requestType)) {
      super.doPost(request,response);
    }
 else {
      doGet(request,response);
    }
  }
 catch (  BirtException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
/** 
 * Handle HTTP POST method.
 * @param request incoming http request
 * @param response http response
 * @exception ServletException
 * @exception IOException
 * @return
 */
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
  if (!__authenticate(request,response)) {
    return;
  }
  StringBuffer builder=new StringBuffer();
  Iterator it=request.getParameterMap().keySet().iterator();
  while (it.hasNext()) {
    String paramName=(String)it.next();
    if (paramName != null && paramName.startsWith("String_Node_Str")) {
      String paramValue=ParameterAccessor.urlEncode(ParameterAccessor.getParameter(request,paramName),ParameterAccessor.UTF_8_ENCODE);
      builder.append("String_Node_Str" + paramName + "String_Node_Str"+ paramValue);
    }
  }
  String soapURL=request.getRequestURL().toString();
  if (request.getQueryString() != null) {
    soapURL+="String_Node_Str" + request.getQueryString() + builder.toString();
  }
 else {
    builder.deleteCharAt(0);
    soapURL+="String_Node_Str" + builder.toString();
  }
  request.setAttribute("String_Node_Str",soapURL);
  IContext context=null;
  try {
    context=__getContext(request,response);
  }
 catch (  BirtException e) {
    __handleNonSoapException(request,response,e);
    return;
  }
  try {
    __doPost(context);
    String requestType=request.getHeader(ParameterAccessor.HEADER_REQUEST_TYPE);
    if (ParameterAccessor.HEADER_REQUEST_TYPE_SOAP.equalsIgnoreCase(requestType)) {
      super.doPost(request,response);
    }
 else {
      doGet(request,response);
    }
  }
 catch (  BirtException e) {
    e.printStackTrace();
  }
}