Program: 56949
Project: 56949
Buggy source:
/** 
 * Encodes the HTML for this context
 * @param fc
 * @throws IOException
 */
private String encodeHTML(FacesContext fc,ResponseWriter rw,DateTimePicker dtp) throws IOException {
  String clientId=dtp.getClientId();
  boolean clientIdHasBeenRendered=false;
  String mode=dtp.getMode();
  String styleClass=dtp.getStyleClass();
  if (styleClass == null)   styleClass="String_Node_Str";
  styleClass=styleClass.trim();
  String responsiveStyleClass=Responsive.getResponsiveStyleClass(dtp,false);
  String label=dtp.getLabel();
  if (!dtp.isRenderLabel()) {
    label=null;
  }
  String divPrefix="String_Node_Str";
  if (null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.startElement("String_Node_Str",dtp);
    if (!isHorizontalForm(dtp)) {
      rw.writeAttribute("String_Node_Str",responsiveStyleClass + "String_Node_Str","String_Node_Str");
    }
 else {
      rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    }
    rw.writeAttribute("String_Node_Str",clientId,null);
    Tooltip.generateTooltip(fc,dtp,rw);
    clientIdHasBeenRendered=true;
    divPrefix=DTP_CONTAINER_ID;
  }
 else   if (label != null) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",clientId,null);
    divPrefix=DTP_CONTAINER_ID;
    Tooltip.generateTooltip(fc,dtp,rw);
    clientIdHasBeenRendered=true;
  }
  if (label != null) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",clientId + "String_Node_Str","String_Node_Str");
    generateErrorAndRequiredClassForLabels(dtp,rw,clientId,dtp.getLabelStyleClass());
    writeAttribute(rw,"String_Node_Str",dtp.getLabelStyle());
    rw.writeText(label,null);
    rw.endElement("String_Node_Str");
  }
  if (isHorizontalForm(dtp) && null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",responsiveStyleClass,"String_Node_Str");
    if (!clientIdHasBeenRendered) {
      rw.writeAttribute("String_Node_Str",clientId,null);
      Tooltip.generateTooltip(fc,dtp,rw);
      clientIdHasBeenRendered=true;
      divPrefix=DTP_CONTAINER_ID2;
    }
  }
  Object v=dtp.getSubmittedValue();
  if (v == null) {
    v=dtp.getValue();
  }
  String icon=dtp.getIcon();
  String faicon=dtp.getIconAwesome();
  boolean fa=false;
  if (BsfUtils.isStringValued(faicon)) {
    icon=faicon;
    fa=true;
  }
  if (!BsfUtils.isStringValued(icon)) {
    icon="String_Node_Str";
    fa=false;
  }
  if ("String_Node_Str".equals(mode)) {
    rw.startElement("String_Node_Str",dtp);
    if (styleClass.length() > 0) {
      rw.writeAttribute("String_Node_Str",styleClass,"String_Node_Str");
    }
    rw.writeAttribute("String_Node_Str",divPrefix + clientId,null);
    rw.writeAttribute("String_Node_Str","String_Node_Str" + styleClass,"String_Node_Str");
    if (dtp.getStyle() != null)     rw.writeAttribute("String_Node_Str",dtp.getStyle(),"String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",clientId + "String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",clientId,null);
    if (dtp.getTabindex() != null) {
      rw.writeAttribute("String_Node_Str",dtp.getTabindex(),null);
    }
    generateStyleClass(dtp,rw);
    if (BsfUtils.isStringValued(dtp.getPlaceholder()))     rw.writeAttribute("String_Node_Str",dtp.getPlaceholder(),null);
    if (dtp.isReadonly())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (v != null) {
      rw.writeAttribute("String_Node_Str",getValueAsString(v,fc,dtp),null);
    }
    Tooltip.generateTooltip(fc,dtp,rw);
    AJAXRenderer.generateBootsFacesAJAXAndJavaScript(FacesContext.getCurrentInstance(),dtp,rw,false);
    rw.endElement("String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    IconRenderer.encodeIcon(rw,dtp,icon,fa,null,null,null,false,null,null,dtp.isDisabled(),true,true,true);
    rw.endElement("String_Node_Str");
    rw.endElement("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mode)) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str" + styleClass,"String_Node_Str");
    if (dtp.getStyle() != null)     rw.writeAttribute("String_Node_Str",(dtp.isDisabled() ? "String_Node_Str" : "String_Node_Str") + dtp.getStyle(),"String_Node_Str");
 else     if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",divPrefix + clientId,null);
    if (!clientIdHasBeenRendered) {
      Tooltip.generateTooltip(fc,dtp,rw);
      clientIdHasBeenRendered=true;
    }
    rw.endElement("String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",clientId + "String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",clientId,null);
    rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    if (dtp.getTabindex() != null) {
      rw.writeAttribute("String_Node_Str",dtp.getTabindex(),null);
    }
    if (dtp.isReadonly())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (v != null) {
      rw.writeAttribute("String_Node_Str",getValueAsString(v,fc,dtp),null);
    }
    rw.endElement("String_Node_Str");
  }
 else {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str" + styleClass,"String_Node_Str");
    if (dtp.getStyle() != null)     rw.writeAttribute("String_Node_Str",dtp.getStyle(),"String_Node_Str");
    rw.writeAttribute("String_Node_Str",divPrefix + clientId,null);
    if (!clientIdHasBeenRendered) {
      Tooltip.generateTooltip(fc,dtp,rw);
      clientIdHasBeenRendered=true;
      divPrefix=DTP_CONTAINER_ID2;
    }
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",clientId + "String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",clientId,null);
    if (dtp.getTabindex() != null) {
      rw.writeAttribute("String_Node_Str",dtp.getTabindex(),null);
    }
    generateStyleClass(dtp,rw);
    if (BsfUtils.isStringValued(dtp.getPlaceholder()))     rw.writeAttribute("String_Node_Str",dtp.getPlaceholder(),null);
    if (dtp.isReadonly())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (v != null) {
      rw.writeAttribute("String_Node_Str",getValueAsString(v,fc,dtp),null);
    }
    AJAXRenderer.generateBootsFacesAJAXAndJavaScript(FacesContext.getCurrentInstance(),dtp,rw,false);
    rw.endElement("String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    IconRenderer.encodeIcon(rw,dtp,icon,fa,null,null,null,false,null,null,dtp.isDisabled(),true,true,true);
    rw.endElement("String_Node_Str");
    rw.endElement("String_Node_Str");
  }
  if (isHorizontalForm(dtp) && null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.endElement("String_Node_Str");
  }
  if (null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.endElement("String_Node_Str");
  }
 else   if (label != null) {
    rw.endElement("String_Node_Str");
  }
  Tooltip.activateTooltips(fc,dtp);
  return divPrefix;
}

Fixed version (ground truth):
/** 
 * Encodes the HTML for this context
 * @param fc
 * @throws IOException
 */
private String encodeHTML(FacesContext fc,ResponseWriter rw,DateTimePicker dtp) throws IOException {
  String clientId=dtp.getClientId();
  boolean clientIdHasBeenRendered=false;
  String mode=dtp.getMode();
  String styleClass=dtp.getStyleClass();
  if (styleClass == null)   styleClass="String_Node_Str";
  styleClass=styleClass.trim();
  String responsiveStyleClass=Responsive.getResponsiveStyleClass(dtp,false);
  String label=dtp.getLabel();
  if (!dtp.isRenderLabel()) {
    label=null;
  }
  String divPrefix="String_Node_Str";
  if (null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.startElement("String_Node_Str",dtp);
    if (!isHorizontalForm(dtp)) {
      rw.writeAttribute("String_Node_Str",responsiveStyleClass + "String_Node_Str","String_Node_Str");
    }
 else {
      rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    }
    rw.writeAttribute("String_Node_Str",clientId,null);
    Tooltip.generateTooltip(fc,dtp,rw);
    clientIdHasBeenRendered=true;
    divPrefix=DTP_CONTAINER_ID;
  }
 else   if (label != null) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",clientId,null);
    divPrefix=DTP_CONTAINER_ID;
    Tooltip.generateTooltip(fc,dtp,rw);
    clientIdHasBeenRendered=true;
  }
  String fieldId=dtp.getFieldId();
  if (null == fieldId) {
    fieldId=clientId + "String_Node_Str";
  }
 else   if (fieldId.equals(dtp.getId())) {
    throw new FacesException("String_Node_Str");
  }
  if (label != null) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",fieldId,"String_Node_Str");
    generateErrorAndRequiredClassForLabels(dtp,rw,clientId,dtp.getLabelStyleClass());
    writeAttribute(rw,"String_Node_Str",dtp.getLabelStyle());
    rw.writeText(label,null);
    rw.endElement("String_Node_Str");
  }
  if (isHorizontalForm(dtp) && null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",responsiveStyleClass,"String_Node_Str");
    if (!clientIdHasBeenRendered) {
      rw.writeAttribute("String_Node_Str",clientId,null);
      Tooltip.generateTooltip(fc,dtp,rw);
      clientIdHasBeenRendered=true;
      divPrefix=DTP_CONTAINER_ID2;
    }
  }
  Object v=dtp.getSubmittedValue();
  if (v == null) {
    v=dtp.getValue();
  }
  String icon=dtp.getIcon();
  String faicon=dtp.getIconAwesome();
  boolean fa=false;
  if (BsfUtils.isStringValued(faicon)) {
    icon=faicon;
    fa=true;
  }
  if (!BsfUtils.isStringValued(icon)) {
    icon="String_Node_Str";
    fa=false;
  }
  if ("String_Node_Str".equals(mode)) {
    rw.startElement("String_Node_Str",dtp);
    if (styleClass.length() > 0) {
      rw.writeAttribute("String_Node_Str",styleClass,"String_Node_Str");
    }
    rw.writeAttribute("String_Node_Str",divPrefix + clientId,null);
    rw.writeAttribute("String_Node_Str","String_Node_Str" + styleClass,"String_Node_Str");
    if (dtp.getStyle() != null)     rw.writeAttribute("String_Node_Str",dtp.getStyle(),"String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",fieldId,null);
    rw.writeAttribute("String_Node_Str",clientId,null);
    if (dtp.getTabindex() != null) {
      rw.writeAttribute("String_Node_Str",dtp.getTabindex(),null);
    }
    generateStyleClass(dtp,rw);
    if (BsfUtils.isStringValued(dtp.getPlaceholder()))     rw.writeAttribute("String_Node_Str",dtp.getPlaceholder(),null);
    if (dtp.isReadonly())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (v != null) {
      rw.writeAttribute("String_Node_Str",getValueAsString(v,fc,dtp),null);
    }
    Tooltip.generateTooltip(fc,dtp,rw);
    AJAXRenderer.generateBootsFacesAJAXAndJavaScript(FacesContext.getCurrentInstance(),dtp,rw,false);
    rw.endElement("String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    IconRenderer.encodeIcon(rw,dtp,icon,fa,null,null,null,false,null,null,dtp.isDisabled(),true,true,true);
    rw.endElement("String_Node_Str");
    rw.endElement("String_Node_Str");
  }
 else   if ("String_Node_Str".equals(mode)) {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str" + styleClass,"String_Node_Str");
    if (dtp.getStyle() != null)     rw.writeAttribute("String_Node_Str",(dtp.isDisabled() ? "String_Node_Str" : "String_Node_Str") + dtp.getStyle(),"String_Node_Str");
 else     if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",divPrefix + clientId,null);
    if (!clientIdHasBeenRendered) {
      Tooltip.generateTooltip(fc,dtp,rw);
      clientIdHasBeenRendered=true;
    }
    rw.endElement("String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str",fieldId,null);
    rw.writeAttribute("String_Node_Str",clientId,null);
    rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    if (dtp.getTabindex() != null) {
      rw.writeAttribute("String_Node_Str",dtp.getTabindex(),null);
    }
    if (dtp.isReadonly())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (v != null) {
      rw.writeAttribute("String_Node_Str",getValueAsString(v,fc,dtp),null);
    }
    rw.endElement("String_Node_Str");
  }
 else {
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str" + styleClass,"String_Node_Str");
    if (dtp.getStyle() != null)     rw.writeAttribute("String_Node_Str",dtp.getStyle(),"String_Node_Str");
    rw.writeAttribute("String_Node_Str",divPrefix + clientId,null);
    if (!clientIdHasBeenRendered) {
      Tooltip.generateTooltip(fc,dtp,rw);
      clientIdHasBeenRendered=true;
      divPrefix=DTP_CONTAINER_ID2;
    }
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    rw.writeAttribute("String_Node_Str",fieldId,null);
    rw.writeAttribute("String_Node_Str",clientId,null);
    if (dtp.getTabindex() != null) {
      rw.writeAttribute("String_Node_Str",dtp.getTabindex(),null);
    }
    generateStyleClass(dtp,rw);
    if (BsfUtils.isStringValued(dtp.getPlaceholder()))     rw.writeAttribute("String_Node_Str",dtp.getPlaceholder(),null);
    if (dtp.isReadonly())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (dtp.isDisabled())     rw.writeAttribute("String_Node_Str","String_Node_Str",null);
    if (v != null) {
      rw.writeAttribute("String_Node_Str",getValueAsString(v,fc,dtp),null);
    }
    AJAXRenderer.generateBootsFacesAJAXAndJavaScript(FacesContext.getCurrentInstance(),dtp,rw,false);
    rw.endElement("String_Node_Str");
    rw.startElement("String_Node_Str",dtp);
    rw.writeAttribute("String_Node_Str","String_Node_Str","String_Node_Str");
    IconRenderer.encodeIcon(rw,dtp,icon,fa,null,null,null,false,null,null,dtp.isDisabled(),true,true,true);
    rw.endElement("String_Node_Str");
    rw.endElement("String_Node_Str");
  }
  if (isHorizontalForm(dtp) && null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.endElement("String_Node_Str");
  }
  if (null != responsiveStyleClass && responsiveStyleClass.trim().length() > 0) {
    rw.endElement("String_Node_Str");
  }
 else   if (label != null) {
    rw.endElement("String_Node_Str");
  }
  Tooltip.activateTooltips(fc,dtp);
  return divPrefix;
}