Program: 121822
Project: 121822
Buggy source:
public static void renameComponentUniqueName(String oldConnectionName,String newConnectionName,List<Node> nodesToUpdate){
  for (  Node curNode : nodesToUpdate) {
    for (    IElementParameter curParam : curNode.getElementParameters()) {
      if (curParam.getFieldType().equals(EParameterFieldType.COMPONENT_LIST)) {
        if (oldConnectionName.equals(curParam.getValue())) {
          curParam.setValue(newConnectionName);
        }
      }
 else       if (curParam.getFieldType().equals(EParameterFieldType.TABLE)) {
        final Object[] itemsValue=curParam.getListItemsValue();
        for (int i=0; i < itemsValue.length; i++) {
          if (itemsValue[i] instanceof IElementParameter) {
            IElementParameter param=(IElementParameter)itemsValue[i];
            if (param.getFieldType().equals(EParameterFieldType.COMPONENT_LIST)) {
              List<Map<String,Object>> tableValues=(List<Map<String,Object>>)curParam.getValue();
              for (              Map<String,Object> curLine : tableValues) {
                Object value=curLine.get(param.getName());
                if (value instanceof Integer) {
                  String connectionName=(String)param.getListItemsValue()[(Integer)value];
                  if (connectionName.equals(oldConnectionName)) {
                    curLine.put(param.getName(),newConnectionName);
                  }
                }
 else                 if (value instanceof String) {
                  curLine.put(param.getName(),newConnectionName);
                }
              }
            }
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
public static void renameComponentUniqueName(String oldConnectionName,String newConnectionName,List<Node> nodesToUpdate){
  for (  Node curNode : nodesToUpdate) {
    for (    IElementParameter curParam : curNode.getElementParameters()) {
      if (curParam.getFieldType().equals(EParameterFieldType.COMPONENT_LIST)) {
        if (oldConnectionName.equals(curParam.getValue())) {
          curParam.setValue(newConnectionName);
        }
      }
 else       if (curParam.getFieldType().equals(EParameterFieldType.TABLE)) {
        final Object[] itemsValue=curParam.getListItemsValue();
        for (        Object element : itemsValue) {
          if (element instanceof IElementParameter) {
            IElementParameter param=(IElementParameter)element;
            if (param.getFieldType().equals(EParameterFieldType.COMPONENT_LIST)) {
              List<Map<String,Object>> tableValues=(List<Map<String,Object>>)curParam.getValue();
              for (              Map<String,Object> curLine : tableValues) {
                Object value=curLine.get(param.getName());
                if (value instanceof Integer) {
                  String connectionName=(String)param.getListItemsValue()[(Integer)value];
                  if (connectionName.equals(oldConnectionName)) {
                    curLine.put(param.getName(),newConnectionName);
                  }
                }
 else                 if (value instanceof String) {
                  curLine.put(param.getName(),newConnectionName);
                }
              }
            }
          }
        }
      }
    }
  }
}