LUCENE-6932: also fix NIOFSIndexInput to throw EOFE if you seek beyond end of file

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1726227 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael McCandless 2016-01-22 15:16:20 +00:00
parent 79572ada76
commit 56a76eb5a1
3 changed files with 10 additions and 4 deletions

View File

@ -192,6 +192,10 @@ public class NIOFSDirectory extends FSDirectory {
} }
@Override @Override
protected void seekInternal(long pos) throws IOException {} protected void seekInternal(long pos) throws IOException {
if (pos > length()) {
throw new EOFException("read past EOF: pos=" + pos + " vs length=" + length() + ": " + this);
}
}
} }
} }

View File

@ -434,7 +434,8 @@ public abstract class BaseGeoPointTestCase extends LuceneTestCase {
} else { } else {
result = -90 + 180.0 * random().nextDouble(); result = -90 + 180.0 * random().nextDouble();
} }
return result; // TODO: we should not do this here! it weakens the test, and users don't pre-quantize the lat/lons they send us:
return unscaleLat(scaleLat(result));
} }
public double randomLon(boolean small) { public double randomLon(boolean small) {
@ -444,7 +445,8 @@ public abstract class BaseGeoPointTestCase extends LuceneTestCase {
} else { } else {
result = -180 + 360.0 * random().nextDouble(); result = -180 + 360.0 * random().nextDouble();
} }
return result; // TODO: we should not do this here! it weakens the test, and users don't pre-quantize the lat/lons they send us:
return unscaleLon(scaleLon(result));
} }
protected GeoRect randomRect(boolean small, boolean canCrossDateLine) { protected GeoRect randomRect(boolean small, boolean canCrossDateLine) {

View File

@ -93,7 +93,7 @@ public class TestCompressingTermVectorsFormat extends BaseTermVectorsFormatTestC
// by this test. // by this test.
iwConf.setCodec(CompressingCodec.randomInstance(random(), 4*1024, 100, false, 8)); iwConf.setCodec(CompressingCodec.randomInstance(random(), 4*1024, 100, false, 8));
IndexWriter iw = new IndexWriter(dir, iwConf); IndexWriter iw = new IndexWriter(dir, iwConf);
DirectoryReader ir = DirectoryReader.open(iw, true); DirectoryReader ir = DirectoryReader.open(iw);
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
Document doc = new Document(); Document doc = new Document();
FieldType ft = new FieldType(TextField.TYPE_NOT_STORED); FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);