You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/30 22:19:57 UTC

svn commit: r1238024 [1/2] - in /lucene/dev/branches/lucene2858: ./ lucene/ lucene/contrib/ lucene/contrib/misc/src/java/ lucene/src/java/org/apache/lucene/codecs/ lucene/src/java/org/apache/lucene/codecs/appending/ lucene/src/java/org/apache/lucene/co...

Author: rmuir
Date: Mon Jan 30 21:19:54 2012
New Revision: 1238024

URL: http://svn.apache.org/viewvc?rev=1238024&view=rev
Log:
merge trunk (1237715:1238015)

Added:
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xStoredFieldsFormat.java
      - copied unchanged from r1238015, lucene/dev/trunk/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xStoredFieldsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xStoredFieldsReader.java
      - copied unchanged from r1238015, lucene/dev/trunk/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xStoredFieldsReader.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/preflexrw/PreFlexRWStoredFieldsFormat.java
      - copied unchanged from r1238015, lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/codecs/preflexrw/PreFlexRWStoredFieldsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/preflexrw/PreFlexRWStoredFieldsWriter.java
      - copied unchanged from r1238015, lucene/dev/trunk/lucene/src/test-framework/java/org/apache/lucene/codecs/preflexrw/PreFlexRWStoredFieldsWriter.java
Removed:
    lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestSegmentInfo.java
Modified:
    lucene/dev/branches/lucene2858/   (props changed)
    lucene/dev/branches/lucene2858/lucene/   (props changed)
    lucene/dev/branches/lucene2858/lucene/contrib/CHANGES.txt   (props changed)
    lucene/dev/branches/lucene2858/lucene/contrib/misc/src/java/overview.html
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTermsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/Codec.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/DocValuesFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FieldInfosFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FixedGapTermsIndexReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/LiveDocsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/NormsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsBaseFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/StoredFieldsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/TermVectorsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/VariableGapTermsIndexReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/appending/AppendingPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xCodec.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsProducer.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xSegmentInfosReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReaderIndex.java   (contents, props changed)
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesConsumer.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40NormsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsBaseFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfosReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsWriter.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/pulsing/PulsingPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/sep/SepDocValuesConsumer.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldInfosFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldInfosReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextLiveDocsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsConsumer.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextStoredFieldsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextStoredFieldsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/IndexFileNames.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentReader.java
    lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/util/fst/FST.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/lucene40ords/Lucene40WithOrds.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/mockintblock/MockFixedIntBlockPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/mockintblock/MockVariableIntBlockPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/mockrandom/MockRandomPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/mocksep/MockSepDocValuesFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/mocksep/MockSepPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/nestedpulsing/NestedPulsingPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/preflexrw/PreFlexRWCodec.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/preflexrw/PreFlexRWTermVectorsWriter.java
    lucene/dev/branches/lucene2858/lucene/src/test-framework/java/org/apache/lucene/codecs/ramonly/RAMOnlyPostingsFormat.java
    lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
    lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
    lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java
    lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/util/fst/TestFSTs.java
    lucene/dev/branches/lucene2858/modules/analysis/kuromoji/   (props changed)
    lucene/dev/branches/lucene2858/solr/   (props changed)
    lucene/dev/branches/lucene2858/solr/core/   (props changed)
    lucene/dev/branches/lucene2858/solr/core/src/java/   (props changed)
    lucene/dev/branches/lucene2858/solr/core/src/java/org/apache/solr/cloud/Overseer.java
    lucene/dev/branches/lucene2858/solr/core/src/test/   (props changed)
    lucene/dev/branches/lucene2858/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
    lucene/dev/branches/lucene2858/solr/test-framework/   (props changed)

Modified: lucene/dev/branches/lucene2858/lucene/contrib/misc/src/java/overview.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/contrib/misc/src/java/overview.html?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/contrib/misc/src/java/overview.html (original)
+++ lucene/dev/branches/lucene2858/lucene/contrib/misc/src/java/overview.html Mon Jan 30 21:19:54 2012
@@ -35,7 +35,7 @@ changing norms, finding high freq terms,
 have to compile on your platform.
 
 <p>
-{@link NativeUnixDirectory} is a Directory implementation that bypasses the
+{@link org.apache.lucene.store.NativeUnixDirectory} is a Directory implementation that bypasses the
 OS's buffer cache (using direct IO) for any IndexInput and IndexOutput
 used during merging of segments larger than a specified size (default
 10 MB).  This avoids evicting hot pages that are still in-use for

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTermsReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTermsReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTermsReader.java Mon Jan 30 21:19:54 2012
@@ -186,7 +186,7 @@ public class BlockTermsReader extends Fi
     }
   }
 
-  public static void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Collection<String> files) {
+  public static void files(SegmentInfo segmentInfo, String segmentSuffix, Collection<String> files) {
     files.add(IndexFileNames.segmentFileName(segmentInfo.name, segmentSuffix, BlockTermsWriter.TERMS_EXTENSION));
   }
 

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java Mon Jan 30 21:19:54 2012
@@ -200,7 +200,7 @@ public class BlockTreeTermsReader extend
     }
   }
 
-  public static void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Collection<String> files) {
+  public static void files(SegmentInfo segmentInfo, String segmentSuffix, Collection<String> files) {
     files.add(IndexFileNames.segmentFileName(segmentInfo.name, segmentSuffix, BlockTreeTermsWriter.TERMS_EXTENSION));
     files.add(IndexFileNames.segmentFileName(segmentInfo.name, segmentSuffix, BlockTreeTermsWriter.TERMS_INDEX_EXTENSION));
   }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/Codec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/Codec.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/Codec.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/Codec.java Mon Jan 30 21:19:54 2012
@@ -20,10 +20,9 @@ package org.apache.lucene.codecs;
 import java.io.IOException;
 import java.util.Set;
 
+import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.util.NamedSPILoader;
-import org.apache.lucene.store.CompoundFileDirectory;
-import org.apache.lucene.store.Directory;
 
 /**
  * Encodes/decodes an inverted index segment
@@ -47,24 +46,22 @@ public abstract class Codec implements N
   /** Populates <code>files</code> with all filenames needed for 
    * the <code>info</code> segment.
    */
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    assert (dir instanceof CompoundFileDirectory) == false;
-    postingsFormat().files(dir, info, "", files);
-    storedFieldsFormat().files(dir, info, files);
-    termVectorsFormat().files(dir, info, files);
-    fieldInfosFormat().files(dir, info, files);
-    // TODO: segmentInfosFormat should be allowed to declare additional files
-    // if it wants, in addition to segments_N
-    docValuesFormat().files(dir, info, files);
-    normsFormat().files(dir, info, files);
-  }
-  
-  /** Populates <code>files</code> with any filenames that are
-   * stored outside of CFS for the <code>info</code> segment.
-   */
-  public void separateFiles(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    liveDocsFormat().separateFiles(dir, info, files);
-    normsFormat().separateFiles(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    if (info.getUseCompoundFile()) {
+      files.add(IndexFileNames.segmentFileName(info.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION));
+      files.add(IndexFileNames.segmentFileName(info.name, "", IndexFileNames.COMPOUND_FILE_ENTRIES_EXTENSION));
+    } else {
+      postingsFormat().files(info, "", files);
+      storedFieldsFormat().files(info, files);
+      termVectorsFormat().files(info, files);
+      fieldInfosFormat().files(info, files);
+      // TODO: segmentInfosFormat should be allowed to declare additional files
+      // if it wants, in addition to segments_N
+      docValuesFormat().files(info, files);
+      normsFormat().files(info, files);
+    }
+    // never inside CFS
+    liveDocsFormat().files(info, files);
   }
   
   /** Encodes/decodes postings */

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/DocValuesFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/DocValuesFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/DocValuesFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/DocValuesFormat.java Mon Jan 30 21:19:54 2012
@@ -23,10 +23,9 @@ import java.util.Set;
 import org.apache.lucene.index.PerDocWriteState;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.store.Directory;
 
 public abstract class DocValuesFormat {
   public abstract PerDocConsumer docsConsumer(PerDocWriteState state) throws IOException;
   public abstract PerDocProducer docsProducer(SegmentReadState state) throws IOException;
-  public abstract void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo info, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FieldInfosFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FieldInfosFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FieldInfosFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FieldInfosFormat.java Mon Jan 30 21:19:54 2012
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.util.Set;
 
 import org.apache.lucene.index.SegmentInfo;
-import org.apache.lucene.store.Directory;
 
 /**
  * @lucene.experimental
@@ -29,5 +28,5 @@ import org.apache.lucene.store.Directory
 public abstract class FieldInfosFormat {
   public abstract FieldInfosReader getFieldInfosReader() throws IOException;
   public abstract FieldInfosWriter getFieldInfosWriter() throws IOException;
-  public abstract void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo info, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FixedGapTermsIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FixedGapTermsIndexReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FixedGapTermsIndexReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/FixedGapTermsIndexReader.java Mon Jan 30 21:19:54 2012
@@ -387,7 +387,7 @@ public class FixedGapTermsIndexReader ex
     }
   }
 
-  public static void files(Directory dir, SegmentInfo info, String segmentSuffix, Collection<String> files) {
+  public static void files(SegmentInfo info, String segmentSuffix, Collection<String> files) {
     files.add(IndexFileNames.segmentFileName(info.name, segmentSuffix, FixedGapTermsIndexWriter.TERMS_INDEX_EXTENSION));
   }
 

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/LiveDocsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/LiveDocsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/LiveDocsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/LiveDocsFormat.java Mon Jan 30 21:19:54 2012
@@ -37,5 +37,5 @@ public abstract class LiveDocsFormat {
   public abstract Bits readLiveDocs(Directory dir, SegmentInfo info, IOContext context) throws IOException;
   /** writes bits to a file */
   public abstract void writeLiveDocs(MutableBits bits, Directory dir, SegmentInfo info, IOContext context) throws IOException;
-  public abstract void separateFiles(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo info, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/NormsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/NormsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/NormsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/NormsFormat.java Mon Jan 30 21:19:54 2012
@@ -23,7 +23,6 @@ import java.util.Set;
 import org.apache.lucene.index.PerDocWriteState;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.store.Directory;
 
 /**
  * format for normalization factors
@@ -31,21 +30,5 @@ import org.apache.lucene.store.Directory
 public abstract class NormsFormat {
   public abstract PerDocConsumer docsConsumer(PerDocWriteState state) throws IOException;
   public abstract PerDocProducer docsProducer(SegmentReadState state) throws IOException;
-  public abstract void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
-  
-  /** 
-   * Note: this should not be overridden! 
-   * @deprecated 
-   */
-  @Deprecated
-  public void separateFiles(Directory dir, SegmentInfo info, Set<String> files) throws IOException {};
-  
-  /**
-   * Note: this should not be overridden!
-   * @deprecated
-   */
-  @Deprecated
-  public PerDocProducer docsProducer(SegmentReadState state, Directory separateNormsDir) throws IOException {
-    return docsProducer(state);
-  }
+  public abstract void files(SegmentInfo info, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsBaseFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsBaseFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsBaseFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsBaseFormat.java Mon Jan 30 21:19:54 2012
@@ -23,7 +23,6 @@ import java.util.Set;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentWriteState;
 import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.store.Directory;
 
 /** 
  * Provides a {@link PostingsReaderBase} and {@link
@@ -51,5 +50,5 @@ public abstract class PostingsBaseFormat
 
   public abstract PostingsWriterBase postingsWriterBase(SegmentWriteState state) throws IOException;
 
-  public abstract void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/PostingsFormat.java Mon Jan 30 21:19:54 2012
@@ -25,8 +25,6 @@ import org.apache.lucene.index.SegmentWr
 import org.apache.lucene.index.SegmentReadState;
 import org.apache.lucene.util.NamedSPILoader;
 
-import org.apache.lucene.store.Directory;
-
 /** @lucene.experimental */
 public abstract class PostingsFormat implements NamedSPILoader.NamedSPI {
 
@@ -59,12 +57,11 @@ public abstract class PostingsFormat imp
   /**
    * Gathers files associated with this segment
    * 
-   * @param dir the {@link Directory} this segment was written to
    * @param segmentInfo the {@link SegmentInfo} for this segment 
    * @param segmentSuffix the format's suffix within this segment
    * @param files the of files to add the codec files to.
    */
-  public abstract void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException;
 
   @Override
   public String toString() {

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/StoredFieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/StoredFieldsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/StoredFieldsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/StoredFieldsFormat.java Mon Jan 30 21:19:54 2012
@@ -31,5 +31,5 @@ import org.apache.lucene.store.IOContext
 public abstract class StoredFieldsFormat {
   public abstract StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException;
   public abstract StoredFieldsWriter fieldsWriter(Directory directory, String segment, IOContext context) throws IOException;
-  public abstract void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo info, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/TermVectorsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/TermVectorsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/TermVectorsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/TermVectorsFormat.java Mon Jan 30 21:19:54 2012
@@ -31,5 +31,5 @@ import org.apache.lucene.store.IOContext
 public abstract class TermVectorsFormat {
   public abstract TermVectorsReader vectorsReader(Directory directory, SegmentInfo segmentInfo, FieldInfos fieldInfos, IOContext context) throws IOException;
   public abstract TermVectorsWriter vectorsWriter(Directory directory, String segment, IOContext context) throws IOException;
-  public abstract void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException;
+  public abstract void files(SegmentInfo info, Set<String> files) throws IOException;
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/VariableGapTermsIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/VariableGapTermsIndexReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/VariableGapTermsIndexReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/VariableGapTermsIndexReader.java Mon Jan 30 21:19:54 2012
@@ -217,7 +217,7 @@ public class VariableGapTermsIndexReader
     }
   }
 
-  public static void files(Directory dir, SegmentInfo info, String segmentSuffix, Collection<String> files) {
+  public static void files(SegmentInfo info, String segmentSuffix, Collection<String> files) {
     files.add(IndexFileNames.segmentFileName(info.name, segmentSuffix, VariableGapTermsIndexWriter.TERMS_INDEX_EXTENSION));
   }
 

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/appending/AppendingPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/appending/AppendingPostingsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/appending/AppendingPostingsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/appending/AppendingPostingsFormat.java Mon Jan 30 21:19:54 2012
@@ -83,9 +83,8 @@ class AppendingPostingsFormat extends Po
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Set<String> files)
-          throws IOException {
-    Lucene40PostingsReader.files(dir, segmentInfo, segmentSuffix, files);
-    BlockTreeTermsReader.files(dir, segmentInfo, segmentSuffix, files);
+  public void files(SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
+    Lucene40PostingsReader.files(segmentInfo, segmentSuffix, files);
+    BlockTreeTermsReader.files(segmentInfo, segmentSuffix, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xCodec.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xCodec.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xCodec.java Mon Jan 30 21:19:54 2012
@@ -24,16 +24,14 @@ import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.codecs.DocValuesFormat;
 import org.apache.lucene.codecs.FieldInfosFormat;
 import org.apache.lucene.codecs.LiveDocsFormat;
-import org.apache.lucene.codecs.NormsFormat;
 import org.apache.lucene.codecs.PerDocConsumer;
 import org.apache.lucene.codecs.PerDocProducer;
 import org.apache.lucene.codecs.PostingsFormat;
 import org.apache.lucene.codecs.SegmentInfosFormat;
 import org.apache.lucene.codecs.StoredFieldsFormat;
-import org.apache.lucene.codecs.StoredFieldsWriter;
 import org.apache.lucene.codecs.TermVectorsFormat;
 import org.apache.lucene.codecs.lucene40.Lucene40LiveDocsFormat;
-import org.apache.lucene.codecs.lucene40.Lucene40StoredFieldsFormat;
+import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.PerDocWriteState;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
@@ -43,7 +41,9 @@ import org.apache.lucene.util.MutableBit
 
 /**
  * Supports the Lucene 3.x index format (readonly)
+ * @deprecated
  */
+@Deprecated
 public class Lucene3xCodec extends Codec {
   public Lucene3xCodec() {
     super("Lucene3x");
@@ -51,13 +51,7 @@ public class Lucene3xCodec extends Codec
 
   private final PostingsFormat postingsFormat = new Lucene3xPostingsFormat();
   
-  // TODO: this should really be a different impl
-  private final StoredFieldsFormat fieldsFormat = new Lucene40StoredFieldsFormat() {
-    @Override
-    public StoredFieldsWriter fieldsWriter(Directory directory, String segment, IOContext context) throws IOException {
-      throw new UnsupportedOperationException("this codec can only be used for reading");
-    }
-  };
+  private final StoredFieldsFormat fieldsFormat = new Lucene3xStoredFieldsFormat();
   
   private final TermVectorsFormat vectorsFormat = new Lucene3xTermVectorsFormat();
   
@@ -65,7 +59,10 @@ public class Lucene3xCodec extends Codec
 
   private final SegmentInfosFormat infosFormat = new Lucene3xSegmentInfosFormat();
   
-  private final NormsFormat normsFormat = new Lucene3xNormsFormat();
+  private final Lucene3xNormsFormat normsFormat = new Lucene3xNormsFormat();
+  
+  /** Extension of compound file for doc store files*/
+  static final String COMPOUND_FILE_STORE_EXTENSION = "cfx";
   
   // TODO: this should really be a different impl
   private final LiveDocsFormat liveDocsFormat = new Lucene40LiveDocsFormat() {
@@ -88,7 +85,7 @@ public class Lucene3xCodec extends Codec
     }
 
     @Override
-    public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {}
+    public void files(SegmentInfo info, Set<String> files) throws IOException {}
   };
   
   @Override
@@ -122,7 +119,7 @@ public class Lucene3xCodec extends Codec
   }
 
   @Override
-  public NormsFormat normsFormat() {
+  public Lucene3xNormsFormat normsFormat() {
     return normsFormat;
   }
   
@@ -130,4 +127,31 @@ public class Lucene3xCodec extends Codec
   public LiveDocsFormat liveDocsFormat() {
     return liveDocsFormat;
   }
+  
+  // overrides the default implementation in codec.java to handle CFS without CFE, 
+  // shared doc stores, compound doc stores, separate norms, etc
+  @Override
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    if (info.getUseCompoundFile()) {
+      files.add(IndexFileNames.segmentFileName(info.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION));
+    } else {
+      postingsFormat().files(info, "", files);
+      storedFieldsFormat().files(info, files);
+      termVectorsFormat().files(info, files);
+      fieldInfosFormat().files(info, files);
+      // TODO: segmentInfosFormat should be allowed to declare additional files
+      // if it wants, in addition to segments_N
+      docValuesFormat().files(info, files);
+      normsFormat().files(info, files);
+    }
+    // never inside CFS
+    liveDocsFormat().files(info, files);
+    normsFormat().separateFiles(info, files);
+    
+    // shared docstores: these guys check the hair
+    if (info.getDocStoreOffset() != -1) {
+      storedFieldsFormat().files(info, files);
+      termVectorsFormat().files(info, files);
+    }
+  }  
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosFormat.java Mon Jan 30 21:19:54 2012
@@ -24,7 +24,6 @@ import org.apache.lucene.codecs.FieldInf
 import org.apache.lucene.codecs.FieldInfosReader;
 import org.apache.lucene.codecs.FieldInfosWriter;
 import org.apache.lucene.index.SegmentInfo;
-import org.apache.lucene.store.Directory;
 
 /**
  * Lucene3x ReadOnly FieldInfosFromat implementation
@@ -47,7 +46,7 @@ public class Lucene3xFieldInfosFormat ex
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene3xFieldInfosReader.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene3xFieldInfosReader.files(info, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFieldInfosReader.java Mon Jan 30 21:19:54 2012
@@ -34,7 +34,9 @@ import org.apache.lucene.store.IndexInpu
 
 /**
  * @lucene.experimental
+ * @deprecated
  */
+@Deprecated
 public class Lucene3xFieldInfosReader extends FieldInfosReader {
   /** Extension of field infos */
   static final String FIELD_INFOS_EXTENSION = "fnm";
@@ -117,7 +119,7 @@ public class Lucene3xFieldInfosReader ex
     }
   }
   
-  public static void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  public static void files(SegmentInfo info, Set<String> files) throws IOException {
     files.add(IndexFileNames.segmentFileName(info.name, "", FIELD_INFOS_EXTENSION));
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xFields.java Mon Jan 30 21:19:54 2012
@@ -133,7 +133,7 @@ public class Lucene3xFields extends Fiel
     return true;
   }
 
-  static void files(Directory dir, SegmentInfo info, Collection<String> files) throws IOException {
+  static void files(SegmentInfo info, Collection<String> files) throws IOException {
     files.add(IndexFileNames.segmentFileName(info.name, "", Lucene3xPostingsFormat.TERMS_EXTENSION));
     files.add(IndexFileNames.segmentFileName(info.name, "", Lucene3xPostingsFormat.TERMS_INDEX_EXTENSION));
     files.add(IndexFileNames.segmentFileName(info.name, "", Lucene3xPostingsFormat.FREQ_EXTENSION));
@@ -144,7 +144,7 @@ public class Lucene3xFields extends Fiel
       // file, when it should have been false.  So we do the
       // extra check, here:
       final String prx = IndexFileNames.segmentFileName(info.name, "", Lucene3xPostingsFormat.PROX_EXTENSION);
-      if (dir.fileExists(prx)) {
+      if (info.dir.fileExists(prx)) {
         files.add(prx);
       }
     }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsFormat.java Mon Jan 30 21:19:54 2012
@@ -26,7 +26,6 @@ import org.apache.lucene.codecs.PerDocPr
 import org.apache.lucene.index.PerDocWriteState;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.store.Directory;
 
 /**
  * Lucene3x ReadOnly NormsFormat implementation
@@ -39,13 +38,12 @@ public class Lucene3xNormsFormat extends
 
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene3xNormsProducer.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene3xNormsProducer.files(info, files);
   }
 
-  @Override
-  public void separateFiles(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene3xNormsProducer.separateFiles(dir, info, files);
+  public void separateFiles(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene3xNormsProducer.separateFiles(info, files);
   }
 
 
@@ -56,12 +54,6 @@ public class Lucene3xNormsFormat extends
 
   @Override
   public PerDocProducer docsProducer(SegmentReadState state) throws IOException {
-    return docsProducer(state, null);
-  }
-
-  @Override
-  public PerDocProducer docsProducer(SegmentReadState state,
-      Directory separateNormsDir) throws IOException {
-    return new Lucene3xNormsProducer(state.dir, state.segmentInfo, state.fieldInfos, state.context, separateNormsDir);
+    return new Lucene3xNormsProducer(state.dir, state.segmentInfo, state.fieldInfos, state.context);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsProducer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsProducer.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsProducer.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xNormsProducer.java Mon Jan 30 21:19:54 2012
@@ -43,7 +43,9 @@ import org.apache.lucene.util.StringHelp
 /**
  * Reads Lucene 3.x norms format and exposes it via DocValues API
  * @lucene.experimental
+ * @deprecated
  */
+@Deprecated
 class Lucene3xNormsProducer extends PerDocProducer {
   
   /** norms header placeholder */
@@ -52,9 +54,7 @@ class Lucene3xNormsProducer extends PerD
   /** Extension of norms file */
   static final String NORMS_EXTENSION = "nrm";
   
-  /** Extension of separate norms file
-   * @deprecated */
-  @Deprecated
+  /** Extension of separate norms file */
   static final String SEPARATE_NORMS_EXTENSION = "s";
   
   final Map<String,NormsDocValues> norms = new HashMap<String,NormsDocValues>();
@@ -67,7 +67,8 @@ class Lucene3xNormsProducer extends PerD
   
   // note: just like segmentreader in 3.x, we open up all the files here (including separate norms) up front.
   // but we just don't do any seeks or reading yet.
-  public Lucene3xNormsProducer(Directory dir, SegmentInfo info, FieldInfos fields, IOContext context, Directory separateNormsDir) throws IOException {
+  public Lucene3xNormsProducer(Directory dir, SegmentInfo info, FieldInfos fields, IOContext context) throws IOException {
+    Directory separateNormsDir = info.dir; // separate norms are never inside CFS
     maxdoc = info.docCount;
     String segmentName = info.name;
     Map<Integer,Long> normGen = info.getNormGen();
@@ -192,19 +193,17 @@ class Lucene3xNormsProducer extends PerD
     
   }
   
-  static void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  static void files(SegmentInfo info, Set<String> files) throws IOException {
     // TODO: This is what SI always did... but we can do this cleaner?
     // like first FI that has norms but doesn't have separate norms?
     final String normsFileName = IndexFileNames.segmentFileName(info.name, "", NORMS_EXTENSION);
-    if (dir.fileExists(normsFileName)) {
+    if (info.dir.fileExists(normsFileName)) {
       // only needed to do this in 3x - 4x can decide if the norms are present
       files.add(normsFileName);
     }
   }
   
-  /** @deprecated */
-  @Deprecated
-  static void separateFiles(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  static void separateFiles(SegmentInfo info, Set<String> files) throws IOException {
     Map<Integer,Long> normGen = info.getNormGen();
     if (normGen != null) {
       for (Entry<Integer,Long> entry : normGen.entrySet()) {

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xPostingsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xPostingsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xPostingsFormat.java Mon Jan 30 21:19:54 2012
@@ -20,7 +20,6 @@ package org.apache.lucene.codecs.lucene3
 import java.util.Set;
 import java.io.IOException;
 
-import org.apache.lucene.store.Directory;
 import org.apache.lucene.codecs.FieldsConsumer;
 import org.apache.lucene.codecs.FieldsProducer;
 import org.apache.lucene.codecs.PostingsFormat;
@@ -66,8 +65,8 @@ public class Lucene3xPostingsFormat exte
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, String segmentSuffix, Set<String> files) throws IOException {
+  public void files(SegmentInfo info, String segmentSuffix, Set<String> files) throws IOException {
     // preflex fields have no segmentSuffix - we ignore it here
-    Lucene3xFields.files(dir, info, files);
+    Lucene3xFields.files(info, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xSegmentInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xSegmentInfosReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xSegmentInfosReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xSegmentInfosReader.java Mon Jan 30 21:19:54 2012
@@ -37,7 +37,9 @@ import org.apache.lucene.store.IOContext
 /**
  * Lucene 3x implementation of {@link SegmentInfosReader}.
  * @lucene.experimental
+ * @deprecated
  */
+@Deprecated
 public class Lucene3xSegmentInfosReader extends SegmentInfosReader {
 
   @Override
@@ -56,7 +58,7 @@ public class Lucene3xSegmentInfosReader 
           if (si.getDocStoreIsCompoundFile()) {
             dir = new CompoundFileDirectory(dir, IndexFileNames.segmentFileName(
                 si.getDocStoreSegment(), "",
-                IndexFileNames.COMPOUND_FILE_STORE_EXTENSION), context, false);
+                Lucene3xCodec.COMPOUND_FILE_STORE_EXTENSION), context, false);
           }
         } else if (si.getUseCompoundFile()) {
           dir = new CompoundFileDirectory(dir, IndexFileNames.segmentFileName(
@@ -64,7 +66,7 @@ public class Lucene3xSegmentInfosReader 
         }
 
         try {
-          Lucene40StoredFieldsReader.checkCodeVersion(dir, si.getDocStoreSegment());
+          Lucene3xStoredFieldsReader.checkCodeVersion(dir, si.getDocStoreSegment());
         } finally {
           // If we opened the directory, close it
           if (dir != directory) dir.close();
@@ -142,7 +144,7 @@ public class Lucene3xSegmentInfosReader 
       if (docStoreOffset != -1) {
         storesSegment = docStoreSegment;
         storeIsCompoundFile = docStoreIsCompoundFile;
-        ext = IndexFileNames.COMPOUND_FILE_STORE_EXTENSION;
+        ext = Lucene3xCodec.COMPOUND_FILE_STORE_EXTENSION;
       } else {
         storesSegment = name;
         storeIsCompoundFile = isCompoundFile;

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsFormat.java Mon Jan 30 21:19:54 2012
@@ -48,8 +48,8 @@ public class Lucene3xTermVectorsFormat e
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene3xTermVectorsReader.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene3xTermVectorsReader.files(info, files);
   }
   
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/Lucene3xTermVectorsReader.java Mon Jan 30 21:19:54 2012
@@ -38,6 +38,7 @@ import org.apache.lucene.index.IndexForm
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
+import org.apache.lucene.store.CompoundFileDirectory;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexInput;
@@ -45,6 +46,8 @@ import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.IOUtils;
 
+/** @deprecated */
+@Deprecated
 public class Lucene3xTermVectorsReader extends TermVectorsReader {
 
   // NOTE: if you make a new format, it must be larger than
@@ -88,6 +91,12 @@ public class Lucene3xTermVectorsReader e
   // file.  This will be 0 if we have our own private file.
   private int docStoreOffset;
   
+  // when we are inside a compound share doc store (CFX),
+  // (lucene 3.0 indexes only), we privately open our own fd.
+  // TODO: if we are worried, maybe we could eliminate the
+  // extra fd somehow when you also have vectors...
+  private final CompoundFileDirectory storeCFSReader;
+  
   private final int format;
 
   // used by clone
@@ -100,6 +109,7 @@ public class Lucene3xTermVectorsReader e
     this.numTotalDocs = numTotalDocs;
     this.docStoreOffset = docStoreOffset;
     this.format = format;
+    this.storeCFSReader = null;
   }
     
   public Lucene3xTermVectorsReader(Directory d, SegmentInfo si, FieldInfos fieldInfos, IOContext context)
@@ -111,6 +121,12 @@ public class Lucene3xTermVectorsReader e
     boolean success = false;
 
     try {
+      if (docStoreOffset != -1 && si.getDocStoreIsCompoundFile()) {
+        d = storeCFSReader = new CompoundFileDirectory(si.dir, 
+            IndexFileNames.segmentFileName(segment, "", Lucene3xCodec.COMPOUND_FILE_STORE_EXTENSION), context, false);
+      } else {
+        storeCFSReader = null;
+      }
       String idxName = IndexFileNames.segmentFileName(segment, "", VECTORS_INDEX_EXTENSION);
       tvx = d.openInput(idxName, context);
       format = checkValidFormat(tvx);
@@ -168,7 +184,7 @@ public class Lucene3xTermVectorsReader e
   }
 
   public void close() throws IOException {
-    IOUtils.close(tvx, tvd, tvf);
+    IOUtils.close(tvx, tvd, tvf, storeCFSReader);
   }
 
   /**
@@ -674,16 +690,20 @@ public class Lucene3xTermVectorsReader e
     return new Lucene3xTermVectorsReader(fieldInfos, cloneTvx, cloneTvd, cloneTvf, size, numTotalDocs, docStoreOffset, format);
   }
   
-  public static void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  // note: if there are shared docstores, we are also called by Lucene3xCodec even in 
+  // the CFS case. so logic here must handle this.
+  public static void files(SegmentInfo info, Set<String> files) throws IOException {
     if (info.getHasVectors()) {
       if (info.getDocStoreOffset() != -1) {
         assert info.getDocStoreSegment() != null;
-        if (!info.getDocStoreIsCompoundFile()) {
+        if (info.getDocStoreIsCompoundFile()) {
+          files.add(IndexFileNames.segmentFileName(info.getDocStoreSegment(), "", Lucene3xCodec.COMPOUND_FILE_STORE_EXTENSION));
+        } else {
           files.add(IndexFileNames.segmentFileName(info.getDocStoreSegment(), "", VECTORS_INDEX_EXTENSION));
           files.add(IndexFileNames.segmentFileName(info.getDocStoreSegment(), "", VECTORS_FIELDS_EXTENSION));
           files.add(IndexFileNames.segmentFileName(info.getDocStoreSegment(), "", VECTORS_DOCUMENTS_EXTENSION));
         }
-      } else {
+      } else if (!info.getUseCompoundFile()) {
         files.add(IndexFileNames.segmentFileName(info.name, "", VECTORS_INDEX_EXTENSION));
         files.add(IndexFileNames.segmentFileName(info.name, "", VECTORS_FIELDS_EXTENSION));
         files.add(IndexFileNames.segmentFileName(info.name, "", VECTORS_DOCUMENTS_EXTENSION));

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReaderIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReaderIndex.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReaderIndex.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene3x/TermInfosReaderIndex.java Mon Jan 30 21:19:54 2012
@@ -36,7 +36,9 @@ import org.apache.lucene.util.packed.Pac
  * index segment. Pairs are accessed either by Term or by ordinal position the
  * set. The Terms and TermInfo are actually serialized and stored into a byte
  * array and pointers to the position of each are stored in a int array.
+ * @deprecated
  */
+@Deprecated
 class TermInfosReaderIndex {
 
   private static final int MAX_PAGE_BITS = 18; // 256 KB block

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesConsumer.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesConsumer.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesConsumer.java Mon Jan 30 21:19:54 2012
@@ -66,14 +66,14 @@ public class Lucene40DocValuesConsumer e
     }
   }
 
-  public static void files(Directory dir, SegmentInfo segmentInfo, Set<String> files) throws IOException {
+  public static void files(SegmentInfo segmentInfo, Set<String> files) throws IOException {
     FieldInfos fieldInfos = segmentInfo.getFieldInfos();
     for (FieldInfo fieldInfo : fieldInfos) {
       if (fieldInfo.hasDocValues()) {
         files.add(IndexFileNames.segmentFileName(segmentInfo.name, DOC_VALUES_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_EXTENSION));
         files.add(IndexFileNames.segmentFileName(segmentInfo.name, DOC_VALUES_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_ENTRIES_EXTENSION));
-        assert dir.fileExists(IndexFileNames.segmentFileName(segmentInfo.name, DOC_VALUES_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_ENTRIES_EXTENSION)); 
-        assert dir.fileExists(IndexFileNames.segmentFileName(segmentInfo.name, DOC_VALUES_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_EXTENSION)); 
+        assert segmentInfo.dir.fileExists(IndexFileNames.segmentFileName(segmentInfo.name, DOC_VALUES_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_ENTRIES_EXTENSION)); 
+        assert segmentInfo.dir.fileExists(IndexFileNames.segmentFileName(segmentInfo.name, DOC_VALUES_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_EXTENSION)); 
         break;
       }
     }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40DocValuesFormat.java Mon Jan 30 21:19:54 2012
@@ -26,7 +26,6 @@ import org.apache.lucene.codecs.PerDocPr
 import org.apache.lucene.index.PerDocWriteState;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.store.Directory;
 
 public class Lucene40DocValuesFormat extends DocValuesFormat {
 
@@ -41,7 +40,7 @@ public class Lucene40DocValuesFormat ext
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene40DocValuesConsumer.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene40DocValuesConsumer.files(info, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosFormat.java Mon Jan 30 21:19:54 2012
@@ -24,7 +24,6 @@ import org.apache.lucene.codecs.FieldInf
 import org.apache.lucene.codecs.FieldInfosReader;
 import org.apache.lucene.codecs.FieldInfosWriter;
 import org.apache.lucene.index.SegmentInfo;
-import org.apache.lucene.store.Directory;
 
 /**
  * @lucene.experimental
@@ -44,7 +43,7 @@ public class Lucene40FieldInfosFormat ex
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene40FieldInfosReader.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene40FieldInfosReader.files(info, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40FieldInfosReader.java Mon Jan 30 21:19:54 2012
@@ -145,7 +145,7 @@ public class Lucene40FieldInfosReader ex
     }
   }
   
-  public static void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  public static void files(SegmentInfo info, Set<String> files) throws IOException {
     files.add(IndexFileNames.segmentFileName(info.name, "", Lucene40FieldInfosWriter.FIELD_INFOS_EXTENSION));
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40LiveDocsFormat.java Mon Jan 30 21:19:54 2012
@@ -48,7 +48,7 @@ public class Lucene40LiveDocsFormat exte
   }
 
   @Override
-  public void separateFiles(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
     if (info.hasDeletions()) {
       files.add(IndexFileNames.fileNameFromGeneration(info.name, DELETES_EXTENSION, info.getDelGen()));
     }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40NormsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40NormsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40NormsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40NormsFormat.java Mon Jan 30 21:19:54 2012
@@ -30,7 +30,6 @@ import org.apache.lucene.index.AtomicRea
 import org.apache.lucene.index.PerDocWriteState;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
-import org.apache.lucene.store.Directory;
 
 /**
  * Norms Format for the default codec. 
@@ -50,10 +49,8 @@ public class Lucene40NormsFormat extends
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files)
-      throws IOException {
-    Lucene40NormsDocValuesConsumer.files(dir, info, files);
-
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene40NormsDocValuesConsumer.files(info, files);
   }
  
   public static class Lucene40NormsDocValuesProducer extends Lucene40DocValuesProducer {
@@ -103,7 +100,7 @@ public class Lucene40NormsFormat extends
       return info.getNormType();
     }
     
-    public static void files(Directory dir, SegmentInfo segmentInfo, Set<String> files) throws IOException {
+    public static void files(SegmentInfo segmentInfo, Set<String> files) throws IOException {
       final String normsFileName = IndexFileNames.segmentFileName(segmentInfo.name, NORMS_SEGMENT_SUFFIX, IndexFileNames.COMPOUND_FILE_EXTENSION);
       FieldInfos fieldInfos = segmentInfo.getFieldInfos();
       for (FieldInfo fieldInfo : fieldInfos) {

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsBaseFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsBaseFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsBaseFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsBaseFormat.java Mon Jan 30 21:19:54 2012
@@ -26,7 +26,6 @@ import org.apache.lucene.codecs.Postings
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
 import org.apache.lucene.index.SegmentWriteState;
-import org.apache.lucene.store.Directory;
 
 /** 
  * Provides a {@link PostingsReaderBase} and {@link
@@ -52,7 +51,7 @@ public final class Lucene40PostingsBaseF
   }
   
   @Override
-  public void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
-    Lucene40PostingsReader.files(dir, segmentInfo, segmentSuffix, files);
+  public void files(SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
+    Lucene40PostingsReader.files(segmentInfo, segmentSuffix, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsFormat.java Mon Jan 30 21:19:54 2012
@@ -30,7 +30,6 @@ import org.apache.lucene.codecs.Postings
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentReadState;
 import org.apache.lucene.index.SegmentWriteState;
-import org.apache.lucene.store.Directory;
 
 /** Default codec. 
  *  @lucene.experimental */
@@ -106,9 +105,9 @@ public class Lucene40PostingsFormat exte
   static final String PROX_EXTENSION = "prx";
 
   @Override
-  public void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
-    Lucene40PostingsReader.files(dir, segmentInfo, segmentSuffix, files);
-    BlockTreeTermsReader.files(dir, segmentInfo, segmentSuffix, files);
+  public void files(SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
+    Lucene40PostingsReader.files(segmentInfo, segmentSuffix, files);
+    BlockTreeTermsReader.files(segmentInfo, segmentSuffix, files);
   }
 
   @Override

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsReader.java Mon Jan 30 21:19:54 2012
@@ -74,7 +74,7 @@ public class Lucene40PostingsReader exte
     }
   }
 
-  public static void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Collection<String> files) throws IOException {
+  public static void files(SegmentInfo segmentInfo, String segmentSuffix, Collection<String> files) throws IOException {
     files.add(IndexFileNames.segmentFileName(segmentInfo.name, segmentSuffix, Lucene40PostingsFormat.FREQ_EXTENSION));
     if (segmentInfo.getHasProx()) {
       files.add(IndexFileNames.segmentFileName(segmentInfo.name, segmentSuffix, Lucene40PostingsFormat.PROX_EXTENSION));

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfosReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfosReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40SegmentInfosReader.java Mon Jan 30 21:19:54 2012
@@ -23,7 +23,6 @@ import java.util.Map;
 
 import org.apache.lucene.codecs.Codec;
 import org.apache.lucene.codecs.SegmentInfosReader;
-import org.apache.lucene.index.IndexFormatTooOldException;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentInfos;
 import org.apache.lucene.store.ChecksumIndexInput;

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsFormat.java Mon Jan 30 21:19:54 2012
@@ -44,7 +44,7 @@ public class Lucene40StoredFieldsFormat 
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene40StoredFieldsReader.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene40StoredFieldsReader.files(info, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsReader.java Mon Jan 30 21:19:54 2012
@@ -24,8 +24,6 @@ import org.apache.lucene.index.CorruptIn
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.FieldInfos;
 import org.apache.lucene.index.IndexFileNames;
-import org.apache.lucene.index.IndexFormatTooNewException;
-import org.apache.lucene.index.IndexFormatTooOldException;
 import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.StoredFieldVisitor;
 import org.apache.lucene.store.AlreadyClosedException;
@@ -35,7 +33,6 @@ import org.apache.lucene.store.IndexInpu
 import org.apache.lucene.util.IOUtils;
 
 import java.io.Closeable;
-import java.nio.charset.Charset;
 import java.util.Set;
 
 /**
@@ -54,11 +51,6 @@ public final class Lucene40StoredFieldsR
   private int numTotalDocs;
   private int size;
   private boolean closed;
-  private final int format;
-
-  // The docID offset where our docs begin in the index
-  // file.  This will be 0 if we have our own private file.
-  private int docStoreOffset;
 
   /** Returns a cloned FieldsReader that shares open
    *  IndexInputs with the original one.  It is the caller's
@@ -68,41 +60,20 @@ public final class Lucene40StoredFieldsR
   @Override
   public Lucene40StoredFieldsReader clone() {
     ensureOpen();
-    return new Lucene40StoredFieldsReader(fieldInfos, numTotalDocs, size, format, docStoreOffset, (IndexInput)fieldsStream.clone(), (IndexInput)indexStream.clone());
-  }
-
-  /** Verifies that the code version which wrote the segment is supported. */
-  public static void checkCodeVersion(Directory dir, String segment) throws IOException {
-    final String indexStreamFN = IndexFileNames.segmentFileName(segment, "", Lucene40StoredFieldsWriter.FIELDS_INDEX_EXTENSION);
-    IndexInput idxStream = dir.openInput(indexStreamFN, IOContext.DEFAULT);
-    
-    try {
-      int format = idxStream.readInt();
-      if (format < Lucene40StoredFieldsWriter.FORMAT_MINIMUM)
-        throw new IndexFormatTooOldException(idxStream, format, Lucene40StoredFieldsWriter.FORMAT_MINIMUM, Lucene40StoredFieldsWriter.FORMAT_CURRENT);
-      if (format > Lucene40StoredFieldsWriter.FORMAT_CURRENT)
-        throw new IndexFormatTooNewException(idxStream, format, Lucene40StoredFieldsWriter.FORMAT_MINIMUM, Lucene40StoredFieldsWriter.FORMAT_CURRENT);
-    } finally {
-      idxStream.close();
-    }
+    return new Lucene40StoredFieldsReader(fieldInfos, numTotalDocs, size, (IndexInput)fieldsStream.clone(), (IndexInput)indexStream.clone());
   }
   
   // Used only by clone
-  private Lucene40StoredFieldsReader(FieldInfos fieldInfos, int numTotalDocs, int size, int format, int docStoreOffset,
-                       IndexInput fieldsStream, IndexInput indexStream) {
+  private Lucene40StoredFieldsReader(FieldInfos fieldInfos, int numTotalDocs, int size, IndexInput fieldsStream, IndexInput indexStream) {
     this.fieldInfos = fieldInfos;
     this.numTotalDocs = numTotalDocs;
     this.size = size;
-    this.format = format;
-    this.docStoreOffset = docStoreOffset;
     this.fieldsStream = fieldsStream;
     this.indexStream = indexStream;
   }
 
   public Lucene40StoredFieldsReader(Directory d, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException {
-    final String segment = si.getDocStoreSegment();
-    final int docStoreOffset = si.getDocStoreOffset();
-    final int size = si.docCount;
+    final String segment = si.name;
     boolean success = false;
     fieldInfos = fn;
     try {
@@ -110,30 +81,17 @@ public final class Lucene40StoredFieldsR
       final String indexStreamFN = IndexFileNames.segmentFileName(segment, "", Lucene40StoredFieldsWriter.FIELDS_INDEX_EXTENSION);
       indexStream = d.openInput(indexStreamFN, context);
       
-      format = indexStream.readInt();
-
-      if (format < Lucene40StoredFieldsWriter.FORMAT_MINIMUM)
-        throw new IndexFormatTooOldException(indexStream, format, Lucene40StoredFieldsWriter.FORMAT_MINIMUM, Lucene40StoredFieldsWriter.FORMAT_CURRENT);
-      if (format > Lucene40StoredFieldsWriter.FORMAT_CURRENT)
-        throw new IndexFormatTooNewException(indexStream, format, Lucene40StoredFieldsWriter.FORMAT_MINIMUM, Lucene40StoredFieldsWriter.FORMAT_CURRENT);
+      // its a 4.0 codec: so its not too-old, its corrupt.
+      // TODO: change this to CodecUtil.checkHeader
+      if (Lucene40StoredFieldsWriter.FORMAT_CURRENT != indexStream.readInt()) {
+        throw new CorruptIndexException("unexpected fdx header: " + indexStream);
+      }
 
       final long indexSize = indexStream.length() - FORMAT_SIZE;
-      
-      if (docStoreOffset != -1) {
-        // We read only a slice out of this shared fields file
-        this.docStoreOffset = docStoreOffset;
-        this.size = size;
-
-        // Verify the file is long enough to hold all of our
-        // docs
-        assert ((int) (indexSize / 8)) >= size + this.docStoreOffset: "indexSize=" + indexSize + " size=" + size + " docStoreOffset=" + docStoreOffset;
-      } else {
-        this.docStoreOffset = 0;
-        this.size = (int) (indexSize >> 3);
-        // Verify two sources of "maxDoc" agree:
-        if (this.size != si.docCount) {
-          throw new CorruptIndexException("doc counts differ for segment " + segment + ": fieldsReader shows " + this.size + " but segmentInfo shows " + si.docCount);
-        }
+      this.size = (int) (indexSize >> 3);
+      // Verify two sources of "maxDoc" agree:
+      if (this.size != si.docCount) {
+        throw new CorruptIndexException("doc counts differ for segment " + segment + ": fieldsReader shows " + this.size + " but segmentInfo shows " + si.docCount);
       }
       numTotalDocs = (int) (indexSize >> 3);
       success = true;
@@ -176,7 +134,7 @@ public final class Lucene40StoredFieldsR
   }
 
   private void seekIndex(int docID) throws IOException {
-    indexStream.seek(FORMAT_SIZE + (docID + docStoreOffset) * 8L);
+    indexStream.seek(FORMAT_SIZE + docID * 8L);
   }
 
   public final void visitDocument(int n, StoredFieldVisitor visitor) throws CorruptIndexException, IOException {
@@ -203,8 +161,6 @@ public final class Lucene40StoredFieldsR
       }
     }
   }
-  
-  static final Charset UTF8 = Charset.forName("UTF-8");
 
   private void readField(StoredFieldVisitor visitor, FieldInfo info, int bits) throws IOException {
     final int numeric = bits & Lucene40StoredFieldsWriter.FIELD_IS_NUMERIC_MASK;
@@ -232,7 +188,7 @@ public final class Lucene40StoredFieldsR
       if ((bits & Lucene40StoredFieldsWriter.FIELD_IS_BINARY) != 0) {
         visitor.binaryField(info, bytes, 0, bytes.length);
       } else {
-        visitor.stringField(info, new String(bytes, 0, bytes.length, UTF8));
+        visitor.stringField(info, new String(bytes, 0, bytes.length, IOUtils.CHARSET_UTF_8));
       }
     }
   }
@@ -269,7 +225,7 @@ public final class Lucene40StoredFieldsR
     int count = 0;
     while (count < numDocs) {
       final long offset;
-      final int docID = docStoreOffset + startDocID + count + 1;
+      final int docID = startDocID + count + 1;
       assert docID <= numTotalDocs;
       if (docID < numTotalDocs) 
         offset = indexStream.readLong();
@@ -283,19 +239,9 @@ public final class Lucene40StoredFieldsR
 
     return fieldsStream;
   }
-  
-  // TODO: split into PreFlexFieldsReader so it can handle this shared docstore crap?
-  // only preflex segments refer to these?
-  public static void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    if (info.getDocStoreOffset() != -1) {
-      assert info.getDocStoreSegment() != null;
-      if (!info.getDocStoreIsCompoundFile()) {
-        files.add(IndexFileNames.segmentFileName(info.getDocStoreSegment(), "", Lucene40StoredFieldsWriter.FIELDS_INDEX_EXTENSION));
-        files.add(IndexFileNames.segmentFileName(info.getDocStoreSegment(), "", Lucene40StoredFieldsWriter.FIELDS_EXTENSION));
-      }
-    } else {
-      files.add(IndexFileNames.segmentFileName(info.name, "", Lucene40StoredFieldsWriter.FIELDS_INDEX_EXTENSION));
-      files.add(IndexFileNames.segmentFileName(info.name, "", Lucene40StoredFieldsWriter.FIELDS_EXTENSION));
-    }
+
+  public static void files(SegmentInfo info, Set<String> files) throws IOException {
+    files.add(IndexFileNames.segmentFileName(info.name, "", Lucene40StoredFieldsWriter.FIELDS_INDEX_EXTENSION));
+    files.add(IndexFileNames.segmentFileName(info.name, "", Lucene40StoredFieldsWriter.FIELDS_EXTENSION));
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsWriter.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsWriter.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40StoredFieldsWriter.java Mon Jan 30 21:19:54 2012
@@ -55,10 +55,7 @@ public final class Lucene40StoredFieldsW
   // currently unused: static final int FIELD_IS_NUMERIC_SHORT = 5 << _NUMERIC_BIT_SHIFT;
   // currently unused: static final int FIELD_IS_NUMERIC_BYTE = 6 << _NUMERIC_BIT_SHIFT;
 
-  // Lucene 3.0: Removal of compressed fields
-  static final int FORMAT_LUCENE_3_0_NO_COMPRESSED_FIELDS = 2;
-
-  // Lucene 3.2: NumericFields are stored in binary format
+  // (Happens to be the same as for now) Lucene 3.2: NumericFields are stored in binary format
   static final int FORMAT_LUCENE_3_2_NUMERIC_FIELDS = 3;
 
   // NOTE: if you introduce a new format, make it 1 higher
@@ -67,7 +64,7 @@ public final class Lucene40StoredFieldsW
   static final int FORMAT_CURRENT = FORMAT_LUCENE_3_2_NUMERIC_FIELDS;
 
   // when removing support for old versions, leave the last supported version here
-  static final int FORMAT_MINIMUM = FORMAT_LUCENE_3_0_NO_COMPRESSED_FIELDS;
+  static final int FORMAT_MINIMUM = FORMAT_LUCENE_3_2_NUMERIC_FIELDS;
 
   /** Extension of stored fields file */
   public static final String FIELDS_EXTENSION = "fdt";
@@ -211,7 +208,7 @@ public final class Lucene40StoredFieldsW
       // throw an exception to prevent the corruption from
       // entering the index.  See LUCENE-1282 for
       // details.
-      throw new RuntimeException("mergeFields produced an invalid result: docCount is " + numDocs + " but fdx file size is " + indexStream.getFilePointer() + " file=" + indexStream.toString() + "; now aborting this merge to prevent index corruption");
+      throw new RuntimeException("fdx size mismatch: docCount is " + numDocs + " but fdx file size is " + indexStream.getFilePointer() + " file=" + indexStream.toString() + "; now aborting this merge to prevent index corruption");
   }
   
   @Override

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java Mon Jan 30 21:19:54 2012
@@ -41,7 +41,7 @@ public class Lucene40TermVectorsFormat e
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
-    Lucene40TermVectorsReader.files(dir, info, files);
+  public void files(SegmentInfo info, Set<String> files) throws IOException {
+    Lucene40TermVectorsReader.files(info, files);
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsReader.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsReader.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsReader.java Mon Jan 30 21:19:54 2012
@@ -699,7 +699,7 @@ public class Lucene40TermVectorsReader e
     return new Lucene40TermVectorsReader(fieldInfos, cloneTvx, cloneTvd, cloneTvf, size, numTotalDocs, format);
   }
   
-  public static void files(Directory dir, SegmentInfo info, Set<String> files) throws IOException {
+  public static void files(SegmentInfo info, Set<String> files) throws IOException {
     if (info.getHasVectors()) {
       files.add(IndexFileNames.segmentFileName(info.name, "", VECTORS_INDEX_EXTENSION));
       files.add(IndexFileNames.segmentFileName(info.name, "", VECTORS_FIELDS_EXTENSION));

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java Mon Jan 30 21:19:54 2012
@@ -355,7 +355,7 @@ public final class Lucene40TermVectorsWr
       // throw an exception to prevent the corruption from
       // entering the index.  See LUCENE-1282 for
       // details.
-      throw new RuntimeException("mergeVectors produced an invalid result: mergedDocs is " + numDocs + " but tvx size is " + tvx.getFilePointer() + " file=" + tvx.toString() + "; now aborting this merge to prevent index corruption");
+      throw new RuntimeException("tvx size mismatch: mergedDocs is " + numDocs + " but tvx size is " + tvx.getFilePointer() + " file=" + tvx.toString() + "; now aborting this merge to prevent index corruption");
   }
 
   /** Close all streams. */

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java Mon Jan 30 21:19:54 2012
@@ -43,7 +43,6 @@ import org.apache.lucene.index.SegmentWr
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.store.ByteArrayDataInput;
-import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
@@ -826,7 +825,7 @@ public class MemoryPostingsFormat extend
   }
 
   @Override
-  public void files(Directory dir, SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
+  public void files(SegmentInfo segmentInfo, String segmentSuffix, Set<String> files) throws IOException {
     files.add(IndexFileNames.segmentFileName(segmentInfo.name, segmentSuffix, EXTENSION));
   }
 }

Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java?rev=1238024&r1=1238023&r2=1238024&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java Mon Jan 30 21:19:54 2012
@@ -306,8 +306,8 @@ public abstract class PerFieldPostingsFo
   }
 
   @Override
-  public void files(final Directory dir, final SegmentInfo info, String segmentSuffix, final Set<String> files)
-      throws IOException {
+  public void files(final SegmentInfo info, String segmentSuffix, final Set<String> files) throws IOException {
+    final Directory dir = info.dir;
 
     final String mapFileName = IndexFileNames.segmentFileName(info.name, segmentSuffix, PER_FIELD_EXTENSION);
     files.add(mapFileName);
@@ -316,7 +316,7 @@ public abstract class PerFieldPostingsFo
       new VisitPerFieldFile(dir, info.name, segmentSuffix) {
         @Override
         protected void visitOneFormat(String segmentSuffix, PostingsFormat format) throws IOException {
-          format.files(dir, info, segmentSuffix, files);
+          format.files(info, segmentSuffix, files);
         }
 
         @Override