Program: 76022
Project: 76022
Buggy source:
/** 
 * Handle Common List Box type parameter( not cascading parameter )
 * @param selectionList
 * @throws Exception
 */
protected void __handleCommonListBox(Collection selectionList) throws Exception {
  JspWriter writer=pageContext.getOut();
  String encParamId=ParameterAccessor.htmlEncode(param.getId());
  String encParamName=ParameterAccessor.htmlEncode(param.getName());
  String displayTextId=encParamId + "String_Node_Str";
  String displayTextName=ParameterAccessor.PREFIX_DISPLAY_TEXT + encParamName;
  boolean isSelected=false;
  boolean isNullValue=param.getValue() == null;
  String valueId=encParamId + "String_Node_Str";
  String nullValueId=encParamId + "String_Node_Str";
  String radioSelectId=encParamId + "String_Node_Str";
  String radioTextId=encParamId + "String_Node_Str";
  String inputTextId=encParamId + "String_Node_Str";
  String isLocaleId=encParamId + "String_Node_Str";
  String patternId=encParamId + "String_Node_Str";
  String patternName=encParamName + "String_Node_Str";
  if (!paramDef.mustMatch()) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioSelectId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioTextId + "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" + inputTextId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + isLocaleId + "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" + ParameterAccessor.PARAM_ISLOCALE + "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");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + nullValueId + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "String_Node_Str");
    writer.write("String_Node_Str" + valueId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + displayTextId + "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" + encParamId + "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" + inputTextId + "String_Node_Str");
    writer.write("String_Node_Str" + valueId + "String_Node_Str");
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + displayTextId + "String_Node_Str");
    writer.write("String_Node_Str" + displayTextName + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + nullValueId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + isLocaleId + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISLOCALE + "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" + patternId + "String_Node_Str");
    writer.write("String_Node_Str" + patternName + "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" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + valueId + "String_Node_Str");
  writer.write("String_Node_Str" + displayTextId + "String_Node_Str");
  writer.write("String_Node_Str" + nullValueId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + ITagConstants.NULL_VALUE + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "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" + encParamName + "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");
  writer.write("String_Node_Str");
  String onChange="String_Node_Str" + encParamId + "String_Node_Str";
  if (!paramDef.mustMatch()) {
    String onClick="String_Node_Str" + encParamId + "String_Node_Str";
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioSelectId + "String_Node_Str");
    writer.write("String_Node_Str" + onClick + "String_Node_Str");
    writer.write("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");
  if (paramDef.mustMatch() && !paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (param.getValue() != null && DataUtil.getString(param.getValue()).length() <= 0) {
      writer.write("String_Node_Str");
      isSelected=true;
    }
    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 (displayValue.equals(DataUtil.getDisplayValue(param.getValue()))) {
      isSelected=true;
      writer.write("String_Node_Str");
      if (param.getDisplayText() == null) {
        this.displayTextString=label;
      }
 else {
        label=param.getDisplayText();
      }
    }
    writer.write("String_Node_Str");
    writer.write(ParameterAccessor.htmlEncode(label));
    writer.write("String_Node_Str");
  }
  String defaultValueText=null;
  if (!isSelected && paramDef.mustMatch()) {
    Object defaultValue=BirtReportServiceFactory.getReportService().getParameterDefaultValue(viewer.getReportDesignHandle(),param.getName(),options);
    if (defaultValue == null) {
      isNullValue=true;
    }
 else {
      isNullValue=false;
      defaultValueText=DataUtil.getDisplayValue(defaultValue);
      if (defaultValueText != null)       this.valueString=defaultValueText;
      String defaultDisplayText=ParameterValidationUtil.getDisplayValue(null,this.pattern,defaultValue,locale);
      if (defaultDisplayText != null)       this.displayTextString=defaultDisplayText;
      writer.write("String_Node_Str");
      writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.valueString) + "String_Node_Str");
      writer.write("String_Node_Str");
      writer.write(ParameterAccessor.htmlEncode(this.displayTextString) + "String_Node_Str");
    }
  }
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (isNullValue)     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write(ITagConstants.NULL_VALUE + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  if (!paramDef.mustMatch()) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + isLocaleId + "String_Node_Str");
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str");
    if (param.getPattern() != null) {
      writer.write("String_Node_Str" + patternId + "String_Node_Str");
      writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(param.getPattern()) + "String_Node_Str");
    }
    String onClick="String_Node_Str" + encParamId + "String_Node_Str";
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioTextId + "String_Node_Str");
    writer.write("String_Node_Str" + onClick + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + inputTextId + "String_Node_Str");
    if (!isSelected) {
      writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.displayTextString) + "String_Node_Str");
    }
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + encParamId + "String_Node_Str"+ (isNullValue || isSelected)+ "String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + displayTextId + "String_Node_Str");
  if (!isNullValue) {
    writer.write("String_Node_Str" + displayTextName + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.displayTextString) + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + valueId + "String_Node_Str");
  if (!isNullValue) {
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.valueString) + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str" + encParamName + "String_Node_Str"+ nullValueId+ "String_Node_Str");
    if (isNullValue)     writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "String_Node_Str");
    writer.write("String_Node_Str");
  }
  if (!isSelected && paramDef.mustMatch()) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    if (defaultValueText != null) {
      writer.write("String_Node_Str" + defaultValueText + "String_Node_Str");
    }
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Handle Common List Box type parameter( not cascading parameter )
 * @param selectionList
 * @throws Exception
 */
protected void __handleCommonListBox(Collection selectionList) throws Exception {
  JspWriter writer=pageContext.getOut();
  String encParamId=ParameterAccessor.htmlEncode(param.getId());
  String encParamName=ParameterAccessor.htmlEncode(param.getName());
  String displayTextId=encParamId + "String_Node_Str";
  String displayTextName=ParameterAccessor.PREFIX_DISPLAY_TEXT + encParamName;
  boolean isSelected=false;
  boolean isNullValue=param.getValue() == null;
  String valueId=encParamId + "String_Node_Str";
  String nullValueId=encParamId + "String_Node_Str";
  String radioSelectId=encParamId + "String_Node_Str";
  String radioTextId=encParamId + "String_Node_Str";
  String inputTextId=encParamId + "String_Node_Str";
  String isLocaleId=encParamId + "String_Node_Str";
  String patternId=encParamId + "String_Node_Str";
  String patternName=encParamName + "String_Node_Str";
  if (!paramDef.mustMatch()) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioSelectId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioTextId + "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" + inputTextId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + isLocaleId + "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" + ParameterAccessor.PARAM_ISLOCALE + "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");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + nullValueId + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "String_Node_Str");
    writer.write("String_Node_Str" + valueId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + displayTextId + "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" + encParamId + "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" + inputTextId + "String_Node_Str");
    writer.write("String_Node_Str" + valueId + "String_Node_Str");
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + displayTextId + "String_Node_Str");
    writer.write("String_Node_Str" + displayTextName + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + nullValueId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + isLocaleId + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISLOCALE + "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" + patternId + "String_Node_Str");
    writer.write("String_Node_Str" + patternName + "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" + encParamId + "String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + valueId + "String_Node_Str");
  writer.write("String_Node_Str" + displayTextId + "String_Node_Str");
  writer.write("String_Node_Str" + nullValueId + "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" + ParameterAccessor.PARAM_ISNULL + "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" + encParamName + "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");
  writer.write("String_Node_Str");
  String onChange="String_Node_Str" + encParamId + "String_Node_Str";
  if (!paramDef.mustMatch()) {
    String onClick="String_Node_Str" + encParamId + "String_Node_Str";
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioSelectId + "String_Node_Str");
    writer.write("String_Node_Str" + onClick + "String_Node_Str");
    writer.write("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");
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (param.getValue() != null && DataUtil.getString(param.getValue()).length() <= 0) {
      writer.write("String_Node_Str");
      isSelected=true;
    }
    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 (displayValue.equals(DataUtil.getDisplayValue(param.getValue()))) {
      isSelected=true;
      writer.write("String_Node_Str");
      if (param.getDisplayText() == null) {
        this.displayTextString=label;
      }
 else {
        label=param.getDisplayText();
      }
    }
    writer.write("String_Node_Str");
    writer.write(ParameterAccessor.htmlEncode(label));
    writer.write("String_Node_Str");
  }
  String defaultValueText=null;
  if (!isSelected) {
    Object defaultValue=BirtReportServiceFactory.getReportService().getParameterDefaultValue(viewer.getReportDesignHandle(),param.getName(),options);
    if (defaultValue == null) {
      isNullValue=true;
    }
 else {
      isNullValue=false;
      defaultValueText=DataUtil.getDisplayValue(defaultValue);
      if (this.valueString.equalsIgnoreCase(defaultValueText) || paramDef.mustMatch()) {
        if (defaultValueText != null)         this.valueString=defaultValueText;
        String defaultDisplayText=ParameterValidationUtil.getDisplayValue(null,this.pattern,defaultValue,locale);
        if (defaultDisplayText != null)         this.displayTextString=defaultDisplayText;
        writer.write("String_Node_Str");
        writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.valueString) + "String_Node_Str");
        writer.write("String_Node_Str");
        writer.write(ParameterAccessor.htmlEncode(this.displayTextString) + "String_Node_Str");
        isSelected=true;
      }
    }
  }
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str");
    if (isNullValue)     writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write(IBirtConstants.NULL_VALUE + "String_Node_Str");
    isSelected=true;
  }
  writer.write("String_Node_Str");
  if (!paramDef.mustMatch()) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + isLocaleId + "String_Node_Str");
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str");
    if (param.getPattern() != null) {
      writer.write("String_Node_Str" + patternId + "String_Node_Str");
      writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(param.getPattern()) + "String_Node_Str");
    }
    String onClick="String_Node_Str" + encParamId + "String_Node_Str";
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + radioTextId + "String_Node_Str");
    writer.write("String_Node_Str" + onClick + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + inputTextId + "String_Node_Str");
    if (!isSelected) {
      writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.displayTextString) + "String_Node_Str");
    }
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + encParamId + "String_Node_Str"+ isSelected+ "String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + displayTextId + "String_Node_Str");
  if (!isNullValue) {
    writer.write("String_Node_Str" + displayTextName + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.displayTextString) + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  writer.write("String_Node_Str");
  writer.write("String_Node_Str" + valueId + "String_Node_Str");
  if (!isNullValue) {
    writer.write("String_Node_Str" + encParamName + "String_Node_Str");
    writer.write("String_Node_Str" + ParameterAccessor.htmlEncode(this.valueString) + "String_Node_Str");
  }
  writer.write("String_Node_Str");
  if (!paramDef.isRequired()) {
    writer.write("String_Node_Str" + encParamName + "String_Node_Str"+ nullValueId+ "String_Node_Str");
    if (isNullValue)     writer.write("String_Node_Str" + ParameterAccessor.PARAM_ISNULL + "String_Node_Str");
    writer.write("String_Node_Str");
  }
  if (!isSelected && paramDef.mustMatch()) {
    writer.write("String_Node_Str");
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
    if (defaultValueText != null) {
      writer.write("String_Node_Str" + defaultValueText + "String_Node_Str");
    }
    writer.write("String_Node_Str" + encParamId + "String_Node_Str");
    writer.write("String_Node_Str");
    writer.write("String_Node_Str");
  }
}