Program: 69807
Project: 69807
Buggy source:
/** 
 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,org.olat.core.gui.render.StringOutput,org.olat.core.gui.components.Component,org.olat.core.gui.render.URLBuilder,org.olat.core.gui.translator.Translator,org.olat.core.gui.render.RenderResult,java.lang.String[])
 */
public void render(Renderer renderer,StringOutput target,Component source,URLBuilder ubu,Translator translator,RenderResult renderResult,String[] args){
  Choice choice=(Choice)source;
  TableDataModel tdm=choice.getTableDataModel();
  boolean iframePostEnabled=renderer.getGlobalSettings().getAjaxFlags().isIframePostEnabled();
  String id=choice.getComponentName() + "String_Node_Str" + choice.hashCode();
  target.append("String_Node_Str").append(id).append("String_Node_Str").append(id).append("String_Node_Str");
  ubu.buildURI(target,null,null,iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
  target.append("String_Node_Str");
  if (iframePostEnabled) {
    ubu.appendTarget(target);
  }
  target.append("String_Node_Str");
  target.append("String_Node_Str");
  int rows=tdm.getRowCount();
  int cols=tdm.getColumnCount();
  for (int i=0; i < rows; i++) {
    target.append("String_Node_Str");
    for (int j=0; j < cols; j++) {
      Object val=tdm.getValueAt(i,j);
      if (j == 0) {
        target.append("String_Node_Str");
        boolean selected=((Boolean)val).booleanValue();
        String keyN="String_Node_Str" + i;
        target.append("String_Node_Str");
        if (selected)         target.append("String_Node_Str");
        target.append("String_Node_Str").append(keyN).append("String_Node_Str").append(id).append("String_Node_Str");
      }
 else {
        target.append("String_Node_Str");
        String sVal=val.toString();
        target.append(StringEscapeUtils.escapeHtml(sVal));
      }
      target.append("String_Node_Str");
    }
    target.append("String_Node_Str");
  }
  target.append("String_Node_Str").append(cols).append("String_Node_Str");
  target.append("String_Node_Str");
  target.append("String_Node_Str" + id + "String_Node_Str");
  target.append("String_Node_Str");
  target.append(translator.translate("String_Node_Str"));
  target.append("String_Node_Str" + id + "String_Node_Str");
  target.append("String_Node_Str");
  target.append(translator.translate("String_Node_Str"));
  target.append("String_Node_Str");
  target.append("String_Node_Str");
  target.append("String_Node_Str").append(cols).append("String_Node_Str");
  target.append("String_Node_Str" + StringEscapeUtils.escapeHtml(translator.translate(choice.getSubmitKey())) + "String_Node_Str");
  String cancelKey=choice.getCancelKey();
  if (cancelKey != null) {
    target.append("String_Node_Str" + Choice.CANCEL_IDENTIFICATION + "String_Node_Str"+ StringEscapeUtils.escapeHtml(translator.translate(cancelKey))+ "String_Node_Str");
  }
  target.append("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,org.olat.core.gui.render.StringOutput,org.olat.core.gui.components.Component,org.olat.core.gui.render.URLBuilder,org.olat.core.gui.translator.Translator,org.olat.core.gui.render.RenderResult,java.lang.String[])
 */
public void render(Renderer renderer,StringOutput target,Component source,URLBuilder ubu,Translator translator,RenderResult renderResult,String[] args){
  Choice choice=(Choice)source;
  TableDataModel<?> tdm=choice.getTableDataModel();
  boolean iframePostEnabled=renderer.getGlobalSettings().getAjaxFlags().isIframePostEnabled();
  String id=choice.getComponentName() + "String_Node_Str" + choice.hashCode();
  target.append("String_Node_Str").append(id).append("String_Node_Str").append(id).append("String_Node_Str");
  ubu.buildURI(target,null,null,iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
  target.append("String_Node_Str");
  if (iframePostEnabled) {
    ubu.appendTarget(target);
  }
  target.append("String_Node_Str");
  target.append("String_Node_Str");
  int rows=tdm.getRowCount();
  int cols=tdm.getColumnCount();
  for (int i=0; i < rows; i++) {
    target.append("String_Node_Str");
    for (int j=0; j < cols; j++) {
      Object val=tdm.getValueAt(i,j);
      if (j == 0) {
        target.append("String_Node_Str");
        boolean selected=((Boolean)val).booleanValue();
        String keyN="String_Node_Str" + i;
        target.append("String_Node_Str");
        if (selected)         target.append("String_Node_Str");
        target.append("String_Node_Str").append(keyN).append("String_Node_Str").append(id).append("String_Node_Str");
      }
 else {
        target.append("String_Node_Str");
        String sVal=val.toString();
        target.append(StringEscapeUtils.escapeHtml(sVal));
      }
      target.append("String_Node_Str");
    }
    target.append("String_Node_Str");
  }
  target.append("String_Node_Str").append(cols).append("String_Node_Str");
  target.append("String_Node_Str");
  target.append("String_Node_Str" + id + "String_Node_Str");
  target.append("String_Node_Str");
  target.append(translator.translate("String_Node_Str"));
  target.append("String_Node_Str" + id + "String_Node_Str");
  target.append("String_Node_Str");
  target.append(translator.translate("String_Node_Str"));
  target.append("String_Node_Str");
  target.append("String_Node_Str");
  target.append("String_Node_Str").append(cols).append("String_Node_Str");
  target.append("String_Node_Str" + StringEscapeUtils.escapeHtml(translator.translate(choice.getSubmitKey())) + "String_Node_Str");
  String cancelKey=choice.getCancelKey();
  if (cancelKey != null) {
    target.append("String_Node_Str" + Choice.CANCEL_IDENTIFICATION + "String_Node_Str"+ StringEscapeUtils.escapeHtml(translator.translate(cancelKey))+ "String_Node_Str");
  }
  target.append("String_Node_Str");
}