Chia-Ping Tsai created HBASE-19484:
--------------------------------------
Summary: The value array written by ExtendedCell#write is out of
bounds
Key: HBASE-19484
URL: https://issues.apache.org/jira/browse/HBASE-19484
Project: HBase
Issue Type: Bug
Reporter: Chia-Ping Tsai
Assignee: Chia-Ping Tsai
Priority: Blocker
Fix For: 2.0.0-beta-1
I move the impl of IndividualBytesFieldCell#write to ExtendedCell so as to make
it be a default method (see HBASE-19430), but I didn't notice that the value
array doesn't be handled correctly.
{code:title=ExtendedCell}
default int write(OutputStream out, boolean withTags) throws IOException {
// Key length and then value length
ByteBufferUtils.putInt(out, KeyValueUtil.keyLength(this));
ByteBufferUtils.putInt(out, getValueLength());
// Key
PrivateCellUtil.writeFlatKey(this, out);
// Value
out.write(getValueArray()); // <-- here
// Tags length and tags byte array
if (withTags && getTagsLength() > 0) {
// Tags length
out.write((byte)(0xff & (getTagsLength() >> 8)));
out.write((byte)(0xff & getTagsLength()));
// Tags byte array
out.write(getTagsArray(), getTagsOffset(), getTagsLength());
}
return getSerializedSize(withTags);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)