Я писал Thrift api с запросом, содержащим двоичные данные в Scala.
Контракт был таким:
struct Request {
10: required string name
20: required binary data
30: required string type
}
Объект ByteBuffer в клиенте перед отправкой был похож на это:
java.nio.HeapByteBufferR[pos=0 lim=4 cap=4]
Однако объект ByteBuffer, полученный сервером, был другим:
java.nio.HeapByteBuffer[pos=230 lim=234 cap=312]
Мой вопрос: почему это происходит? И каковы лучшие практики, чтобы случайно не изменить ByteBuffer?