Program: 57071
Project: 57071
Buggy source:
@Override public void encodeBegin(FacesContext context) throws IOException {
  Map<String,Object> attrs=getAttributes();
  ResponseWriter rw=context.getResponseWriter();
  String clientId=getClientId(context);
  UIComponent prep=getFacet(C.PREPEND);
  UIComponent app=getFacet(C.APPEND);
  boolean prepend=(prep != null);
  boolean append=(app != null);
  if (prepend) {
    R.addClass2FacetComponent(prep,"String_Node_Str",ADDON);
  }
  if (append) {
    R.addClass2FacetComponent(app,"String_Node_Str",ADDON);
  }
  String l=A.asString(attrs.get(A.LABEL));
  String t=A.asString(attrs.get(A.TYPE));
  if (t == null)   t=H.TEXT;
  rw.startElement(H.DIV,this);
  rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
  if (l != null) {
    rw.startElement(H.LABEL,this);
    rw.writeAttribute(A.FOR,clientId,A.FOR);
    rw.writeText(l,null);
    rw.endElement(H.LABEL);
  }
  if (append || prepend) {
    rw.startElement(H.DIV,this);
    rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
  }
  int span=A.toInt(attrs.get(A.SPAN));
  if (span > 0) {
    rw.startElement(H.DIV,this);
    rw.writeAttribute(H.CLASS,"String_Node_Str" + span,H.CLASS);
  }
  if (prepend) {
    if (prep.getClass().getName().endsWith("String_Node_Str") || (prep.getChildCount() > 0 && prep.getChildren().get(0).getClass().getName().endsWith("String_Node_Str"))) {
      rw.startElement(H.DIV,this);
      rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
      prep.encodeAll(context);
      rw.endElement(H.DIV);
    }
 else {
      prep.encodeAll(context);
    }
  }
  rw.startElement(H.INPUT,this);
  rw.writeAttribute(H.ID,clientId,null);
  rw.writeAttribute(H.NAME,clientId,null);
  rw.writeAttribute(H.TYPE,t,null);
  StringBuilder sb;
  String s;
  sb=new StringBuilder(20);
  sb.append("String_Node_Str");
  String fsize=A.asString(attrs.get(A.FIELDSIZE));
  if (fsize != null) {
    sb.append("String_Node_Str").append(fsize);
  }
  String sclass=A.asString(attrs.get(H.STYLECLASS));
  if (sclass != null) {
    sb.append("String_Node_Str").append(sclass);
  }
  s=sb.toString().trim();
  if (s != null && s.length() > 0) {
    rw.writeAttribute(H.CLASS,s,H.CLASS);
  }
  String ph=A.asString(attrs.get(A.PHOLDER));
  if (ph != null) {
    rw.writeAttribute(H.PHOLDER,ph,null);
  }
  if (A.toBool(attrs.get(A.DISABLED))) {
    rw.writeAttribute(A.DISABLED,A.DISABLED,null);
  }
  if (A.toBool(attrs.get(A.READONLY))) {
    rw.writeAttribute(A.READONLY,A.READONLY,null);
  }
  R.encodeHTML4DHTMLAttrs(rw,attrs,A.INPUT_TEXT_ATTRS);
  if ((A.asString(attrs.get("String_Node_Str")) != null) && (A.asString(attrs.get("String_Node_Str")).equals("String_Node_Str"))) {
    rw.writeAttribute("String_Node_Str","String_Node_Str",null);
  }
  String v=R.getValue2Render(context,this);
  rw.writeAttribute(H.VALUE,v,null);
  rw.endElement(H.INPUT);
  if (append) {
    if (app.getClass().getName().endsWith("String_Node_Str") || (app.getChildCount() > 0 && app.getChildren().get(0).getClass().getName().endsWith("String_Node_Str"))) {
      rw.startElement(H.DIV,this);
      rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
      app.encodeAll(context);
      rw.endElement(H.DIV);
    }
 else {
      app.encodeAll(context);
    }
  }
  if (append || prepend) {
    rw.endElement(H.DIV);
  }
  rw.endElement(H.DIV);
  if (span > 0) {
    rw.endElement(H.DIV);
  }
}

Fixed version (ground truth):
@Override public void encodeBegin(FacesContext context) throws IOException {
  Map<String,Object> attrs=getAttributes();
  ResponseWriter rw=context.getResponseWriter();
  String clientId=getClientId(context);
  UIComponent prep=getFacet(C.PREPEND);
  UIComponent app=getFacet(C.APPEND);
  boolean prepend=(prep != null);
  boolean append=(app != null);
  if (prepend) {
    R.addClass2FacetComponent(prep,"String_Node_Str",ADDON);
  }
  if (append) {
    R.addClass2FacetComponent(app,"String_Node_Str",ADDON);
  }
  String l=A.asString(attrs.get(A.LABEL));
  String t=A.asString(attrs.get(A.TYPE));
  if (t == null)   t=H.TEXT;
  rw.startElement(H.DIV,this);
  rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
  if (l != null) {
    rw.startElement(H.LABEL,this);
    rw.writeAttribute(A.FOR,clientId,A.FOR);
    rw.writeText(l,null);
    rw.endElement(H.LABEL);
  }
  if (append || prepend) {
    rw.startElement(H.DIV,this);
    rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
  }
  int span=A.toInt(attrs.get(A.SPAN));
  if (span > 0) {
    rw.startElement(H.DIV,this);
    rw.writeAttribute(H.CLASS,"String_Node_Str" + span,H.CLASS);
  }
  if (prepend) {
    if (prep.getClass().getName().endsWith("String_Node_Str") || (prep.getChildCount() > 0 && prep.getChildren().get(0).getClass().getName().endsWith("String_Node_Str"))) {
      rw.startElement(H.DIV,this);
      rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
      prep.encodeAll(context);
      rw.endElement(H.DIV);
    }
 else {
      prep.encodeAll(context);
    }
  }
  rw.startElement(H.INPUT,this);
  rw.writeAttribute(H.ID,clientId,null);
  rw.writeAttribute(H.NAME,clientId,null);
  rw.writeAttribute(H.TYPE,t,null);
  StringBuilder sb;
  String s;
  sb=new StringBuilder(20);
  sb.append("String_Node_Str");
  String fsize=A.asString(attrs.get(A.FIELDSIZE));
  if (fsize != null) {
    sb.append("String_Node_Str").append(fsize);
  }
  String sclass=A.asString(attrs.get(H.STYLECLASS));
  if (sclass != null) {
    sb.append("String_Node_Str").append(sclass);
  }
  s=sb.toString().trim();
  if (s != null && s.length() > 0) {
    rw.writeAttribute(H.CLASS,s,H.CLASS);
  }
  String ph=A.asString(attrs.get(A.PHOLDER));
  if (ph != null) {
    rw.writeAttribute(H.PHOLDER,ph,null);
  }
  if (A.toBool(attrs.get(A.DISABLED))) {
    rw.writeAttribute(A.DISABLED,A.DISABLED,null);
  }
  if (A.toBool(attrs.get(A.READONLY))) {
    rw.writeAttribute(A.READONLY,A.READONLY,null);
  }
  R.encodeHTML4DHTMLAttrs(rw,attrs,A.INPUT_TEXT_ATTRS);
  if ((A.asString(attrs.get("String_Node_Str")) != null) && (A.asString(attrs.get("String_Node_Str")).equals("String_Node_Str"))) {
    rw.writeAttribute("String_Node_Str","String_Node_Str",null);
  }
  String v=R.getValue2Render(context,this);
  rw.writeAttribute(H.VALUE,v,null);
  Map<String,List<ClientBehavior>> clientBehaviors=this.getClientBehaviors();
  Set<String> keysClientBehavior=clientBehaviors.keySet();
  for (  String keyClientBehavior : keysClientBehavior) {
    List<ClientBehavior> behaviors=clientBehaviors.get(keyClientBehavior);
    for (    ClientBehavior cb : behaviors) {
      ClientBehaviorContext behaviorContext=ClientBehaviorContext.createClientBehaviorContext(context,this,keyClientBehavior,null,null);
      rw.writeAttribute("String_Node_Str" + keyClientBehavior,cb.getScript(behaviorContext),null);
    }
  }
  rw.endElement(H.INPUT);
  if (append) {
    if (app.getClass().getName().endsWith("String_Node_Str") || (app.getChildCount() > 0 && app.getChildren().get(0).getClass().getName().endsWith("String_Node_Str"))) {
      rw.startElement(H.DIV,this);
      rw.writeAttribute(H.CLASS,"String_Node_Str",H.CLASS);
      app.encodeAll(context);
      rw.endElement(H.DIV);
    }
 else {
      app.encodeAll(context);
    }
  }
  if (append || prepend) {
    rw.endElement(H.DIV);
  }
  rw.endElement(H.DIV);
  if (span > 0) {
    rw.endElement(H.DIV);
  }
}