Program: 57612
Project: 57612
Buggy source:
/** 
 * 读取复杂对象的值
 * @param fieldBean
 * @param excelVo
 * @param rowData
 * @param row
 * @param index
 * @param dataBean
 * @param group
 * @throws AdapterException
 * @throws ColumnErrorException
 */
protected void getColumnGroupField(FieldBean fieldBean,BaseExcelVo excelVo,Row rowData,int row,int index,DataBean dataBean,GroupConfig group) throws AdapterException, ColumnErrorException {
  DataBean childDataBean=dataBean.getChildDataBean(fieldBean.getField().getName());
  List<BaseExcelVo> childVo=(List<BaseExcelVo>)dataBean.getFieldValue(fieldBean.getField().getName(),excelVo);
  if (childVo == null) {
    return;
  }
  int size=group.getFieldNames().size();
  if (ObjectHelper.isNotEmpty(childVo)) {
    for (int r=0; r < childVo.size(); r++) {
      BaseExcelVo baseExcelVo=childVo.get(r);
      if (baseExcelVo != null) {
        for (int i=0; i < size; i++) {
          FieldBean childFieldBean=childDataBean.getFiledBeanList().get(i);
          if (childFieldBean.getFieldType() == FieldType.BASIC) {
            getSimpleField(childFieldBean,baseExcelVo,rowData,row,index + r * size,childDataBean);
          }
 else           if (childFieldBean.getFieldType() == FieldType.BAS_ARRAY) {
            GroupConfig childGroup=groupConfig.get(childFieldBean.getField().getName());
            getBasArrayField(childFieldBean,baseExcelVo,rowData,row,index + r * size,childDataBean,childGroup);
          }
 else           if (childFieldBean.getFieldType() == FieldType.ColumnGroup_ARRAY) {
            GroupConfig childGroup=groupConfig.get(childFieldBean.getField().getName());
            getColumnGroupField(childFieldBean,baseExcelVo,rowData,row,index + r * size,childDataBean,childGroup);
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * 读取复杂对象的值
 * @param fieldBean
 * @param excelVo
 * @param rowData
 * @param row
 * @param index
 * @param dataBean
 * @param group
 * @throws AdapterException
 * @throws ColumnErrorException
 */
protected void getColumnGroupField(FieldBean fieldBean,BaseExcelVo excelVo,Row rowData,int row,int index,DataBean dataBean,GroupConfig group) throws AdapterException, ColumnErrorException {
  DataBean childDataBean=dataBean.getChildDataBean(fieldBean.getField().getName());
  List<BaseExcelVo> childVo=(List<BaseExcelVo>)dataBean.getFieldValue(fieldBean.getField().getName(),excelVo);
  if (childVo == null) {
    return;
  }
  int size=group.getFieldNames().size();
  if (ObjectHelper.isNotEmpty(childVo)) {
    for (int r=0; r < childVo.size(); r++) {
      BaseExcelVo baseExcelVo=childVo.get(r);
      if (baseExcelVo != null) {
        for (int i=0; i < size; i++) {
          FieldBean childFieldBean=childDataBean.getFiledBeanList().get(i);
          if (childFieldBean.getFieldType() == FieldType.BASIC) {
            getSimpleField(childFieldBean,baseExcelVo,rowData,row,index + r * size + i,childDataBean);
          }
 else           if (childFieldBean.getFieldType() == FieldType.BAS_ARRAY) {
            GroupConfig childGroup=groupConfig.get(childFieldBean.getField().getName());
            getBasArrayField(childFieldBean,baseExcelVo,rowData,row,index + r * size + i,childDataBean,childGroup);
          }
 else           if (childFieldBean.getFieldType() == FieldType.ColumnGroup_ARRAY) {
            GroupConfig childGroup=groupConfig.get(childFieldBean.getField().getName());
            getColumnGroupField(childFieldBean,baseExcelVo,rowData,row,index + r * size + i,childDataBean,childGroup);
          }
        }
      }
    }
  }
}