[Java] ArrowRecordBatch Body Length Computation Only Accounts for Last Buffer
- Lenguaje dominante
- Java
- Estrellas
- 94
- Forks
- 152
- Merge medio
- 3 d 16 h
- PR fusionados (30 d)
- 11
Descripción
### Describe the bug, including details regarding any error messages, version, and platform.
Hi Arrow Community,
I believe `ArrowRecordBatch::computeBodyLength` has an implementation bug. It does the following
```
for (int i = 0; i < buffers.size(); i++) {
ArrowBuf buffer = buffers.get(i);
ArrowBuffer layout = buffersLayout.get(i);
size = layout.getOffset() + buffer.readableBytes();
// round up size to the next multiple of 8
size = DataSizeRoundingUtil.roundUpTo8Multiple(size);
}
return size;
```
Since `size` is being assigned and not incremented at first - does this mean computeBodyLength only accounts for the last buffer ?
### Component(s)
Java
Guía de contribución
Línea de trabajo
Comienza en ArrowRecordBatch::computeBodyLength e inspecciona cómo contribuyen los diseños de los buffers y los bytes legibles al valor devuelto. Reproduce el cálculo con varios buffers y, después, comprueba el código Java circundante o las pruebas para determinar la semántica esperada de la longitud del cuerpo. Se considera terminado cuando el cálculo tiene en cuenta todos los buffers y conserva el redondeo requerido a 8 bytes.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- data-engineering
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100