Program: 129124
Project: 129124
Buggy source:
private String getColumnTextForParent(ContextTableTabParentModel parent,int columnIndex){
  String text="String_Node_Str";
  String sourceId=parent.getSourceId();
  if (columnIndex == 0) {
    if (IContextParameter.BUILT_IN.equals(sourceId)) {
      return parent.getContextParameter().getName();
    }
 else {
      return parent.getSourceName();
    }
  }
 else {
    if (IContextParameter.BUILT_IN.equals(sourceId)) {
      String contextParaName=parent.getContextParameter().getName();
      return lookupContextParameterValue(sourceId,contextParaName,columnIndex - 1);
    }
 else {
      List<ContextTabChildModel> children=parent.getChildren();
      StringBuffer sb=new StringBuffer();
      if (children != null && children.size() > 0) {
        for (        ContextTabChildModel child : children) {
          IContextParameter contextPara=child.getContextParameter();
          String paraName=contextPara.getName();
          String childSourceId=contextPara.getSource();
          IContextParameter foundContextPara=lookupContextParameter(childSourceId,paraName,columnIndex - 1);
          if (foundContextPara != null) {
            String value=foundContextPara.getValue();
            if (ContextConstant.NULL_STRING.equals(value))             sb.append("String_Node_Str" + "String_Node_Str");
 else             sb.append(ContextParameterUtils.checkAndHideValue(foundContextPara) + "String_Node_Str");
          }
        }
        if (sb.toString().lastIndexOf("String_Node_Str") != -1)         return sb.toString().substring(0,sb.toString().lastIndexOf("String_Node_Str"));
 else         return sb.toString();
      }
    }
  }
  return text;
}

Fixed version (ground truth):
private String getColumnTextForParent(ContextTableTabParentModel parent,int columnIndex){
  String text="String_Node_Str";
  String sourceId=parent.getSourceId();
  if (columnIndex == 0) {
    if (IContextParameter.BUILT_IN.equals(sourceId)) {
      return parent.getContextParameter().getName();
    }
 else {
      return parent.getSourceName();
    }
  }
 else {
    if (IContextParameter.BUILT_IN.equals(sourceId)) {
      String contextParaName=parent.getContextParameter().getName();
      return lookupContextParameterValue(sourceId,contextParaName,columnIndex - 1);
    }
 else {
      List<ContextTabChildModel> children=parent.getChildren();
      StringBuffer sb=new StringBuffer();
      if (children != null && children.size() > 0) {
        for (        ContextTabChildModel child : children) {
          IContextParameter contextPara=child.getContextParameter();
          String paraName=contextPara.getName();
          String childSourceId=contextPara.getSource();
          IContextParameter foundContextPara=lookupContextParameter(childSourceId,paraName,columnIndex - 1);
          if (foundContextPara != null) {
            String value=foundContextPara.getValue();
            if (ContextConstant.NULL_STRING.equals(value)) {
              sb.append("String_Node_Str" + "String_Node_Str");
            }
 else {
              sb.append(ContextParameterUtils.checkAndHideValue(foundContextPara) + "String_Node_Str");
            }
          }
        }
        if (sb.toString().lastIndexOf("String_Node_Str") != -1) {
          return sb.toString().substring(0,sb.toString().lastIndexOf("String_Node_Str"));
        }
 else {
          return sb.toString();
        }
      }
    }
  }
  return text;
}