Viraj Jasani created PHOENIX-7617:
-------------------------------------

             Summary: BSON serialization should retain ByteBuffer offset
                 Key: PHOENIX-7617
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7617
             Project: Phoenix
          Issue Type: Bug
            Reporter: Viraj Jasani


The serialization of Phoenix BSON data type requires retrieval of bytes from 
BsonDocument 
ByteBuffer. BSON data type uses HBase provided Bytes utility to get the bytes 
from ByteBuffer. However, HBase Bytes resets the offset position to 0 before 
copying the bytes:
{code:java}
/**
 * Returns a new byte array, copied from the given {@code buf}, from the index 
0 (inclusive) to
 * the limit (exclusive), regardless of the current position. The position and 
the other index
 * parameters are not changed.
 * @param buf a byte buffer
 * @return the byte array
 * @see #getBytes(ByteBuffer)
 */
public static byte[] toBytes(ByteBuffer buf) {
  ByteBuffer dup = buf.duplicate();
  dup.position(0);
  return readBytes(dup);
} {code}
Therefore, BSON data type needs to have its own utility to address retaining 
offset while serializing the bytes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to