binde created HADOOP-13192:
------------------------------

             Summary: org.apache.hadoop.util.LineReader  match recordDelimiter 
has a bug
                 Key: HADOOP-13192
                 URL: https://issues.apache.org/jira/browse/HADOOP-13192
             Project: Hadoop Common
          Issue Type: Bug
          Components: util
    Affects Versions: 2.6.2
            Reporter: binde



org.apache.hadoop.util.LineReader.readCustomLine()  has a bug,
when line is   aaaabccc, recordDelimiter is aaab, the result should be a,ccc,
show the code on line 310:
      for (; bufferPosn < bufferLength; ++bufferPosn) {
        if (buffer[bufferPosn] == recordDelimiterBytes[delPosn]) {
          delPosn++;
          if (delPosn >= recordDelimiterBytes.length) {
            bufferPosn++;
            break;
          }
        } else if (delPosn != 0) {
          bufferPosn--;
          delPosn = 0;
        }
      }

shoud be :
      for (; bufferPosn < bufferLength; ++bufferPosn) {
        if (buffer[bufferPosn] == recordDelimiterBytes[delPosn]) {
          delPosn++;
          if (delPosn >= recordDelimiterBytes.length) {
            bufferPosn++;
            break;
          }
        } else if (delPosn != 0) {
         // ------------- change here ------------- start ----
          bufferPosn -= delPosn;
         // ------------- change here ------------- end ----
          delPosn = 0;
        }
      }




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to