Frank Wong created HUDI-4285:
--------------------------------

             Summary: ByteBuffer forget to rewind after get in AvroDeserializer
                 Key: HUDI-4285
                 URL: https://issues.apache.org/jira/browse/HUDI-4285
             Project: Apache Hudi
          Issue Type: Bug
            Reporter: Frank Wong


{code:java}
case (BYTES, BinaryType) => (updater, ordinal, value) =>
  val bytes = value match {
    case b: ByteBuffer =>
      val bytes = new Array[Byte](b.remaining)
      b.get(bytes)
      // Do not forget to reset the position
      b.rewind()
      bytes
    case b: Array[Byte] => b
    case other => throw new RuntimeException(s"$other is not a valid avro 
binary.")
  }
  updater.set(ordinal, bytes) {code}
After Avro data is converted to InternalRow, there will be redundant position 
in ByteBuffer type caused by ByteBuffer#get



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to