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