Program: 121028
Project: 121028
Buggy source:
private void checktAggregateRow(IElementParameter param){
  EParameterFieldType fieldType=param.getFieldType();
  if ("String_Node_Str".equals(component.getName()) && EParameterFieldType.TABLE.equals(fieldType) && EParameterName.GROUPBYS.name().equals(param.getName())) {
    Set<String> duplicatedColumns=new HashSet<String>();
    List<String> existColumns=new ArrayList<String>();
    if (param.getValue() instanceof List) {
      for (      Object obj : (List)param.getValue()) {
        if (obj instanceof Map) {
          Map childElement=(Map)obj;
          Object outputColumnName=childElement.get(param.getListItemsDisplayCodeName()[0]);
          if (outputColumnName instanceof String) {
            if (existColumns.contains(outputColumnName)) {
              duplicatedColumns.add((String)outputColumnName);
            }
 else {
              existColumns.add((String)outputColumnName);
            }
          }
        }
      }
    }
    IElementParameter relatedParam=getElementParameter(EParameterName.OPERATIONS.name());
    if (relatedParam != null && relatedParam.getValue() instanceof List) {
      for (      Object obj : (List)relatedParam.getValue()) {
        if (obj instanceof Map) {
          Map childElement=(Map)obj;
          Object outputColumnName=childElement.get(relatedParam.getListItemsDisplayCodeName()[0]);
          if (outputColumnName instanceof String) {
            if (existColumns.contains(outputColumnName)) {
              duplicatedColumns.add((String)outputColumnName);
            }
 else {
              existColumns.add((String)outputColumnName);
            }
          }
        }
      }
    }
    if (!duplicatedColumns.isEmpty()) {
      String errorMessage="String_Node_Str";
      for (      String columnName : duplicatedColumns) {
        errorMessage+=columnName + "String_Node_Str";
      }
      errorMessage=errorMessage.substring(0,errorMessage.length() - 1);
      Problems.add(ProblemStatus.ERROR,this,errorMessage);
    }
  }
}

Fixed version (ground truth):
private void checktAggregateRow(IElementParameter param){
  EParameterFieldType fieldType=param.getFieldType();
  if ("String_Node_Str".equals(component.getName()) && EParameterFieldType.TABLE.equals(fieldType) && EParameterName.GROUPBYS.name().equals(param.getName())) {
    Set<String> duplicatedColumns=new HashSet<String>();
    List<String> existColumns=new ArrayList<String>();
    if (param.getValue() instanceof List) {
      for (      Object obj : (List)param.getValue()) {
        if (obj instanceof Map) {
          Map childElement=(Map)obj;
          Object outputColumnName=childElement.get(param.getListItemsDisplayCodeName()[0]);
          if (outputColumnName instanceof String) {
            if (existColumns.contains(outputColumnName)) {
              duplicatedColumns.add((String)outputColumnName);
            }
 else {
              existColumns.add((String)outputColumnName);
            }
          }
        }
      }
    }
    IElementParameter relatedParam=getElementParameter(EParameterName.OPERATIONS.name());
    if (relatedParam != null && relatedParam.getValue() instanceof List) {
      for (      Object obj : (List)relatedParam.getValue()) {
        if (obj instanceof Map) {
          Map childElement=(Map)obj;
          Object outputColumnName=childElement.get(relatedParam.getListItemsDisplayCodeName()[0]);
          if (outputColumnName instanceof String) {
            if (existColumns.contains(outputColumnName)) {
              duplicatedColumns.add((String)outputColumnName);
            }
 else {
              existColumns.add((String)outputColumnName);
            }
          }
        }
      }
    }
    if (!duplicatedColumns.isEmpty()) {
      String errorMessage="String_Node_Str";
      for (      String columnName : duplicatedColumns) {
        errorMessage+=columnName + "String_Node_Str";
      }
      errorMessage=errorMessage.substring(0,errorMessage.length() - 1);
      Problems.add(ProblemStatus.WARNING,this,errorMessage);
    }
  }
}