Program: 57025
Project: 57025
Buggy source:
/** 
 * Encode the HTML code of the button.
 * @param context the current FacesContext
 * @param attrs the attribute list
 * @throws IOException thrown if something's wrong with the ResponseWriter
 */
public void encodeHTML(FacesContext context,Map<String,Object> attrs) throws IOException {
  ResponseWriter rw=context.getResponseWriter();
  Object value=attrs.get("String_Node_Str");
  String style=asString(attrs.get(STYLE));
  rw.startElement("String_Node_Str",this);
  rw.writeAttribute("String_Node_Str",getClientId(context),"String_Node_Str");
  rw.writeAttribute("String_Node_Str",getClientId(context),"String_Node_Str");
  rw.writeAttribute("String_Node_Str","String_Node_Str",null);
  if (style != null) {
    rw.writeAttribute(STYLE,style,STYLE);
  }
  rw.writeAttribute("String_Node_Str",getStyleClasses(attrs),"String_Node_Str");
  Tooltip.generateTooltip(context,attrs,rw);
  final String clickHandler=encodeClick(context,attrs);
  if (null != clickHandler && clickHandler.length() > 0) {
    rw.writeAttribute("String_Node_Str",clickHandler,null);
  }
  String d=asString(attrs.get(DISMISS));
  if (d != null) {
    rw.writeAttribute(DATA_DISMISS,d,null);
  }
  boolean disabled=(toBool(attrs.get(DISABLED)));
  if (disabled) {
    rw.writeAttribute(DISABLED,DISABLED,null);
  }
  renderPassThruAttributes(context,this,ALLBUTTON_ATTRS);
  String icon=asString(attrs.get(ICON));
  String faicon=asString(attrs.get(ICONAWESOME));
  boolean fa=false;
  if (faicon != null) {
    icon=faicon;
    fa=true;
  }
  if (icon != null) {
    Object ialign=attrs.get(ICON_ALIGN);
    if (ialign != null && ialign.equals(RIGHT)) {
      rw.writeText(value + "String_Node_Str",null);
      IconRenderer.encodeIcon(rw,this,icon,fa);
    }
 else {
      IconRenderer.encodeIcon(rw,this,icon,fa);
      rw.writeText("String_Node_Str" + value,null);
    }
  }
 else {
    rw.writeText(value,null);
  }
  Tooltip.activateTooltips(context,getAttributes(),this);
  rw.endElement("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Encode the HTML code of the button.
 * @param context the current FacesContext
 * @param attrs the attribute list
 * @throws IOException thrown if something's wrong with the ResponseWriter
 */
public void encodeHTML(FacesContext context,Map<String,Object> attrs) throws IOException {
  ResponseWriter rw=context.getResponseWriter();
  Object value=attrs.get("String_Node_Str");
  String style=asString(attrs.get(STYLE));
  rw.startElement("String_Node_Str",this);
  rw.writeAttribute("String_Node_Str",getClientId(context),"String_Node_Str");
  rw.writeAttribute("String_Node_Str",getClientId(context),"String_Node_Str");
  rw.writeAttribute("String_Node_Str","String_Node_Str",null);
  if (null != attrs.get("String_Node_Str")) {
    rw.writeAttribute("String_Node_Str",attrs.get("String_Node_Str"),"String_Node_Str");
  }
  if (style != null) {
    rw.writeAttribute(STYLE,style,STYLE);
  }
  rw.writeAttribute("String_Node_Str",getStyleClasses(attrs),"String_Node_Str");
  Tooltip.generateTooltip(context,attrs,rw);
  final String clickHandler=encodeClick(context,attrs);
  if (null != clickHandler && clickHandler.length() > 0) {
    rw.writeAttribute("String_Node_Str",clickHandler,null);
  }
  String d=asString(attrs.get(DISMISS));
  if (d != null) {
    rw.writeAttribute(DATA_DISMISS,d,null);
  }
  boolean disabled=(toBool(attrs.get(DISABLED)));
  if (disabled) {
    rw.writeAttribute(DISABLED,DISABLED,null);
  }
  renderPassThruAttributes(context,this,ALLBUTTON_ATTRS);
  String icon=asString(attrs.get(ICON));
  String faicon=asString(attrs.get(ICONAWESOME));
  boolean fa=false;
  if (faicon != null) {
    icon=faicon;
    fa=true;
  }
  if (icon != null) {
    Object ialign=attrs.get(ICON_ALIGN);
    if (ialign != null && ialign.equals(RIGHT)) {
      rw.writeText(value + "String_Node_Str",null);
      IconRenderer.encodeIcon(rw,this,icon,fa);
    }
 else {
      IconRenderer.encodeIcon(rw,this,icon,fa);
      rw.writeText("String_Node_Str" + value,null);
    }
  }
 else {
    rw.writeText(value,null);
  }
  Tooltip.activateTooltips(context,getAttributes(),this);
  rw.endElement("String_Node_Str");
}