Program: 122647
Project: 122647
Buggy source:
/** 
 * DOC ggu Comment method "syncNodePropertiesColumns".<BR/> synchronize COLUMN_LIST, PREV_COLUMN_LIST, LOOKUP_COLUMN_LIST
 * @param param
 * @param columnsChanged
 * @param columnNameList
 */
private static void syncNodePropertiesColumns(IElementParameter param,List<ColumnNameChanged> columnsChanged,String[] columnNameList){
  if (columnsChanged == null || columnsChanged.isEmpty()) {
    return;
  }
  if (columnNameList == null || columnNameList.length == 0) {
    return;
  }
  if (!isUpdateColumnEnable(param,columnsChanged,param)) {
    return;
  }
  String componentUniqueName="String_Node_Str";
  String preRowLookup="String_Node_Str";
  if (param.getFieldType() == EParameterFieldType.LOOKUP_COLUMN_LIST && columnNameList[0].indexOf("String_Node_Str") > 0) {
    ColumnNameChanged tmpChanged=columnsChanged.get(0);
    if (tmpChanged instanceof ColumnNameChangedExt) {
      componentUniqueName=((ColumnNameChangedExt)tmpChanged).getChangedNode().getUniqueName() + "String_Node_Str";
      preRowLookup=columnNameList[0].substring(0,columnNameList[0].indexOf("String_Node_Str") + 1);
    }
  }
  for (  ColumnNameChanged colChanged : columnsChanged) {
    boolean found=false;
    String newName=preRowLookup + colChanged.getNewName();
    for (int j=0; j < columnNameList.length; j++) {
      if (newName.equals(columnNameList[j])) {
        found=true;
        break;
      }
    }
    if (found) {
      if (param.getValue().equals(componentUniqueName + colChanged.getOldName())) {
        param.setValue(componentUniqueName + colChanged.getNewName());
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * DOC ggu Comment method "syncNodePropertiesColumns".<BR/> synchronize COLUMN_LIST, PREV_COLUMN_LIST, LOOKUP_COLUMN_LIST
 * @param param
 * @param columnsChanged
 * @param columnNameList
 */
private static void syncNodePropertiesColumns(IElementParameter param,List<ColumnNameChanged> columnsChanged,String[] columnNameList){
  if (columnsChanged == null || columnsChanged.isEmpty()) {
    return;
  }
  if (columnNameList == null || columnNameList.length == 0) {
    return;
  }
  if (!isUpdateColumnEnable(param,columnsChanged,param)) {
    return;
  }
  String componentUniqueName="String_Node_Str";
  String preRowLookup="String_Node_Str";
  if (param.getFieldType() == EParameterFieldType.LOOKUP_COLUMN_LIST && columnNameList[0].indexOf("String_Node_Str") > 0) {
    ColumnNameChanged tmpChanged=columnsChanged.get(0);
    if (tmpChanged instanceof ColumnNameChangedExt) {
      componentUniqueName=((ColumnNameChangedExt)tmpChanged).getChangedNode().getUniqueName() + "String_Node_Str";
      preRowLookup=columnNameList[0].substring(0,columnNameList[0].indexOf("String_Node_Str") + 1);
    }
  }
  for (  ColumnNameChanged colChanged : columnsChanged) {
    boolean found=false;
    String newName=preRowLookup + colChanged.getNewName();
    for (    String element : columnNameList) {
      if (newName.equals(element)) {
        found=true;
        break;
      }
    }
    if (found) {
      if (param.getValue().equals(componentUniqueName + colChanged.getOldName())) {
        param.setValue(componentUniqueName + colChanged.getNewName());
      }
    }
  }
}