Program: 57036
Project: 57036
Buggy source:
/** 
 * Generates the HTML code for this component. 
 */
@Override public void encodeBegin(FacesContext context,UIComponent component) throws IOException {
  SelectMultiMenu menu=(SelectMultiMenu)component;
  if (!menu.isRendered()) {
    return;
  }
  ResponseWriter rw=context.getResponseWriter();
  String clientId=menu.getClientId(context).replace("String_Node_Str","String_Node_Str");
  ;
  rw.startElement("String_Node_Str",menu);
  Tooltip.generateTooltip(context,menu,rw);
  rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
  addLabel(rw,clientId,menu);
  UIComponent prependingAddOnFacet=menu.getFacet(C.PREPEND);
  if ((prependingAddOnFacet != null)) {
    R.addClass2FacetComponent(prependingAddOnFacet,"String_Node_Str",ADDON);
  }
  UIComponent appendingAddOnFacet=menu.getFacet(C.APPEND);
  if ((appendingAddOnFacet != null)) {
    R.addClass2FacetComponent(appendingAddOnFacet,"String_Node_Str",ADDON);
  }
  final boolean hasAddon=startInputGroupForAddOn(rw,(prependingAddOnFacet != null),(appendingAddOnFacet != null),menu);
  int span=startColSpanDiv(rw,menu);
  addPrependingAddOnToInputGroup(context,rw,prependingAddOnFacet,(prependingAddOnFacet != null),menu);
  renderSelectTag(context,rw,clientId,menu);
  addAppendingAddOnToInputGroup(context,rw,appendingAddOnFacet,(appendingAddOnFacet != null),menu);
  closeInputGroupForAddOn(rw,hasAddon);
  closeColSpanDiv(rw,span);
  rw.endElement("String_Node_Str");
  Tooltip.activateTooltips(context,menu);
  String options="String_Node_Str";
  int maxHeight=menu.getMaxHeight();
  if (maxHeight > 0) {
    options+="String_Node_Str" + "String_Node_Str" + String.valueOf(maxHeight);
  }
  String nonSelectedText=menu.getNonSelectedText();
  if (nonSelectedText != null) {
    options+="String_Node_Str" + "String_Node_Str" + nonSelectedText + "String_Node_Str";
  }
  String nSelectedText=menu.getNSelectedText();
  nSelectedText=(String)menu.getAttributes().get("String_Node_Str");
  if (nSelectedText != null) {
    options+="String_Node_Str" + "String_Node_Str" + nSelectedText + "String_Node_Str";
  }
  String allSelectedText=menu.getAllSelectedText();
  if (allSelectedText != null) {
    options+="String_Node_Str" + "String_Node_Str" + allSelectedText + "String_Node_Str";
  }
  int numberDisplayed=menu.getNumberDisplayed();
  if (numberDisplayed > 0) {
    options+="String_Node_Str" + "String_Node_Str" + String.valueOf(numberDisplayed);
  }
  if (menu.isIncludeSelectAllOption()) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  String selectAllText=menu.getSelectAllText();
  if (selectAllText != null) {
    options+="String_Node_Str" + "String_Node_Str" + selectAllText + "String_Node_Str";
  }
  if (menu.isEnableFiltering()) {
    options+="String_Node_Str" + "String_Node_Str";
  }
  String filterPlaceholder=menu.getFilterPlaceholder();
  if (filterPlaceholder != null) {
    options+="String_Node_Str" + "String_Node_Str" + filterPlaceholder + "String_Node_Str";
  }
  boolean enableCaseInsensitiveFiltering=menu.isEnableCaseInsensitiveFiltering();
  if (enableCaseInsensitiveFiltering) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  boolean disableIfEmpty=menu.isDisableIfEmpty();
  if (disableIfEmpty) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  boolean dropRight=menu.isDropRight();
  if (dropRight) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  String onChange=menu.getOnchange();
  if (onChange != null) {
    options+="String_Node_Str" + "String_Node_Str" + onChange;
  }
  String onDropdownShow=menu.getOndropdownshow();
  if (onDropdownShow != null) {
    options+="String_Node_Str" + "String_Node_Str" + onDropdownShow;
  }
  String onDropdownHide=menu.getOndropdownhide();
  if (onDropdownHide != null) {
    options+="String_Node_Str" + "String_Node_Str" + onDropdownHide;
  }
  String buttonClass=menu.getButtonClass();
  if (buttonClass != null) {
    options+="String_Node_Str" + "String_Node_Str" + buttonClass + "String_Node_Str";
  }
  String styleClass=menu.getStyleClass();
  if (styleClass != null) {
    options+="String_Node_Str" + "String_Node_Str" + styleClass + "String_Node_Str";
  }
  int buttonWidth=menu.getButtonWidth();
  if (buttonWidth > 0) {
    options+="String_Node_Str" + "String_Node_Str" + buttonWidth + "String_Node_Str";
  }
  if (options.length() > 0) {
    options="String_Node_Str" + options.substring(1,options.length()) + "String_Node_Str";
  }
  String js="String_Node_Str" + clientId + "String_Node_Str"+ options+ "String_Node_Str";
  context.getResponseWriter().write("String_Node_Str" + js + "String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Generates the HTML code for this component. 
 */
@Override public void encodeBegin(FacesContext context,UIComponent component) throws IOException {
  SelectMultiMenu menu=(SelectMultiMenu)component;
  if (!menu.isRendered()) {
    return;
  }
  ResponseWriter rw=context.getResponseWriter();
  String clientId=menu.getClientId(context).replace("String_Node_Str","String_Node_Str");
  ;
  rw.startElement("String_Node_Str",menu);
  writeAttribute(rw,"String_Node_Str",menu.getDir(),"String_Node_Str");
  Tooltip.generateTooltip(context,menu,rw);
  rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
  addLabel(rw,clientId,menu);
  UIComponent prependingAddOnFacet=menu.getFacet(C.PREPEND);
  if ((prependingAddOnFacet != null)) {
    R.addClass2FacetComponent(prependingAddOnFacet,"String_Node_Str",ADDON);
  }
  UIComponent appendingAddOnFacet=menu.getFacet(C.APPEND);
  if ((appendingAddOnFacet != null)) {
    R.addClass2FacetComponent(appendingAddOnFacet,"String_Node_Str",ADDON);
  }
  final boolean hasAddon=startInputGroupForAddOn(rw,(prependingAddOnFacet != null),(appendingAddOnFacet != null),menu);
  int span=startColSpanDiv(rw,menu);
  addPrependingAddOnToInputGroup(context,rw,prependingAddOnFacet,(prependingAddOnFacet != null),menu);
  renderSelectTag(context,rw,clientId,menu);
  addAppendingAddOnToInputGroup(context,rw,appendingAddOnFacet,(appendingAddOnFacet != null),menu);
  closeInputGroupForAddOn(rw,hasAddon);
  closeColSpanDiv(rw,span);
  rw.endElement("String_Node_Str");
  Tooltip.activateTooltips(context,menu);
  String options="String_Node_Str";
  int maxHeight=menu.getMaxHeight();
  if (maxHeight > 0) {
    options+="String_Node_Str" + "String_Node_Str" + String.valueOf(maxHeight);
  }
  String nonSelectedText=menu.getNonSelectedText();
  if (nonSelectedText != null) {
    options+="String_Node_Str" + "String_Node_Str" + nonSelectedText + "String_Node_Str";
  }
  String nSelectedText=menu.getNSelectedText();
  nSelectedText=(String)menu.getAttributes().get("String_Node_Str");
  if (nSelectedText != null) {
    options+="String_Node_Str" + "String_Node_Str" + nSelectedText + "String_Node_Str";
  }
  String allSelectedText=menu.getAllSelectedText();
  if (allSelectedText != null) {
    options+="String_Node_Str" + "String_Node_Str" + allSelectedText + "String_Node_Str";
  }
  int numberDisplayed=menu.getNumberDisplayed();
  if (numberDisplayed > 0) {
    options+="String_Node_Str" + "String_Node_Str" + String.valueOf(numberDisplayed);
  }
  if (menu.isIncludeSelectAllOption()) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  String selectAllText=menu.getSelectAllText();
  if (selectAllText != null) {
    options+="String_Node_Str" + "String_Node_Str" + selectAllText + "String_Node_Str";
  }
  if (menu.isEnableFiltering()) {
    options+="String_Node_Str" + "String_Node_Str";
  }
  String filterPlaceholder=menu.getFilterPlaceholder();
  if (filterPlaceholder != null) {
    options+="String_Node_Str" + "String_Node_Str" + filterPlaceholder + "String_Node_Str";
  }
  boolean enableCaseInsensitiveFiltering=menu.isEnableCaseInsensitiveFiltering();
  if (enableCaseInsensitiveFiltering) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  boolean disableIfEmpty=menu.isDisableIfEmpty();
  if (disableIfEmpty) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  boolean dropRight=menu.isDropRight();
  if (dropRight) {
    options+="String_Node_Str" + "String_Node_Str" + "String_Node_Str";
  }
  String onChange=menu.getOnchange();
  if (onChange != null) {
    options+="String_Node_Str" + "String_Node_Str" + onChange;
  }
  String onDropdownShow=menu.getOndropdownshow();
  if (onDropdownShow != null) {
    options+="String_Node_Str" + "String_Node_Str" + onDropdownShow;
  }
  String onDropdownHide=menu.getOndropdownhide();
  if (onDropdownHide != null) {
    options+="String_Node_Str" + "String_Node_Str" + onDropdownHide;
  }
  String buttonClass=menu.getButtonClass();
  if (buttonClass != null) {
    options+="String_Node_Str" + "String_Node_Str" + buttonClass + "String_Node_Str";
  }
  String styleClass=menu.getStyleClass();
  if (styleClass != null) {
    options+="String_Node_Str" + "String_Node_Str" + styleClass + "String_Node_Str";
  }
  int buttonWidth=menu.getButtonWidth();
  if (buttonWidth > 0) {
    options+="String_Node_Str" + "String_Node_Str" + buttonWidth + "String_Node_Str";
  }
  if (options.length() > 0) {
    options="String_Node_Str" + options.substring(1,options.length()) + "String_Node_Str";
  }
  String js="String_Node_Str" + clientId + "String_Node_Str"+ options+ "String_Node_Str";
  context.getResponseWriter().write("String_Node_Str" + js + "String_Node_Str");
}