diff --git a/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsFormat.java b/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsFormat.java index c58157cccf2..95f8f5525da 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsFormat.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsFormat.java @@ -35,5 +35,5 @@ public abstract class TermVectorsFormat { /** Returns a {@link TermVectorsWriter} to write term * vectors. */ - public abstract TermVectorsWriter vectorsWriter(Directory directory, String segment, IOContext context) throws IOException; + public abstract TermVectorsWriter vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context) throws IOException; } diff --git a/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsWriter.java b/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsWriter.java index b356b233719..b7c56b61a0d 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsWriter.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsWriter.java @@ -90,7 +90,7 @@ public abstract class TermVectorsWriter implements Closeable { * calls to {@link #startDocument(int)}, but a Codec should * check that this is the case to detect the JRE bug described * in LUCENE-1282. */ - public abstract void finish(int numDocs) throws IOException; + public abstract void finish(FieldInfos fis, int numDocs) throws IOException; /** * Called by IndexWriter when writing new segments. @@ -159,7 +159,7 @@ public abstract class TermVectorsWriter implements Closeable { mergeState.checkAbort.work(300); } } - finish(docCount); + finish(mergeState.fieldInfos, docCount); return docCount; } diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java index 387a6722e8e..7c70349d824 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java @@ -75,7 +75,7 @@ class Lucene3xTermVectorsFormat extends TermVectorsFormat { } @Override - public TermVectorsWriter vectorsWriter(Directory directory, String segment, IOContext context) throws IOException { + public TermVectorsWriter vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context) throws IOException { throw new UnsupportedOperationException("this codec can only be used for reading"); } } diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java index 07afcc491d7..f08b6d50bde 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java @@ -108,7 +108,7 @@ public class Lucene40TermVectorsFormat extends TermVectorsFormat { } @Override - public TermVectorsWriter vectorsWriter(Directory directory, String segment, IOContext context) throws IOException { - return new Lucene40TermVectorsWriter(directory, segment, context); + public TermVectorsWriter vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context) throws IOException { + return new Lucene40TermVectorsWriter(directory, segmentInfo.name, context); } } diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java index 372db237f40..d6db8add8db 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java @@ -23,6 +23,7 @@ import java.util.Comparator; import org.apache.lucene.codecs.TermVectorsReader; import org.apache.lucene.codecs.TermVectorsWriter; import org.apache.lucene.index.FieldInfo; +import org.apache.lucene.index.FieldInfos; import org.apache.lucene.index.Fields; import org.apache.lucene.index.IndexFileNames; import org.apache.lucene.index.MergePolicy.MergeAbortedException; @@ -264,7 +265,7 @@ public final class Lucene40TermVectorsWriter extends TermVectorsWriter { numDocs += copyVectorsNoDeletions(mergeState, matchingVectorsReader, reader, rawDocLengths, rawDocLengths2); } } - finish(numDocs); + finish(mergeState.fieldInfos, numDocs); return numDocs; } @@ -355,7 +356,7 @@ public final class Lucene40TermVectorsWriter extends TermVectorsWriter { } @Override - public void finish(int numDocs) throws IOException { + public void finish(FieldInfos fis, int numDocs) throws IOException { if (4+((long) numDocs)*16 != tvx.getFilePointer()) // This is most likely a bug in Sun JRE 1.6.0_04/_05; // we detect that the bug has struck, here, and diff --git a/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextStoredFieldsFormat.java b/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextStoredFieldsFormat.java index 3a84caa6ae5..dadc0a74af4 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextStoredFieldsFormat.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextStoredFieldsFormat.java @@ -18,7 +18,6 @@ package org.apache.lucene.codecs.simpletext; */ import java.io.IOException; -import java.util.Set; import org.apache.lucene.codecs.StoredFieldsFormat; import org.apache.lucene.codecs.StoredFieldsReader; @@ -37,7 +36,7 @@ import org.apache.lucene.store.IOContext; public class SimpleTextStoredFieldsFormat extends StoredFieldsFormat { @Override - public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException { + public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException {; return new SimpleTextStoredFieldsReader(directory, si, fn, context); } diff --git a/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsFormat.java b/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsFormat.java index 8b8d8d58011..096c7bf8409 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsFormat.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsFormat.java @@ -42,7 +42,7 @@ public class SimpleTextTermVectorsFormat extends TermVectorsFormat { } @Override - public TermVectorsWriter vectorsWriter(Directory directory, String segment, IOContext context) throws IOException { - return new SimpleTextTermVectorsWriter(directory, segment, context); + public TermVectorsWriter vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context) throws IOException { + return new SimpleTextTermVectorsWriter(directory, segmentInfo.name, context); } } diff --git a/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsWriter.java b/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsWriter.java index cabb56a08aa..282186a7ae4 100644 --- a/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsWriter.java +++ b/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsWriter.java @@ -22,6 +22,7 @@ import java.util.Comparator; import org.apache.lucene.codecs.TermVectorsWriter; import org.apache.lucene.index.FieldInfo; +import org.apache.lucene.index.FieldInfos; import org.apache.lucene.index.IndexFileNames; import org.apache.lucene.store.Directory; import org.apache.lucene.store.IOContext; @@ -154,7 +155,7 @@ public class SimpleTextTermVectorsWriter extends TermVectorsWriter { } @Override - public void finish(int numDocs) throws IOException { + public void finish(FieldInfos fis, int numDocs) throws IOException { if (numDocsWritten != numDocs) { throw new RuntimeException("mergeVectors produced an invalid result: mergedDocs is " + numDocs + " but vec numDocs is " + numDocsWritten + " file=" + out.toString() + "; now aborting this merge to prevent index corruption"); } diff --git a/lucene/core/src/java/org/apache/lucene/index/SegmentMerger.java b/lucene/core/src/java/org/apache/lucene/index/SegmentMerger.java index 46849d5fe50..a22bdcc2735 100644 --- a/lucene/core/src/java/org/apache/lucene/index/SegmentMerger.java +++ b/lucene/core/src/java/org/apache/lucene/index/SegmentMerger.java @@ -278,7 +278,7 @@ final class SegmentMerger { * @throws IOException */ private final int mergeVectors() throws IOException { - final TermVectorsWriter termVectorsWriter = codec.termVectorsFormat().vectorsWriter(directory, segment, context); + final TermVectorsWriter termVectorsWriter = codec.termVectorsFormat().vectorsWriter(directory, mergeState.segmentInfo, context); try { return termVectorsWriter.merge(mergeState); diff --git a/lucene/core/src/java/org/apache/lucene/index/TermVectorsConsumer.java b/lucene/core/src/java/org/apache/lucene/index/TermVectorsConsumer.java index ed20115ada0..3b43d29b09b 100644 --- a/lucene/core/src/java/org/apache/lucene/index/TermVectorsConsumer.java +++ b/lucene/core/src/java/org/apache/lucene/index/TermVectorsConsumer.java @@ -55,7 +55,7 @@ final class TermVectorsConsumer extends TermsHashConsumer { try { fill(state.numDocs); assert state.segmentInfo != null; - writer.finish(state.numDocs); + writer.finish(state.fieldInfos, state.numDocs); } finally { IOUtils.close(writer); writer = null; @@ -84,7 +84,7 @@ final class TermVectorsConsumer extends TermsHashConsumer { private final void initTermVectorsWriter() throws IOException { if (writer == null) { IOContext context = new IOContext(new FlushInfo(docWriter.getNumDocsInRAM(), docWriter.bytesUsed())); - writer = docWriter.codec.termVectorsFormat().vectorsWriter(docWriter.directory, docWriter.getSegmentInfo().name, context); + writer = docWriter.codec.termVectorsFormat().vectorsWriter(docWriter.directory, docWriter.getSegmentInfo(), context); lastDocID = 0; } } diff --git a/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsFormat.java b/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsFormat.java index 4f0a750378a..b734c97b422 100644 --- a/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsFormat.java +++ b/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsFormat.java @@ -30,8 +30,8 @@ import org.apache.lucene.util.LuceneTestCase; class PreFlexRWTermVectorsFormat extends Lucene3xTermVectorsFormat { @Override - public TermVectorsWriter vectorsWriter(Directory directory, String segment, IOContext context) throws IOException { - return new PreFlexRWTermVectorsWriter(directory, segment, context); + public TermVectorsWriter vectorsWriter(Directory directory, SegmentInfo segmentInfo, IOContext context) throws IOException { + return new PreFlexRWTermVectorsWriter(directory, segmentInfo.name, context); } @Override diff --git a/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsWriter.java b/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsWriter.java index a893bf167b9..206cbe0e789 100644 --- a/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsWriter.java +++ b/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWTermVectorsWriter.java @@ -22,6 +22,7 @@ import java.util.Comparator; import org.apache.lucene.codecs.TermVectorsWriter; import org.apache.lucene.index.FieldInfo; +import org.apache.lucene.index.FieldInfos; import org.apache.lucene.index.IndexFileNames; import org.apache.lucene.store.DataInput; import org.apache.lucene.store.Directory; @@ -194,7 +195,7 @@ final class PreFlexRWTermVectorsWriter extends TermVectorsWriter { } @Override - public void finish(int numDocs) throws IOException { + public void finish(FieldInfos fis, int numDocs) throws IOException { if (4+((long) numDocs)*16 != tvx.getFilePointer()) // This is most likely a bug in Sun JRE 1.6.0_04/_05; // we detect that the bug has struck, here, and