[
https://issues.apache.org/jira/browse/HADOOP-3454?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chad Whipkey updated HADOOP-3454:
---------------------------------
Attachment: HADOOP-3454.patch
> Text.find incorrectly searches beyond the end of the buffer
> -----------------------------------------------------------
>
> Key: HADOOP-3454
> URL: https://issues.apache.org/jira/browse/HADOOP-3454
> Project: Hadoop Core
> Issue Type: Bug
> Affects Versions: 0.17.0
> Reporter: Chad Whipkey
> Attachments: HADOOP-3454.patch
>
>
> Text.find() does not pay attention to the length field. So, this code:
> {code}
> public void testTextFind()
> {
> Text t = new Text("FIND AN I");
> t.set(new byte[] { (byte) 'F' });
> assert t.getLength() == 1 : "Length should be 1";
> assert t.find( "F") == 0 : "Found F at " + t.find("F");
> assert t.find( "I") == -1 : "Found I at " + t.find("I");
> }
> {code}
> incorrectly throws an assertion because it finds the I at position 1, even
> though the Text is only one byte long.
> I think to fix this it is enough to change this line in Text.find:
> ByteBuffer src = ByteBuffer.wrap(this.bytes);
> to
> ByteBuffer src = ByteBuffer.wrap(this.bytes,0,this.length);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.