Program: 143511
Project: 143511
Buggy source:
private static void createFieldHTML(Field field,Form form,StringBuffer html,TextualCSS css,int startY,int endY,boolean enableAnchoring,IServiceProvider sp){
  boolean addWrapperDiv=enableAnchoring && WebAnchoringHelper.needsWrapperDivForAnchoring(field);
  TextualStyle styleObj=css.addStyle('#' + ComponentFactory.getWebID(form,field));
  Properties minSizeStyle=styleObj;
  if (addWrapperDiv) {
    String wrapperId=ComponentFactory.getWebID(form,field) + WRAPPER_SUFFIX;
    TextualStyle wrapperStyle=css.addStyle('#' + wrapperId);
    wrapperStyle.setProperty("String_Node_Str","String_Node_Str");
    minSizeStyle=wrapperStyle;
    html.append("String_Node_Str");
    html.append(getWicketIDParameter(form,field,"String_Node_Str",WRAPPER_SUFFIX));
    html.append(getJavaScriptIDParameter(form,field,"String_Node_Str",WRAPPER_SUFFIX));
    if (field.getDisplayType() == Field.COMBOBOX) {
      html.append(getCSSClassParameter(COMBOBOX_CLASS));
    }
    html.append("String_Node_Str");
  }
  Insets padding=(Insets)DEFAULT_FIELD_PADDING.clone();
  Insets border=(Insets)DEFAULT_FIELD_BORDER_SIZE.clone();
  if (field.getDisplayType() == Field.COMBOBOX || field.getDisplayType() == Field.LIST_BOX || field.getDisplayType() == Field.MULTISELECT_LISTBOX) {
    padding=DEFAULT_LABEL_PADDING;
  }
  BorderAndPadding ins=applyBaseComponentProperties(field,form,styleObj,padding,border,sp);
  Pair<IStyleSheet,IStyleRule> pairStyle=ComponentFactory.getCSSPairStyleForForm(sp,form);
  IStyleSheet ss=pairStyle != null ? pairStyle.getLeft() : null;
  String cssClass="String_Node_Str";
switch (field.getDisplayType()) {
case Field.PASSWORD:
{
      if (ins == null) {
        ins=new BorderAndPadding(DEFAULT_FIELD_BORDER_SIZE,DEFAULT_FIELD_PADDING);
      }
      html.append("String_Node_Str");
      html.append(getWicketIDParameter(form,field));
      html.append(getDataProviderIDParameter(field));
      html.append(getCSSClassParameter("String_Node_Str"));
      html.append("String_Node_Str");
      if (field.getSelectOnEnter()) {
        html.append("String_Node_Str");
      }
      html.append("String_Node_Str");
    }
  break;
case Field.RTF_AREA:
{
  applyScrolling(styleObj,field);
  html.append("String_Node_Str");
  html.append(getWicketIDParameter(form,field));
  html.append(getCSSClassParameter("String_Node_Str"));
  html.append("String_Node_Str");
}
break;
case Field.HTML_AREA:
if (!field.getEditable()) {
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
boolean hasFontFamily=styleObj.containsKey("String_Node_Str");
boolean hasFontSize=styleObj.containsKey("String_Node_Str");
if (hasFontFamily || hasFontSize) {
for (String dfe : DEFAULT_FONT_ELEMENTS) {
  TextualStyle htmlAreaFont=css.addStyle('#' + ComponentFactory.getWebID(form,field) + "String_Node_Str"+ dfe);
  if (hasFontFamily)   htmlAreaFont.setProperty("String_Node_Str",styleObj.getProperty("String_Node_Str"));
  if (hasFontSize)   htmlAreaFont.setProperty("String_Node_Str",styleObj.getProperty("String_Node_Str"));
}
}
break;
}
 else {
String editorId="String_Node_Str" + ComponentFactory.getWebID(form,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
html.append(editorId);
html.append("String_Node_Str");
html.append(editorId);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field,"String_Node_Str","String_Node_Str"));
html.append("String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
if (styleObj.getProperty("String_Node_Str") == null && styleObj.getProperty("String_Node_Str") == null) {
styleObj.setProperty("String_Node_Str","String_Node_Str");
}
}
break;
case Field.TEXT_AREA:
{
if (ins == null) {
ins=new BorderAndPadding(DEFAULT_FIELD_BORDER_SIZE,DEFAULT_FIELD_PADDING);
}
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
}
break;
case Field.CHECKS:
case Field.RADIOS:
boolean isRadio=(field.getDisplayType() == Field.RADIOS);
String selector=(isRadio ? "String_Node_Str" : "String_Node_Str");
cssClass=(isRadio ? "String_Node_Str" : "String_Node_Str");
IValueList val=null;
ValueList valuelist=null;
if (field.getValuelistID() > 0 && sp != null) {
valuelist=sp.getFlattenedSolution().getValueList(field.getValuelistID());
}
boolean addSingle=ComponentFactory.isSingleValue(valuelist);
if (field.getValuelistID() > 0 && !addSingle && !isRadio) cssClass="String_Node_Str";
if (ss != null) {
cssClass="String_Node_Str";
String lookUpValue=selector;
IStyleRule s=ss.getCSSRule(lookUpValue);
if (s.getAttributeCount() == 0) {
if ((field.getStyleClass() != null) && (field.getStyleClass().trim().length() > 0)) {
lookUpValue+='.' + field.getStyleClass().trim();
s=ss.getCSSRule(lookUpValue);
if (s.getAttributeCount() > 0) cssClass=selector;
}
}
 else {
cssClass=selector;
}
}
if ((field.getValuelistID() > 0 || isRadio) && !addSingle) {
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter(cssClass));
html.append("String_Node_Str");
}
 else {
html.append("String_Node_Str");
html.append(getCSSClassParameter(cssClass));
html.append(getWicketIDParameter(form,field));
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str" + (isRadio ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str");
html.append(getWicketIDParameter(form,field,"String_Node_Str","String_Node_Str"));
html.append(getDataProviderIDParameter(field));
if (isRadio) {
html.append("String_Node_Str");
}
 else {
html.append("String_Node_Str");
}
html.append("String_Node_Str");
html.append("String_Node_Str" + (isRadio ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str");
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field,"String_Node_Str","String_Node_Str"));
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
}
break;
case Field.COMBOBOX:
{
ins=null;
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
}
break;
case Field.MULTISELECT_LISTBOX:
case Field.LIST_BOX:
{
ins=null;
html.append("String_Node_Str");
if (field.getDisplayType() == Field.MULTISELECT_LISTBOX) {
html.append("String_Node_Str");
}
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
}
break;
case Field.CALENDAR:
case Field.SPINNER:
createCompositeFieldHTML(html,form,field,styleObj);
break;
case Field.IMAGE_MEDIA:
{
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append('>');
TextualStyle inline2=new TextualStyle();
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
html.append("String_Node_Str");
html.append(inline2.toString());
html.append("String_Node_Str");
html.append("String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
html.append(inline2.toString());
html.append("String_Node_Str");
html.append("String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
html.append(inline2.toString());
html.append("String_Node_Str");
TextualStyle inline=new TextualStyle();
inline.setProperty("String_Node_Str","String_Node_Str");
inline.setProperty("String_Node_Str","String_Node_Str");
inline.setProperty("String_Node_Str","String_Node_Str");
if (field.getOnActionMethodID() < 1) {
inline.setProperty("String_Node_Str","String_Node_Str");
}
html.append("String_Node_Str");
html.append(inline.toString());
html.append(getWicketIDParameter(form,field));
html.append(getJavaScriptIDParameter(form,field));
html.append("String_Node_Str");
if (field.getName() != null) html.append(field.getName());
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
}
break;
default :
case Field.TYPE_AHEAD:
case Field.TEXT_FIELD:
{
if (ins == null) {
ins=new BorderAndPadding(DEFAULT_FIELD_BORDER_SIZE,DEFAULT_FIELD_PADDING);
}
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter(field.getValuelistID() > 0 ? "String_Node_Str" : "String_Node_Str"));
html.append("String_Node_Str");
if (field.getSelectOnEnter()) {
html.append("String_Node_Str");
}
html.append("String_Node_Str");
}
break;
}
if (field.getHorizontalAlignment() != -1) {
if (isCompositeTextField(field.getDisplayType())) {
TextualStyle childTextCSS=css.addStyle('#' + ComponentFactory.getWebID(form,field) + WebDataCompositeTextField.AUGMENTED_FIELD_ID);
applyTextProperties(field,childTextCSS);
}
 else {
applyTextProperties(field,styleObj);
}
}
Insets borderAndPadding=ins == null ? new Insets(0,0,0,0) : ins.getSum();
WebAnchoringHelper.addMinSize(field.getAnchors(),sp,minSizeStyle,new Dimension(field.getSize().width - borderAndPadding.left - borderAndPadding.right,field.getSize().height - borderAndPadding.top - borderAndPadding.bottom),field);
if (addWrapperDiv) {
html.append("String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
}
 else {
applyLocationAndSize(field,styleObj,ins,startY,endY,form.getSize().width,enableAnchoring,isListViewBodyElement(form,field.getLocation()) ? new Point(-3,0) : null);
}
}

Fixed version (ground truth):
private static void createFieldHTML(Field field,Form form,StringBuffer html,TextualCSS css,int startY,int endY,boolean enableAnchoring,IServiceProvider sp){
  boolean addWrapperDiv=enableAnchoring && WebAnchoringHelper.needsWrapperDivForAnchoring(field);
  TextualStyle styleObj=css.addStyle('#' + ComponentFactory.getWebID(form,field));
  Properties minSizeStyle=styleObj;
  if (addWrapperDiv) {
    String wrapperId=ComponentFactory.getWebID(form,field) + WRAPPER_SUFFIX;
    TextualStyle wrapperStyle=css.addStyle('#' + wrapperId);
    wrapperStyle.setProperty("String_Node_Str","String_Node_Str");
    minSizeStyle=wrapperStyle;
    html.append("String_Node_Str");
    html.append(getWicketIDParameter(form,field,"String_Node_Str",WRAPPER_SUFFIX));
    html.append(getJavaScriptIDParameter(form,field,"String_Node_Str",WRAPPER_SUFFIX));
    if (field.getDisplayType() == Field.COMBOBOX) {
      html.append(getCSSClassParameter(COMBOBOX_CLASS));
    }
    html.append("String_Node_Str");
  }
  Insets padding=(Insets)DEFAULT_FIELD_PADDING.clone();
  Insets border=(Insets)DEFAULT_FIELD_BORDER_SIZE.clone();
  if (field.getDisplayType() == Field.COMBOBOX || field.getDisplayType() == Field.LIST_BOX || field.getDisplayType() == Field.MULTISELECT_LISTBOX) {
    padding=DEFAULT_LABEL_PADDING;
  }
  BorderAndPadding ins=applyBaseComponentProperties(field,form,styleObj,padding,border,sp);
  Pair<IStyleSheet,IStyleRule> pairStyle=ComponentFactory.getCSSPairStyleForForm(sp,form);
  IStyleSheet ss=pairStyle != null ? pairStyle.getLeft() : null;
  String cssClass="String_Node_Str";
switch (field.getDisplayType()) {
case Field.PASSWORD:
{
      if (ins == null) {
        ins=new BorderAndPadding(DEFAULT_FIELD_BORDER_SIZE,DEFAULT_FIELD_PADDING);
      }
      html.append("String_Node_Str");
      html.append(getWicketIDParameter(form,field));
      html.append(getDataProviderIDParameter(field));
      html.append(getCSSClassParameter("String_Node_Str"));
      html.append("String_Node_Str");
      if (field.getSelectOnEnter()) {
        html.append("String_Node_Str");
      }
      html.append("String_Node_Str");
    }
  break;
case Field.RTF_AREA:
{
  applyScrolling(styleObj,field);
  html.append("String_Node_Str");
  html.append(getWicketIDParameter(form,field));
  html.append(getCSSClassParameter("String_Node_Str"));
  html.append("String_Node_Str");
}
break;
case Field.HTML_AREA:
if (!field.getEditable()) {
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
boolean hasFontFamily=styleObj.containsKey("String_Node_Str");
boolean hasFontSize=styleObj.containsKey("String_Node_Str");
if (hasFontFamily || hasFontSize) {
for (String dfe : DEFAULT_FONT_ELEMENTS) {
  TextualStyle htmlAreaFont=css.addStyle('#' + ComponentFactory.getWebID(form,field) + "String_Node_Str"+ dfe);
  if (hasFontFamily)   htmlAreaFont.setProperty("String_Node_Str",styleObj.getProperty("String_Node_Str"));
  if (hasFontSize)   htmlAreaFont.setProperty("String_Node_Str",styleObj.getProperty("String_Node_Str"));
}
}
break;
}
 else {
String editorId="String_Node_Str" + ComponentFactory.getWebID(form,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
html.append(editorId);
html.append("String_Node_Str");
html.append(editorId);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field,"String_Node_Str","String_Node_Str"));
html.append("String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
if (styleObj.getProperty("String_Node_Str") == null && styleObj.getProperty("String_Node_Str") == null) {
styleObj.setProperty("String_Node_Str","String_Node_Str");
}
}
break;
case Field.TEXT_AREA:
{
if (ins == null) {
ins=new BorderAndPadding(DEFAULT_FIELD_BORDER_SIZE,DEFAULT_FIELD_PADDING);
}
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
}
break;
case Field.CHECKS:
case Field.RADIOS:
boolean isRadio=(field.getDisplayType() == Field.RADIOS);
String selector=(isRadio ? "String_Node_Str" : "String_Node_Str");
cssClass=(isRadio ? "String_Node_Str" : "String_Node_Str");
IValueList val=null;
ValueList valuelist=null;
if (field.getValuelistID() > 0 && sp != null) {
valuelist=sp.getFlattenedSolution().getValueList(field.getValuelistID());
}
boolean addSingle=ComponentFactory.isSingleValue(valuelist);
if (field.getValuelistID() > 0 && !addSingle && !isRadio) cssClass="String_Node_Str";
if (ss != null) {
cssClass="String_Node_Str";
String lookUpValue=selector;
IStyleRule s=ss.getCSSRule(lookUpValue);
if (s.getAttributeCount() == 0) {
if ((field.getStyleClass() != null) && (field.getStyleClass().trim().length() > 0)) {
lookUpValue+='.' + field.getStyleClass().trim();
s=ss.getCSSRule(lookUpValue);
if (s.getAttributeCount() > 0) cssClass=selector;
}
}
 else {
cssClass=selector;
}
}
if ((field.getValuelistID() > 0 || isRadio) && !addSingle) {
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter(cssClass));
html.append("String_Node_Str");
}
 else {
html.append("String_Node_Str");
html.append(getCSSClassParameter(cssClass));
html.append(getWicketIDParameter(form,field));
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str" + (isRadio ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str");
html.append(getWicketIDParameter(form,field,"String_Node_Str","String_Node_Str"));
html.append(getDataProviderIDParameter(field));
if (isRadio) {
html.append("String_Node_Str");
}
 else {
html.append("String_Node_Str");
}
html.append("String_Node_Str");
html.append("String_Node_Str" + (isRadio ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str");
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field,"String_Node_Str","String_Node_Str"));
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
}
break;
case Field.COMBOBOX:
{
ins=null;
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
}
break;
case Field.MULTISELECT_LISTBOX:
case Field.LIST_BOX:
{
ins=null;
html.append("String_Node_Str");
if (field.getDisplayType() == Field.MULTISELECT_LISTBOX) {
html.append("String_Node_Str");
}
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append("String_Node_Str");
}
break;
case Field.CALENDAR:
case Field.SPINNER:
createCompositeFieldHTML(html,form,field,styleObj);
break;
case Field.IMAGE_MEDIA:
{
applyScrolling(styleObj,field);
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getCSSClassParameter("String_Node_Str"));
html.append('>');
TextualStyle inline2=new TextualStyle();
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
html.append("String_Node_Str");
html.append(inline2.toString());
html.append("String_Node_Str");
html.append("String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
html.append(inline2.toString());
html.append("String_Node_Str");
html.append("String_Node_Str");
inline2.setProperty("String_Node_Str","String_Node_Str");
html.append(inline2.toString());
html.append("String_Node_Str");
TextualStyle inline=new TextualStyle();
inline.setProperty("String_Node_Str","String_Node_Str");
inline.setProperty("String_Node_Str","String_Node_Str");
inline.setProperty("String_Node_Str","String_Node_Str");
if (field.getOnActionMethodID() < 1) {
inline.setProperty("String_Node_Str","String_Node_Str");
}
html.append("String_Node_Str");
html.append(inline.toString());
html.append(getWicketIDParameter(form,field));
html.append(getJavaScriptIDParameter(form,field));
html.append("String_Node_Str");
if (field.getName() != null) html.append(field.getName());
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
html.append("String_Node_Str");
}
break;
default :
case Field.TYPE_AHEAD:
case Field.TEXT_FIELD:
{
if (ins == null) {
ins=new BorderAndPadding(DEFAULT_FIELD_BORDER_SIZE,DEFAULT_FIELD_PADDING);
}
html.append("String_Node_Str");
html.append(getWicketIDParameter(form,field));
html.append(getDataProviderIDParameter(field));
html.append(getCSSClassParameter(field.getValuelistID() > 0 ? "String_Node_Str" : "String_Node_Str"));
html.append("String_Node_Str");
if (field.getSelectOnEnter()) {
html.append("String_Node_Str");
}
html.append("String_Node_Str");
}
break;
}
if (field.getHorizontalAlignment() != -1) {
if (isCompositeTextField(field.getDisplayType())) {
TextualStyle childTextCSS=css.addStyle('#' + ComponentFactory.getWebID(form,field) + WebDataCompositeTextField.AUGMENTED_FIELD_ID);
applyTextProperties(field,childTextCSS);
}
 else {
applyTextProperties(field,styleObj);
}
}
Insets borderAndPadding=ins == null ? new Insets(0,0,0,0) : ins.getSum();
WebAnchoringHelper.addMinSize(field.getAnchors(),sp,minSizeStyle,new Dimension(field.getSize().width - borderAndPadding.left - borderAndPadding.right,field.getSize().height - borderAndPadding.top - borderAndPadding.bottom),field);
if (addWrapperDiv) {
html.append("String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
styleObj.setProperty("String_Node_Str","String_Node_Str");
}
 else {
applyLocationAndSize(field,styleObj,ins,startY,endY,form.getSize().width,enableAnchoring,isListViewBodyElement(form,field.getLocation()) ? new Point(-3,0) : null);
}
}