Program: 78173
Project: 78173
Buggy source:
protected void doService(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
  Collection fragments=new ArrayList();
  IViewerReportService service=getReportService();
  String reportDesignName=ParameterAccessor.getReport(request);
  Collection parameters=null;
  InputOptions options=new InputOptions();
  options.setOption(InputOptions.OPT_REQUEST,request);
  IViewerReportDesignHandle design=new BirtViewerReportDesignHandle(null,reportDesignName);
  try {
    parameters=service.getParameterDefinitions(design,options,true);
  }
 catch (  ReportServiceException e) {
    e.printStackTrace();
  }
  if (parameters != null) {
    Iterator iParameters=parameters.iterator();
    while (iParameters != null && iParameters.hasNext()) {
      Object parameter=iParameters.next();
      if (parameter == null) {
        continue;
      }
      IFragment fragment=null;
      if (parameter instanceof ParameterGroupDefinition) {
        fragment=new ParameterGroupFragment((ParameterGroupDefinition)parameter);
      }
 else       if (parameter instanceof ParameterDefinition) {
        ParameterDefinition scalarParameter=(ParameterDefinition)parameter;
        if (!scalarParameter.isHidden()) {
switch (scalarParameter.getControlType()) {
case ParameterDefinition.TEXT_BOX:
{
              fragment=new TextBoxParameterFragment(scalarParameter);
              break;
            }
case ParameterDefinition.LIST_BOX:
{
            fragment=new ComboBoxParameterFragment(scalarParameter);
            break;
          }
case ParameterDefinition.RADIO_BUTTON:
{
          fragment=new RadioButtonParameterFragment(scalarParameter);
          break;
        }
case ParameterDefinition.CHECK_BOX:
{
        fragment=new CheckboxParameterFragment(scalarParameter);
        break;
      }
  }
}
}
if (fragment != null) {
fragments.add(fragment);
}
}
}
request.setAttribute("String_Node_Str",fragments);
}

Fixed version (ground truth):
protected void doService(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
  Collection fragments=new ArrayList();
  IViewerReportService service=getReportService();
  String reportDesignName=ParameterAccessor.getReport(request);
  Collection parameters=null;
  InputOptions options=new InputOptions();
  options.setOption(InputOptions.OPT_REQUEST,request);
  IViewerReportDesignHandle design=new BirtViewerReportDesignHandle(null,reportDesignName);
  try {
    parameters=service.getParameterDefinitions(design,options,true);
  }
 catch (  ReportServiceException e) {
    e.printStackTrace();
  }
  if (parameters != null) {
    Iterator iParameters=parameters.iterator();
    while (iParameters != null && iParameters.hasNext()) {
      Object parameter=iParameters.next();
      if (parameter == null) {
        continue;
      }
      IFragment fragment=null;
      if (parameter instanceof ParameterGroupDefinition) {
        fragment=new ParameterGroupFragment((ParameterGroupDefinition)parameter);
      }
 else       if (parameter instanceof ParameterDefinition) {
        ParameterDefinition scalarParameter=(ParameterDefinition)parameter;
        if (!scalarParameter.isHidden()) {
switch (scalarParameter.getControlType()) {
case ParameterDefinition.TEXT_BOX:
{
              fragment=new TextBoxParameterFragment(scalarParameter);
              break;
            }
case ParameterDefinition.LIST_BOX:
{
            fragment=new ComboBoxParameterFragment(scalarParameter);
            break;
          }
case ParameterDefinition.RADIO_BUTTON:
{
          fragment=new RadioButtonParameterFragment(scalarParameter);
          break;
        }
case ParameterDefinition.CHECK_BOX:
{
        fragment=new CheckboxParameterFragment(scalarParameter);
        break;
      }
  }
}
}
if (fragment != null) {
fragment.setJSPRootPath(JSPRootPath);
fragments.add(fragment);
}
}
}
request.setAttribute("String_Node_Str",fragments);
}