You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/10/13 12:36:52 UTC
svn commit: r1631340 - in
/lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x:
PreflexRWSegmentTermEnum.java TermInfosWriter.java
Author: mikemccand
Date: Mon Oct 13 10:36:52 2014
New Revision: 1631340
URL: http://svn.apache.org/r1631340
Log:
add MAGIC header so we will know if Lucene3xRW (from test-framework) ever tries to incorrectly read a non-Lucene3xRW file
Modified:
lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java
lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java
Modified: lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java?rev=1631340&r1=1631339&r2=1631340&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java (original)
+++ lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreflexRWSegmentTermEnum.java Mon Oct 13 10:36:52 2014
@@ -32,7 +32,11 @@ class PreflexRWSegmentTermEnum extends S
@Override
protected long readSize(IndexInput input) throws IOException {
long savedPosition = input.getFilePointer();
- input.seek(input.length() - 8);
+ input.seek(input.length() - 16);
+ long magic = input.readLong();
+ if (magic != TermInfosWriter.MAGIC) {
+ throw new CorruptIndexException("this file was not written with PreFlexRWCodec (resource: " + input + ")");
+ }
long size = input.readLong();
input.seek(savedPosition + 8); // we still left the 'hole'
return size;
Modified: lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java?rev=1631340&r1=1631339&r2=1631340&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java (original)
+++ lucene/dev/branches/lucene_solr_4_10/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/TermInfosWriter.java Mon Oct 13 10:36:52 2014
@@ -267,9 +267,12 @@ final class TermInfosWriter implements C
lastTerm.copyBytes(term);
}
+ static final long MAGIC = 0x71cf7f5aaaa251e5L;
+
/** Called to complete TermInfos creation. */
public void close() throws IOException {
try {
+ output.writeLong(MAGIC);
// the "real" 3.x seeked back to offset 4, and wrote 8 bytes there.
// we write 8 bytes at the end of the file
output.writeLong(size);