You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "binde (JIRA)" <ji...@apache.org> on 2016/05/23 11:06:12 UTC

[jira] [Updated] (HADOOP-13192) org.apache.hadoop.util.LineReader match recordDelimiter has a bug

     [ https://issues.apache.org/jira/browse/HADOOP-13192?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

binde updated HADOOP-13192:
---------------------------
    Description: 
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;
        }
      }


  was:

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;
        }
      }



> 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
>   Original Estimate: 5m
>  Remaining Estimate: 5m
>
> 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-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org