Program: 74781
Project: 74781
Buggy source:
/** 
 * Handle Multi-value List Box type parameter
 * @param selectionList
 * @throws Exception
 */
protected void __handleMultiListBox(Collection selectionList) throws Exception {
  JspWriter writer=pageContext.getOut();
  String encParamId=ParameterAccessor.htmlEncode(param.getId());
  String encParamName=ParameterAccessor.htmlEncode(param.getName());
  String containerId=encParamId + "String_Node_Str";
  String displayTextName=ParameterAccessor.PREFIX_DISPLAY_TEXT + encParamName;
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + containerId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + IBirtConstants.NULL_VALUE + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "String_Node_Str");
  writer.write("String_Node_Str" + encParamName + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamName + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + displayTextName + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  if (this.isLocale) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISLOCALE + "String_Node_Str");
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  String onChange="String_Node_Str" + encParamId + "String_Node_Str";
  writer.write("String_Node_Str" + containerId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  __handleGeneralDefinition();
  writer.write("String_Node_Str" + onChange + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (DataUtil.contain(this.valueStringList,"String_Node_Str"))     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
  }
  for (Iterator iter=selectionList.iterator(); iter.hasNext(); ) {
    ParameterSelectionChoice selectionItem=(ParameterSelectionChoice)iter.next();
    Object value=selectionItem.getValue();
    try {
      value=DataUtil.convert(value,paramDef.getDataType());
    }
 catch (    Exception e) {
      value=null;
    }
    String displayValue=DataUtil.getDisplayValue(value);
    if (displayValue == null)     continue;
    String label=selectionItem.getLabel();
    if (label == null || label.length() <= 0)     label=ParameterValidationUtil.getDisplayValue(null,this.pattern,value,this.locale);
    label=label != null ? label : "String_Node_Str";
    writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(displayValue) + "String_Node_Str");
    if (DataUtil.contain(this.valueStringList,displayValue))     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write(ParameterAccessor.htmlEncode(label));
    writer.write("String_Node_Str");
  }
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (DataUtil.contain(this.valueStringList,null))     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write(IBirtConstants.NULL_VALUE + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Handle Multi-value List Box type parameter
 * @param selectionList
 * @throws Exception
 */
protected void __handleMultiListBox(Collection selectionList) throws Exception {
  JspWriter writer=pageContext.getOut();
  String encParamId=ParameterAccessor.htmlEncode(param.getId());
  String encParamName=ParameterAccessor.htmlEncode(param.getName());
  String containerId=encParamId + "String_Node_Str";
  String displayTextName=ParameterAccessor.PREFIX_DISPLAY_TEXT + encParamName;
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + containerId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + IBirtConstants.NULL_VALUE + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "String_Node_Str");
  writer.write("String_Node_Str" + encParamName + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamName + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + displayTextName + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  if (this.isLocale) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISLOCALE + "String_Node_Str");
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  String onChange="String_Node_Str" + encParamId + "String_Node_Str";
  writer.write("String_Node_Str" + containerId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  __handleGeneralDefinition();
  writer.write("String_Node_Str" + onChange + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (DataUtil.contain(this.valueStringList,"String_Node_Str",true))     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
  }
  for (Iterator iter=selectionList.iterator(); iter.hasNext(); ) {
    ParameterSelectionChoice selectionItem=(ParameterSelectionChoice)iter.next();
    Object value=selectionItem.getValue();
    try {
      value=DataUtil.convert(value,paramDef.getDataType());
    }
 catch (    Exception e) {
      value=null;
    }
    String displayValue=DataUtil.getDisplayValue(value);
    if (displayValue == null)     continue;
    String label=selectionItem.getLabel();
    if (label == null || label.length() <= 0)     label=ParameterValidationUtil.getDisplayValue(null,this.pattern,value,this.locale);
    label=label != null ? label : "String_Node_Str";
    writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(displayValue) + "String_Node_Str");
    if (DataUtil.contain(this.valueStringList,displayValue,true))     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write(ParameterAccessor.htmlEncode(label));
    writer.write("String_Node_Str");
  }
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (DataUtil.contain(this.valueStringList,null,true))     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write(IBirtConstants.NULL_VALUE + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
}