Grant Ingersoll created LUCENE-5160:
---------------------------------------

             Summary: NIOFSDirectory, SimpleFSDirectory (others?) don't 
properly handle valid file and FileChannel read conditions
                 Key: LUCENE-5160
                 URL: https://issues.apache.org/jira/browse/LUCENE-5160
             Project: Lucene - Core
          Issue Type: Bug
    Affects Versions: 4.4, 5.0
            Reporter: Grant Ingersoll


Around line 190 of NIOFSDirectory, the loop to read in bytes doesn't properly 
handle the -1 condition that can be returned from FileChannel.read().  If it 
returns -1, then it will move the file pointer back and you will enter an 
infinite loop.  SimpleFSDirectory displays the same characteristics, although I 
have only seen the issue on NIOFSDirectory.

The code in question from NIOFSDirectory:
{code}
try {
        while (readLength > 0) {
          final int limit;
          if (readLength > chunkSize) {
            // LUCENE-1566 - work around JVM Bug by breaking
            // very large reads into chunks
            limit = readOffset + chunkSize;
          } else {
            limit = readOffset + readLength;
          }
          bb.limit(limit);
          int i = channel.read(bb, pos);
          pos += i;
          readOffset += i;
          readLength -= i;
        }
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to