Yi Liu created HDFS-6885:
----------------------------
Summary: Fix wrong use of BytesWritable in FSEditLogOp#RenameOp
Key: HDFS-6885
URL: https://issues.apache.org/jira/browse/HDFS-6885
Project: Hadoop HDFS
Issue Type: Bug
Components: namenode
Reporter: Yi Liu
Assignee: Yi Liu
Priority: Minor
After readField using BytesWritable, the data length should be
{{writable.getLength()}}, instead of {{writable.getBytes().length}} which is
the buffer length.
This will cause returned {{Rename[]}} is longer than expected and may include
some incorrect values (They are Rename#NONE, and have not caused problem but
code is incorrect).
{code}
BytesWritable writable = new BytesWritable();
writable.readFields(in);
byte[] bytes = writable.getBytes();
Rename[] options = new Rename[bytes.length];
for (int i = 0; i < bytes.length; i++) {
options[i] = Rename.valueOf(bytes[i]);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)