You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/02/10 21:57:44 UTC

svn commit: r1242918 - in /lucene/dev/branches/branch_3x: ./ lucene/ lucene/backwards/src/test/org/apache/lucene/index/ lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/ lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/direc...

Author: mikemccand
Date: Fri Feb 10 20:57:43 2012
New Revision: 1242918

URL: http://svn.apache.org/viewvc?rev=1242918&view=rev
Log:
LUCENE-3760: clean up IndexReader/SegmentInfos APIs

Removed:
    lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestAllZerosSegmentsFile.java
    lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestDeletionPolicy.java
Modified:
    lucene/dev/branches/branch_3x/   (props changed)
    lucene/dev/branches/branch_3x/lucene/   (props changed)
    lucene/dev/branches/branch_3x/lucene/CHANGES.txt
    lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexReader.java
    lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
    lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyReader.java
    lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java
    lucene/dev/branches/branch_3x/lucene/contrib/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java
    lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
    lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
    lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java
    lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
    lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
    lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestAllZerosSegmentsFile.java
    lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java
    lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexReader.java
    lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java

Modified: lucene/dev/branches/branch_3x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/CHANGES.txt?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_3x/lucene/CHANGES.txt Fri Feb 10 20:57:43 2012
@@ -59,6 +59,11 @@ Changes in backwards compatibility polic
   
 * LUCENE-3712: Removed unused and untested ReaderUtil#subReader methods.
   (Uwe Schindler)
+
+* LUCENE-3760: In IndexReader/DirectoryReader, deprecate static
+  methods getCurrentVersion and getCommitUserData, and non-static
+  method getCommitUserData (use getIndexCommit().getUserData()
+  instead).  (Ryan McKinley, Robert Muir, Mike McCandless)
   
 * LUCENE-3672: Deprecate Directory.fileModified,
   IndexCommit.getTimestamp and .getVersion and

Modified: lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexReader.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexReader.java Fri Feb 10 20:57:43 2012
@@ -75,8 +75,6 @@ public class TestIndexReader extends Luc
       IndexReader r2 = IndexReader.open(d, false);
       assertEquals(c.getUserData(), commitUserData);
 
-      assertEquals(sis.getCurrentSegmentFileName(), c.getSegmentsFileName());
-
       // Change the index
       writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
           new MockAnalyzer(random)).setOpenMode(
@@ -826,8 +824,6 @@ public class TestIndexReader extends Luc
       IndexReader r = IndexReader.open(d, false);
       IndexCommit c = r.getIndexCommit();
 
-      assertEquals(sis.getCurrentSegmentFileName(), c.getSegmentsFileName());
-
       assertTrue(c.equals(r.getIndexCommit()));
 
       // Change the index

Modified: lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/branches/branch_3x/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Fri Feb 10 20:57:43 2012
@@ -958,206 +958,6 @@ public class TestIndexWriterExceptions e
     dir.close();
   }
   
-  // LUCENE-1044: Simulate checksum error in segments_N
-  public void testSegmentsChecksumError() throws IOException {
-    Directory dir = newDirectory();
-
-    IndexWriter writer = null;
-
-    writer = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
-
-    // add 100 documents
-    for (int i = 0; i < 100; i++) {
-      addDoc(writer);
-    }
-
-    // close
-    writer.close();
-
-    long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
-    assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
-
-    final String segmentsFileName = SegmentInfos.getCurrentSegmentFileName(dir);
-    IndexInput in = dir.openInput(segmentsFileName);
-    IndexOutput out = dir.createOutput(IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS, "", 1+gen));
-    out.copyBytes(in, in.length()-1);
-    byte b = in.readByte();
-    out.writeByte((byte) (1+b));
-    out.close();
-    in.close();
-
-    IndexReader reader = null;
-    try {
-      reader = IndexReader.open(dir, true);
-    } catch (IOException e) {
-      e.printStackTrace(System.out);
-      fail("segmentInfos failed to retry fallback to correct segments_N file");
-    }
-    reader.close();
-    dir.close();
-  }
-  
-  // Simulate a corrupt index by removing last byte of
-  // latest segments file and make sure we get an
-  // IOException trying to open the index:
-  public void testSimulatedCorruptIndex1() throws IOException {
-      MockDirectoryWrapper dir = newDirectory();
-      dir.setCheckIndexOnClose(false); // we are corrupting it!
-
-      IndexWriter writer = null;
-
-      writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
-
-      // add 100 documents
-      for (int i = 0; i < 100; i++) {
-          addDoc(writer);
-      }
-
-      // close
-      writer.close();
-
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
-      assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
-
-      String fileNameIn = SegmentInfos.getCurrentSegmentFileName(dir);
-      String fileNameOut = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
-                                                                 "",
-                                                                 1+gen);
-      IndexInput in = dir.openInput(fileNameIn);
-      IndexOutput out = dir.createOutput(fileNameOut);
-      long length = in.length();
-      for(int i=0;i<length-1;i++) {
-        out.writeByte(in.readByte());
-      }
-      in.close();
-      out.close();
-      dir.deleteFile(fileNameIn);
-
-      IndexReader reader = null;
-      try {
-        reader = IndexReader.open(dir, true);
-        fail("reader did not hit IOException on opening a corrupt index");
-      } catch (Exception e) {
-      }
-      if (reader != null) {
-        reader.close();
-      }
-      dir.close();
-  }
-  
-  // Simulate a corrupt index by removing one of the cfs
-  // files and make sure we get an IOException trying to
-  // open the index:
-  public void testSimulatedCorruptIndex2() throws IOException {
-      MockDirectoryWrapper dir = newDirectory();
-      dir.setCheckIndexOnClose(false); // we are corrupting it!
-      IndexWriter writer = null;
-
-      writer  = new IndexWriter(
-          dir,
-          newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).
-              setMergePolicy(newLogMergePolicy(true))
-      );
-      ((LogMergePolicy) writer.getConfig().getMergePolicy()).setNoCFSRatio(1.0);
-
-      // add 100 documents
-      for (int i = 0; i < 100; i++) {
-          addDoc(writer);
-      }
-
-      // close
-      writer.close();
-
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
-      assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
-
-      String[] files = dir.listAll();
-      boolean corrupted = false;
-      for(int i=0;i<files.length;i++) {
-        if (files[i].endsWith(".cfs")) {
-          dir.deleteFile(files[i]);
-          corrupted = true;
-          break;
-        }
-      }
-      assertTrue("failed to find cfs file to remove", corrupted);
-
-      IndexReader reader = null;
-      try {
-        reader = IndexReader.open(dir, true);
-        fail("reader did not hit IOException on opening a corrupt index");
-      } catch (Exception e) {
-      }
-      if (reader != null) {
-        reader.close();
-      }
-      dir.close();
-  }
-  
-  // Simulate a writer that crashed while writing segments
-  // file: make sure we can still open the index (ie,
-  // gracefully fallback to the previous segments file),
-  // and that we can add to the index:
-  public void testSimulatedCrashedWriter() throws IOException {
-      MockDirectoryWrapper dir = newDirectory();
-      dir.setPreventDoubleWrite(false);
-
-      IndexWriter writer = null;
-
-      writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)));
-
-      // add 100 documents
-      for (int i = 0; i < 100; i++) {
-          addDoc(writer);
-      }
-
-      // close
-      writer.close();
-
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
-      assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
-
-      // Make the next segments file, with last byte
-      // missing, to simulate a writer that crashed while
-      // writing segments file:
-      String fileNameIn = SegmentInfos.getCurrentSegmentFileName(dir);
-      String fileNameOut = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
-                                                                 "",
-                                                                 1+gen);
-      IndexInput in = dir.openInput(fileNameIn);
-      IndexOutput out = dir.createOutput(fileNameOut);
-      long length = in.length();
-      for(int i=0;i<length-1;i++) {
-        out.writeByte(in.readByte());
-      }
-      in.close();
-      out.close();
-
-      IndexReader reader = null;
-      try {
-        reader = IndexReader.open(dir, true);
-      } catch (Exception e) {
-        fail("reader failed to open on a crashed index");
-      }
-      reader.close();
-
-      try {
-        writer  = new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random)).setOpenMode(OpenMode.CREATE));
-      } catch (Exception e) {
-        e.printStackTrace(System.out);
-        fail("writer failed to open on a crashed index");
-      }
-
-      // add 100 documents
-      for (int i = 0; i < 100; i++) {
-          addDoc(writer);
-      }
-
-      // close
-      writer.close();
-      dir.close();
-  }
-
   public void testAddDocsNonAbortingException() throws Exception {
     final Directory dir = newDirectory();
     final RandomIndexWriter w = new RandomIndexWriter(random, dir);

Modified: lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyReader.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyReader.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyReader.java Fri Feb 10 20:57:43 2012
@@ -242,7 +242,7 @@ public interface TaxonomyReader extends 
    * Retrieve user committed data.
    * @see TaxonomyWriter#commit(Map)
    */
-  public Map<String, String> getCommitUserData();
+  public Map<String, String> getCommitUserData() throws IOException;
 
   /**
    * Expert: increments the refCount of this TaxonomyReader instance. 

Modified: lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java Fri Feb 10 20:57:43 2012
@@ -353,8 +353,8 @@ public class DirectoryTaxonomyReader imp
     
     // validate that a refresh is valid at this point, i.e. that the taxonomy 
     // was not recreated since this reader was last opened or refresshed.
-    String t1 = indexReader.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_CREATE_TIME);
-    String t2 = r2.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_CREATE_TIME);
+    String t1 = indexReader.getIndexCommit().getUserData().get(DirectoryTaxonomyWriter.INDEX_CREATE_TIME);
+    String t2 = r2.getIndexCommit().getUserData().get(DirectoryTaxonomyWriter.INDEX_CREATE_TIME);
     if (t1==null) {
     	if (t2!=null) {
     		r2.close();
@@ -442,9 +442,9 @@ public class DirectoryTaxonomyReader imp
     }
   }
 
-  public Map<String, String> getCommitUserData() {
+  public Map<String, String> getCommitUserData() throws IOException {
     ensureOpen();
-    return indexReader.getCommitUserData();
+    return indexReader.getIndexCommit().getUserData();
   }
   
   private ChildrenArrays childrenArrays;

Modified: lucene/dev/branches/branch_3x/lucene/contrib/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/contrib/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/contrib/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java (original)
+++ lucene/dev/branches/branch_3x/lucene/contrib/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java Fri Feb 10 20:57:43 2012
@@ -80,7 +80,7 @@ public class TestDirectoryTaxonomyWriter
     ltw.close();
     IndexReader r = IndexReader.open(dir);
     assertEquals("2 categories plus root should have been committed to the underlying directory", 3, r.numDocs());
-    Map <String, String> readUserCommitData = r.getCommitUserData();
+    Map <String, String> readUserCommitData = r.getIndexCommit().getUserData();
     assertTrue("wrong value extracted from commit data", 
         "1 2 3".equals(readUserCommitData.get("testing")));
     r.close();

Modified: lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java Fri Feb 10 20:57:43 2012
@@ -357,7 +357,7 @@ public class CheckIndex {
     }
     
     final int numSegments = sis.size();
-    final String segmentsFileName = sis.getCurrentSegmentFileName();
+    final String segmentsFileName = sis.getSegmentsFileName();
     IndexInput input = null;
     try {
       input = dir.openInput(segmentsFileName);
@@ -1035,7 +1035,7 @@ public class CheckIndex {
         System.out.println("Writing...");
         checker.fixIndex(result);
         System.out.println("OK");
-        System.out.println("Wrote new segments file \"" + result.newSegments.getCurrentSegmentFileName() + "\"");
+        System.out.println("Wrote new segments file \"" + result.newSegments.getSegmentsFileName() + "\"");
       }
     }
     System.out.println("");

Modified: lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java Fri Feb 10 20:57:43 2012
@@ -297,7 +297,7 @@ class DirectoryReader extends IndexReade
     }
     buffer.append(getClass().getSimpleName());
     buffer.append('(');
-    final String segmentsFile = segmentInfos.getCurrentSegmentFileName();
+    final String segmentsFile = segmentInfos.getSegmentsFileName();
     if (segmentsFile != null) {
       buffer.append(segmentsFile);
     }
@@ -464,7 +464,7 @@ class DirectoryReader extends IndexReade
       if (directory != commit.getDirectory()) {
         throw new IOException("the specified commit does not match the specified Directory");
       }
-      if (segmentInfos != null && commit.getSegmentsFileName().equals(segmentInfos.getCurrentSegmentFileName())) {
+      if (segmentInfos != null && commit.getSegmentsFileName().equals(segmentInfos.getSegmentsFileName())) {
         if (readOnly != openReadOnly) {
           // Just fallback to clone
           return clone(openReadOnly);
@@ -1005,7 +1005,7 @@ class DirectoryReader extends IndexReade
     private final int segmentCount;
 
     ReaderCommit(SegmentInfos infos, Directory dir) throws IOException {
-      segmentsFileName = infos.getCurrentSegmentFileName();
+      segmentsFileName = infos.getSegmentsFileName();
       this.dir = dir;
       userData = infos.getUserData();
       files = Collections.unmodifiableCollection(infos.files(dir, true));

Modified: lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexFileDeleter.java Fri Feb 10 20:57:43 2012
@@ -139,7 +139,7 @@ final class IndexFileDeleter {
     this.infoStream = infoStream;
     this.writer = writer;
 
-    final String currentSegmentsFile = segmentInfos.getCurrentSegmentFileName();
+    final String currentSegmentsFile = segmentInfos.getSegmentsFileName();
 
     if (infoStream != null) {
       message("init: current segments file is \"" + currentSegmentsFile + "\"; deletionPolicy=" + policy);
@@ -233,7 +233,7 @@ final class IndexFileDeleter {
         throw new CorruptIndexException("failed to locate current segments_N file");
       }
       if (infoStream != null) {
-        message("forced open of current segments file " + segmentInfos.getCurrentSegmentFileName());
+        message("forced open of current segments file " + segmentInfos.getSegmentsFileName());
       }
       currentCommitPoint = new CommitPoint(commitsToDelete, directory, sis);
       commits.add(currentCommitPoint);
@@ -442,7 +442,7 @@ final class IndexFileDeleter {
     assert locked();
 
     if (infoStream != null) {
-      message("now checkpoint \"" + segmentInfos.getCurrentSegmentFileName() + "\" [" + segmentInfos.size() + " segments " + "; isCommit = " + isCommit + "]");
+      message("now checkpoint \"" + segmentInfos.getSegmentsFileName() + "\" [" + segmentInfos.size() + " segments " + "; isCommit = " + isCommit + "]");
     }
 
     // Try again now to delete any previously un-deletable
@@ -649,7 +649,7 @@ final class IndexFileDeleter {
       this.directory = directory;
       this.commitsToDelete = commitsToDelete;
       userData = segmentInfos.getUserData();
-      segmentsFileName = segmentInfos.getCurrentSegmentFileName();
+      segmentsFileName = segmentInfos.getSegmentsFileName();
       version = segmentInfos.getVersion();
       generation = segmentInfos.getGeneration();
       files = Collections.unmodifiableCollection(segmentInfos.files(directory, true));

Modified: lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java Fri Feb 10 20:57:43 2012
@@ -933,7 +933,7 @@ public abstract class IndexReader implem
    * @return version number.
    * @throws CorruptIndexException if the index is corrupt
    * @throws IOException if there is a low-level IO error
-   * @deprecated Use {@link SegmentInfos#readCurrentVersion}.
+   * @deprecated Use {@link #getVersion} on an opened IndexReader.
    */
   @Deprecated
   public static long getCurrentVersion(Directory directory) throws CorruptIndexException, IOException {
@@ -952,10 +952,15 @@ public abstract class IndexReader implem
    * @throws CorruptIndexException if the index is corrupt
    * @throws IOException if there is a low-level IO error
    *
-   * @see #getCommitUserData()
+   * @deprecated Call {@link
+   * #getIndexCommit} on an open IndexReader, and then call
+   * {@link IndexCommit#getUserData}.
    */
+  @Deprecated
   public static Map<String,String> getCommitUserData(Directory directory) throws CorruptIndexException, IOException {
-    return SegmentInfos.readCurrentUserData(directory);
+    SegmentInfos sis = new SegmentInfos();
+    sis.read(directory);
+    return sis.getUserData();
   }
 
   /**
@@ -981,8 +986,10 @@ public abstract class IndexReader implem
    * IndexWriter#commit(Map)} has never been called for
    * this index.
    *
-   * @see #getCommitUserData(Directory)
+   * @deprecated Call {@link #getIndexCommit} and then call
+   * {@link IndexCommit#getUserData}.
    */
+  @Deprecated
   public Map<String,String> getCommitUserData() {
     throw new UnsupportedOperationException("This reader does not support this method.");
   }
@@ -1472,7 +1479,7 @@ public abstract class IndexReader implem
    * @param commitUserData Opaque Map (String -> String)
    *  that's recorded into the segments file in the index,
    *  and retrievable by {@link
-   *  IndexReader#getCommitUserData}.
+   *  IndexCommit#getUserData}.
    * @throws IOException
    * @deprecated Write support will be removed in Lucene 4.0.
    */

Modified: lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Fri Feb 10 20:57:43 2012
@@ -3331,7 +3331,7 @@ public class IndexWriter implements Clos
    *  @param commitUserData Opaque Map (String->String)
    *  that's recorded into the segments file in the index,
    *  and retrievable by {@link
-   *  IndexReader#getCommitUserData}.  Note that when
+   *  IndexCommit#getUserData}.  Note that when
    *  IndexWriter commits itself during {@link #close}, the
    *  commitUserData is unchanged (just carried over from
    *  the prior commit).  If this is null then the previous
@@ -3484,11 +3484,13 @@ public class IndexWriter implements Clos
 
     if (pendingCommit != null) {
       try {
-        if (infoStream != null)
+        if (infoStream != null) {
     	  message("commit: pendingCommit != null");
+        }
         pendingCommit.finishCommit(directory);
-        if (infoStream != null)
-          message("commit: wrote segments file \"" + pendingCommit.getCurrentSegmentFileName() + "\"");
+        if (infoStream != null) {
+          message("commit: wrote segments file \"" + pendingCommit.getSegmentsFileName() + "\"");
+        }
         lastCommitChangeCount = pendingCommitChangeCount;
         segmentInfos.updateGeneration(pendingCommit);
         segmentInfos.setUserData(pendingCommit.getUserData());

Modified: lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java Fri Feb 10 20:57:43 2012
@@ -145,12 +145,12 @@ public final class SegmentInfos implemen
   }
 
   /**
-   * Get the generation (N) of the current segments_N file
-   * from a list of files.
+   * Get the generation of the most recent commit to the
+   * list of index files (N in the segments_N file).
    *
    * @param files -- array of file names to check
    */
-  public static long getCurrentSegmentGeneration(String[] files) {
+  public static long getLastCommitGeneration(String[] files) {
     if (files == null) {
       return -1;
     }
@@ -168,48 +168,48 @@ public final class SegmentInfos implemen
   }
 
   /**
-   * Get the generation (N) of the current segments_N file
-   * in the directory.
+   * Get the generation of the most recent commit to the
+   * index in this directory (N in the segments_N file).
    *
    * @param directory -- directory to search for the latest segments_N file
    */
-  public static long getCurrentSegmentGeneration(Directory directory) throws IOException {
+  public static long getLastCommitGeneration(Directory directory) throws IOException {
     try {
-      return getCurrentSegmentGeneration(directory.listAll());
+      return getLastCommitGeneration(directory.listAll());
     } catch (NoSuchDirectoryException nsde) {
       return -1;
     }
   }
 
   /**
-   * Get the filename of the current segments_N file
-   * from a list of files.
+   * Get the filename of the segments_N file for the most
+   * recent commit in the list of index files.
    *
    * @param files -- array of file names to check
    */
 
-  public static String getCurrentSegmentFileName(String[] files) throws IOException {
+  public static String getLastCommitSegmentsFileName(String[] files) throws IOException {
     return IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                  "",
-                                                 getCurrentSegmentGeneration(files));
+                                                 getLastCommitGeneration(files));
   }
 
   /**
-   * Get the filename of the current segments_N file
-   * in the directory.
+   * Get the filename of the segments_N file for the most
+   * recent commit to the index in this Directory.
    *
    * @param directory -- directory to search for the latest segments_N file
    */
-  public static String getCurrentSegmentFileName(Directory directory) throws IOException {
+  public static String getLastCommitSegmentsFileName(Directory directory) throws IOException {
     return IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                  "",
-                                                 getCurrentSegmentGeneration(directory));
+                                                 getLastCommitGeneration(directory));
   }
 
   /**
    * Get the segments_N filename in use by this segment infos.
    */
-  public String getCurrentSegmentFileName() {
+  public String getSegmentsFileName() {
     return IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                  "",
                                                  lastGeneration);
@@ -467,7 +467,10 @@ public final class SegmentInfos implemen
    * Current version number from segments file.
    * @throws CorruptIndexException if the index is corrupt
    * @throws IOException if there is a low-level IO error
+   * @deprecated Load the SegmentInfos and then call {@link
+   * #getVersion}.
    */
+  @Deprecated
   public static long readCurrentVersion(Directory directory)
     throws CorruptIndexException, IOException {
 
@@ -481,18 +484,6 @@ public final class SegmentInfos implemen
     return sis.version;
   }
 
-  /**
-   * Returns userData from latest segments file
-   * @throws CorruptIndexException if the index is corrupt
-   * @throws IOException if there is a low-level IO error
-   */
-  public static Map<String,String> readCurrentUserData(Directory directory)
-    throws CorruptIndexException, IOException {
-    SegmentInfos sis = new SegmentInfos();
-    sis.read(directory);
-    return sis.getUserData();
-  }
-
   /** If non-null, information about retries when loading
    * the segments file will be printed to this.
    */
@@ -611,7 +602,7 @@ public final class SegmentInfos implemen
           files = directory.listAll();
           
           if (files != null) {
-            genA = getCurrentSegmentGeneration(files);
+            genA = getLastCommitGeneration(files);
           }
           
           if (infoStream != null) {
@@ -844,7 +835,14 @@ public final class SegmentInfos implemen
   public Collection<String> files(Directory dir, boolean includeSegmentsFile) throws IOException {
     HashSet<String> files = new HashSet<String>();
     if (includeSegmentsFile) {
-      files.add(getCurrentSegmentFileName());
+      final String segmentFileName = getSegmentsFileName();
+      if (segmentFileName != null) {
+        /*
+         * TODO: if lastGen == -1 we get might get null here it seems wrong to
+         * add null to the files set
+         */
+        files.add(segmentFileName);
+      }
     }
     final int size = size();
     for(int i=0;i<size;i++) {
@@ -938,7 +936,7 @@ public final class SegmentInfos implemen
 
   public String toString(Directory directory) {
     StringBuilder buffer = new StringBuilder();
-    buffer.append(getCurrentSegmentFileName()).append(": ");
+    buffer.append(getSegmentsFileName()).append(": ");
     final int count = size();
     for(int i = 0; i < count; i++) {
       if (i > 0) {

Modified: lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestAllZerosSegmentsFile.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestAllZerosSegmentsFile.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestAllZerosSegmentsFile.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestAllZerosSegmentsFile.java Fri Feb 10 20:57:43 2012
@@ -32,7 +32,7 @@ public class TestAllZerosSegmentsFile ex
 
     String nextSegmentsFile = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                                     "",
-                                                                    SegmentInfos.getCurrentSegmentGeneration(dir)+1);
+                                                                    SegmentInfos.getLastCommitGeneration(dir)+1);
     IndexOutput out = dir.createOutput(nextSegmentsFile);
     for(int idx=0;idx<8;idx++) {
       out.writeByte((byte) 0);

Modified: lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestDeletionPolicy.java Fri Feb 10 20:57:43 2012
@@ -248,7 +248,7 @@ public class TestDeletionPolicy extends 
     // segments_N's that still exist are in fact within SECONDS
     // seconds of the last one's mod time, and, that I can
     // open a reader on each:
-    long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+    long gen = SegmentInfos.getLastCommitGeneration(dir);
     
     String fileName = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                             "",
@@ -359,7 +359,7 @@ public class TestDeletionPolicy extends 
       // Simplistic check: just verify all segments_N's still
       // exist, and, I can open a reader on each:
       dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
       while(gen > 0) {
         IndexReader reader = IndexReader.open(dir, true);
         reader.close();
@@ -582,7 +582,7 @@ public class TestDeletionPolicy extends 
       // Simplistic check: just verify only the past N segments_N's still
       // exist, and, I can open a reader on each:
       dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
       for(int i=0;i<N+1;i++) {
         try {
           IndexReader reader = IndexReader.open(dir, true);
@@ -689,7 +689,7 @@ public class TestDeletionPolicy extends 
 
       // Simplistic check: just verify only the past N segments_N's still
       // exist, and, I can open a reader on each:
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
 
       dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
       int expectedCount = 176;
@@ -802,7 +802,7 @@ public class TestDeletionPolicy extends 
 
       // Simplistic check: just verify only the past N segments_N's still
       // exist, and, I can open a reader on each:
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
 
       dir.deleteFile(IndexFileNames.SEGMENTS_GEN);
       int expectedCount = 0;

Modified: lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexReader.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexReader.java Fri Feb 10 20:57:43 2012
@@ -76,7 +76,7 @@ public class TestIndexReader extends Luc
       IndexReader r2 = IndexReader.open(d, false);
       assertEquals(c.getUserData(), commitUserData);
 
-      assertEquals(sis.getCurrentSegmentFileName(), c.getSegmentsFileName());
+      assertEquals(sis.getSegmentsFileName(), c.getSegmentsFileName());
 
       // Change the index
       writer = new IndexWriter(d, newIndexWriterConfig(TEST_VERSION_CURRENT,
@@ -924,7 +924,7 @@ public class TestIndexReader extends Luc
       IndexReader r = IndexReader.open(d, false);
       IndexCommit c = r.getIndexCommit();
 
-      assertEquals(sis.getCurrentSegmentFileName(), c.getSegmentsFileName());
+      assertEquals(sis.getSegmentsFileName(), c.getSegmentsFileName());
 
       assertTrue(c.equals(r.getIndexCommit()));
 

Modified: lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1242918&r1=1242917&r2=1242918&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/branches/branch_3x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Fri Feb 10 20:57:43 2012
@@ -974,10 +974,10 @@ public class TestIndexWriterExceptions e
     // close
     writer.close();
 
-    long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+    long gen = SegmentInfos.getLastCommitGeneration(dir);
     assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
 
-    final String segmentsFileName = SegmentInfos.getCurrentSegmentFileName(dir);
+    final String segmentsFileName = SegmentInfos.getLastCommitSegmentsFileName(dir);
     IndexInput in = dir.openInput(segmentsFileName);
     IndexOutput out = dir.createOutput(IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS, "", 1+gen));
     out.copyBytes(in, in.length()-1);
@@ -1016,10 +1016,10 @@ public class TestIndexWriterExceptions e
       // close
       writer.close();
 
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
       assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
 
-      String fileNameIn = SegmentInfos.getCurrentSegmentFileName(dir);
+      String fileNameIn = SegmentInfos.getLastCommitSegmentsFileName(dir);
       String fileNameOut = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                                  "",
                                                                  1+gen);
@@ -1068,7 +1068,7 @@ public class TestIndexWriterExceptions e
       // close
       writer.close();
 
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
       assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
 
       String[] files = dir.listAll();
@@ -1114,13 +1114,13 @@ public class TestIndexWriterExceptions e
       // close
       writer.close();
 
-      long gen = SegmentInfos.getCurrentSegmentGeneration(dir);
+      long gen = SegmentInfos.getLastCommitGeneration(dir);
       assertTrue("segment generation should be > 0 but got " + gen, gen > 0);
 
       // Make the next segments file, with last byte
       // missing, to simulate a writer that crashed while
       // writing segments file:
-      String fileNameIn = SegmentInfos.getCurrentSegmentFileName(dir);
+      String fileNameIn = SegmentInfos.getLastCommitSegmentsFileName(dir);
       String fileNameOut = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
                                                                  "",
                                                                  1+gen);