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: [email protected]
For additional commands, e-mail: [email protected]